用 Python 直接调节外接显示器亮度等参数 - V2EX
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 11037 次点击
    这是一个创建于 2822 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主要是晚上想把显示器亮度调低一点,色温调低一些,但是显示器的操作面板简直难用到爆,按键还有点失灵了。而白天或者玩游戏看电影时又得使用 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
    感谢拯救了一台按钮坏掉没办法调亮度的显示器!
    edsion996
        8
    edsion996  
       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 /ui/
    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/td>
        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
        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     Solana     1099 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 17:55 PVG 01:55 LAX 10:55 JFK 13:55
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86