通过软件控制外部显示器的亮度


11

您好Ubuntu社区,

我可以通过以下命令控制与DisplayPort连接的DELL U2713HM的亮度:

ddccontrol -p -r 0x10 -w 53

在此示例中,数字53代表亮度级别(范围为0到100)。但是我不知道如何将命令链接到键盘上的亮度键。

我已经搜索过,但是找到了集成笔记本电脑屏幕的答案。其中/sys/class/backlightacpi_video0带有某些子文件夹和文件的文件夹。文件actual_brightness包含一个从0到20的数字,当我按亮度键时该数字会更改。

如何在/ sys / class / backlight中将外部监视器列为设备?

PS:我正在运行带有集成显卡Intel HD4000的全新Ubuntu 12.10安装。


当您提供的命令适用于外接显示器时,您可以在系统设置>键盘>快捷方式中设置自定义快捷键。
tongpu

没错,但是我只能发送两个命令(暗/亮),而我会忽略带有漂亮的亮度动画的Ubuntu内部亮度转换器。
雷米

您能否发布与的输出链接ddccontrol -p,我正在考虑解决方案...
Gerhard Burger 2013年

希望对您有帮助:pastebin.com/L7Y7pRZe
remi 2013年

Answers:


6

我认为获得外接显示器的理想解决方案/sys/class/backlight不会起作用,但是好消息是您可以拥有漂亮的亮度动画!

尝试

notify-send " " -i notification-display-brightness-low -h int:value:50 -h string:x-canonical-private-synchronous:brightness &

现在,我们可以创建一个脚本来模拟Ubuntu的亮度更改器:

#!/bin/bash
#get current brightness
presbright=$(ddccontrol -p | grep -A1 0x10 | tr -d '\n\t' | sed 's/.*value=\([^a-zA-Z]*\),.*/\1/')
#stepsize for the brightness change
stepsize=10

case "$1" in
        up)
          newbright=$(( ${presbright}+${stepsize} ))
          newbright=$(echo $newbright | awk '{if($1 < 100){if($1 > 0) print $1; else print 0;} else print 100;}')

          notify-send " " -i notification-display-brightness-low -h int:value:$newbright -h string:x-canonical-private-synchronous:brightness &
          ddccontrol -p -r 0x10 -w $newbright
        ;;
        down)
          newbright=$(( ${presbright}-${stepsize} ))
          newbright=$(echo $newbright | awk '{if($1 < 100){if($1 > 0) print $1; else print 0;} else print 100;}')

          notify-send " " -i notification-display-brightness-low -h int:value:$newbright -h string:x-canonical-private-synchronous:brightness &
          ddccontrol -p -r 0x10 -w $newbright            
        ;;
        status)
          echo $presbright
        ;;
        *)
          echo "Accepted arguments are: up, down, status."
        ;;
esac

exit 0

如您所见,它会将值限制在0到100之间。现在,您可以使用“ 系统设置”>“键盘”>“快捷方式”将脚本的updown调用绑定到您选择的某些键盘快捷方式,建议使用fotomonster。


注意:
我不知道需要多少时间ddccontrol -p,如果时间太长,您还sync可以在脚本中添加一个选项,以将监视器的亮度值保存到文件中。然后,ddccontrol您可以从文件中获取亮度,而不是从当前亮度获取,这应该快得多。当然,您需要更新updown调用,以将新的亮度写入文件中。


脚本受archlinux上这篇文章的启发。


效果很好,非常感谢。那正是我想要的。现在,整个系统已经很好地集成在一起,就像iMac一样,但是仍然可以配置。
remi 2013年

还需要一点点的帮助,脚本绑定到我的亮度键:askubuntu.com/questions/239560/...
雷米
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.