V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Osk
V2EX  ›  Python

用 Python 直接调节外接显示器亮度等参数

  •  6
     
  •   Osk · 2018-01-21 20:22:07 +08:00 · 10486 次点击
    这是一个创建于 2482 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主要是晚上想把显示器亮度调低一点,色温调低一些,但是显示器的操作面板简直难用到爆,按键还有点失灵了。而白天或者玩游戏看电影时又得使用 sRGB 颜色预设并提高亮度,按按钮操作比较纠结。

    地址: https://github.com/dot-osk/monitor_ctrl

    把我之前一直在用的一个 Python 脚本魔改了下,之前里面到处都是硬编码,没有 GUI。现在用 Tkinter 做了个简单的 GUI,也能继续使用 CLI 操作。

    支持的操作:

    - 调整亮度
    
    - 调整对比度
    
    - 设置色温 / 颜色预设
    
    - 设置 RGB 颜色的比例
    
    - OSD 语言
    
    - 开关机
    
    - 切换输入源
    
    - 自动调整图像 (VGA 输入需要)
    
    - 恢复出厂设置
    

    GUI:

    49 条回复    2020-01-06 10:56:58 +08:00
    lScarlet
        1
    lScarlet  
       2018-01-21 20:46:29 +08:00 via Android
    看一看
    chroming
        2
    chroming  
       2018-01-21 20:53:54 +08:00
    哇,正好需要这个,之前尝试自己写类似的程序遇到点问题没继续
    Death
        3
    Death  
       2018-01-21 21:00:52 +08:00
    原来还有 DDC/CI 这种协议呀,第一次知道
    Applenice
        4
    Applenice  
       2018-01-21 21:29:23 +08:00
    哇,看看
    co3site
        5
    co3site  
       2018-01-21 21:33:33 +08:00 via Android
    还能这样控制,长见识了
    wwqgtxx
        6
    wwqgtxx  
       2018-01-21 21:53:13 +08:00 via iPhone
    插一句,这个程序根本不用检查 python 版本是否是 py3,因为用了类型定义语法,根本就不支持 py2😂
    lyztonny
        7
    lyztonny  
       2018-01-21 22:04:05 +08:00
    感谢拯救了一台按钮坏掉没办法调亮度的显示器!
    zjb861107
        8
    zjb861107  
       2018-01-21 22:18:10 +08:00
    长见识了。
    不过,macOS 没有 api 可以控制吗
    ysc3839
        9
    ysc3839  
       2018-01-21 22:35:33 +08:00
    同第一次知道!
    yang2yang
        10
    yang2yang  
       2018-01-21 22:37:45 +08:00
    哇,很极客
    conn4575
        11
    conn4575  
       2018-01-22 07:26:58 +08:00 via Android
    不愧胶水语言,啥都能做…😂
    Ehco1996
        12
    Ehco1996  
       2018-01-22 07:54:41 +08:00 via iPhone
    这个真的厉害了 一会起床试一试
    muziyue
        13
    muziyue  
       2018-01-22 10:13:52 +08:00
    /* 可我记得这东西显卡设置里能调 */
    Osk
        15
    Osk  
    OP
       2018-01-22 10:42:38 +08:00 via Android
    @wwqgtxx 类型定义语法?是指 type hints 吗?
    Osk
        16
    Osk  
    OP
       2018-01-22 10:45:12 +08:00 via Android
    @zjb861107 osx 也有一个插件可以搜 ddc/ci osx 就有不少,其实三大平台都有不少类似功能的。只是 windows 不少是闭源的才自己撸一个。
    Osk
        17
    Osk  
    OP
       2018-01-22 10:49:41 +08:00 via Android
    @muziyue Intel 核芯显卡控制面板能调,但用着相当别扭,响应慢。N 卡和 A 卡控制中心似乎没有调节入口。
    jason19659
        18
    jason19659  
       2018-01-22 10:56:34 +08:00
    跑不起来,嗯。
    Osk
        19
    Osk  
    OP
       2018-01-22 11:05:26 +08:00 via Android
    @jason19659 python 版本多少呢?可以试试 -c 启动看看报的什么错
    1ku
        20
    1ku  
       2018-01-22 11:26:26 +08:00 via iPhone
    刚学 python 自己看书,不想以后被笑话,各位前辈,这个 GUI 是读什么啊?“孤诣”、“鸡 U 唉”、“瑰”还是其他的?
    leafleave
        21
    leafleave  
       2018-01-22 11:27:53 +08:00 via iPhone
    支持什么显示器呢? VGA?HDMI?DP?
    Osk
        22
    Osk  
    OP
       2018-01-22 11:44:29 +08:00 via Android
    @leafleave vga, dvi 已测试没问题,hdmi 和 dvi 信号兼容应该也没问题,dp 也应该不是问题
    xwhxbg
        23
    xwhxbg  
       2018-01-22 11:56:08 +08:00
    awesome,仿佛回到了 2000 年那会儿各路神仙各种 C 艹小程序的年代
    580a388da131
        24
    580a388da131  
       2018-01-22 12:04:33 +08:00
    @1ku /ˈɡuːi/
    ballshapesdsd
        25
    ballshapesdsd  
       2018-01-22 12:08:31 +08:00
    star 了
    yingfengi
        26
    yingfengi  
       2018-01-22 12:09:38 +08:00 via Android
    还有这种协议之类的?
    有着显示器带一个驱动盘(光盘上这么写的)
    那个软件就可以调,估计就是用这协议
    wwqgtxx
        27
    wwqgtxx  
       2018-01-22 12:14:48 +08:00
    @Osk 恩,并找不到靠谱的中文翻译来解释 type hints
    cy97cool
        28
    cy97cool  
       2018-01-22 13:01:19 +08:00 via Android
    居然还没人来提 f.lux

    不过还是谢谢 lz 又让 py 更好玩一点了
    KgM4gLtF0shViDH3
        29
    KgM4gLtF0shViDH3  
       2018-01-22 13:24:56 +08:00
    开关机是什么意思?还能开机?
    Osk
        30
    Osk  
    OP
       2018-01-22 13:29:20 +08:00 via Android
    @bestkayle 相当于按面板上的开关机按钮,能开能关,这个要看显示器支持得怎样
    KgM4gLtF0shViDH3
        31
    KgM4gLtF0shViDH3  
       2018-01-22 13:30:50 +08:00
    @Osk #30 看不到屏幕怎么开呢,是定时开嘛。我这个公司配的飞利浦显示器找不到关的按钮,正好需要。
    Osk
        32
    Osk  
    OP
       2018-01-22 13:34:45 +08:00 via Android
    @bestkayle 双屏无压力。或者创建计划任务等,在计算机开机 /唤醒时打开屏幕
    Osk
        33
    Osk  
    OP
       2018-01-22 13:35:41 +08:00 via Android
    @bestkayle 不过小心本身没有关机按钮的关了会不会开不了。。。
    aheadlead
        34
    aheadlead  
       2018-01-22 13:39:30 +08:00
    给楼主一个 idea
    根据日落日出调节亮度和色温(类似 Night Shift 和 f.lux)

    之前用 shell 写过一个 但是写的太丑了...
    knva
        35
    knva  
       2018-01-22 13:39:38 +08:00
    卧槽,还有这种操作,学到了
    ysc3839
        36
    ysc3839  
       2018-01-22 13:52:23 +08:00 via Android
    @cy97cool f.lux 不能调亮度,只能调色温。
    j717273419
        37
    j717273419  
       2018-01-22 14:03:33 +08:00 via Android   ❤️ 1
    可以改一下标题 [Python 有哪些让人眼前一亮的函数?]
    laoyuan
        38
    laoyuan  
       2018-01-22 20:01:08 +08:00
    报告 LZ,如果关掉显示器再开开(没关机),设置就是失效了,这是怎么回事
    xshwy
        39
    xshwy  
       2018-01-23 00:02:03 +08:00
    @j717273419 哈哈哈哈哈 这个标题满分
    NEETLEE
        40
    NEETLEE  
       2018-01-23 15:16:21 +08:00
    很厉害呀,想从楼主的代码里扣一个快捷键切换信号源的脚本出来,这样就方便在 ps4 和 pc 之间的切换了...不过看了一天,进展缓慢...等弄出来了,再贴代码
    Osk
        41
    Osk  
    OP
       2018-01-24 14:35:15 +08:00 via Android
    @laoyuan 试试测试分支里面的 “保存 nvram ” 按钮能不能解决问题。

    https://github.com/dot-osk/monitor_ctrl/tree/testing
    Osk
        42
    Osk  
    OP
       2018-01-24 14:37:56 +08:00 via Android   ❤️ 1
    @NEETLEE 可以直接 import vcp 模块单独使用的
    laoyuan
        43
    laoyuan  
       2018-01-24 16:42:34 +08:00
    周末回家试试,谢谢 LZ
    bitlaoyuan
        44
    bitlaoyuan  
       2018-01-29 21:00:25 +08:00
    报告 LZ,“保存 nvram ” 按钮不能解决问题
    Osk
        45
    Osk  
    OP
       2018-01-30 23:09:12 +08:00
    @bitlaoyuan 抱歉,这个我也没法了。。。 ☹
    bitlaoyuan
        46
    bitlaoyuan  
       2018-02-02 15:59:50 +08:00
    我打算改改脚本,每 30 秒提交一次
    DuXing
        47
    DuXing  
       2019-01-26 14:10:09 +08:00
    厉害了,终于可以只动动鼠标就能设置亮度了。
    可以支持多显示器(扩展屏)吗?
    Jellyan
        48
    Jellyan  
       2020-01-05 22:36:07 +08:00
    显示器的按键失灵了,不小心亮度调到了 100,看着都流泪。多谢楼主这个脚本,拯救了我的眼睛
    Osk
        49
    Osk  
    OP
       2020-01-06 10:56:58 +08:00
    @Jellyan 哈哈, 我也是按键失灵了被逼的 😭...

    @DuXing 支持多个外接显示器, 但是好像多块屏是同型号的有问题(?), 我没办法测试多个同型号的(穷😫)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2511 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:50 · PVG 23:50 · LAX 07:50 · JFK 10:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.