大家好,Ubuntu 社区,
我可以通过以下命令控制通过 DisplayPort 连接的 DELL U2713HM 的亮度:
ddccontrol -p -r 0x10 -w 53
在此示例中,数字 53 代表亮度级别(范围为 0 到 100)。但我不知道如何将命令链接到键盘上的亮度键。
我已经搜索过了,但刚刚找到了有关集成笔记本电脑屏幕的答案。/sys/class/backlight
文件夹中acpi_video0
有一些子文件夹和文件。文件 actual_brightness 包含一个从 0 到 20 的数字,当我按下亮度键时,它会发生变化。
如何将我的外接显示器列为 /sys/class/backlight 中的设备?
附言:我正在运行全新安装的 Ubuntu 12.10,带有集成显卡 Intel HD4000。
答案1
我认为您所期望的外接显示器的解决方案/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 之间。现在,您可以将脚本的up
和down
调用绑定到您选择的一些键盘快捷键上,系统设置 > 键盘 > 快捷键,就像 fotomonster 建议的那样。
笔记:
我不知道ddccontrol -p
需要多长时间,如果时间太长,您还可以sync
在脚本中添加一个选项,将显示器的亮度值保存到文件中。然后,ddccontrol
您无需从中获取当前亮度,只需从文件中获取即可,这样应该会快得多。当然,您需要更新up
和down
调用以将新亮度写入文件...
剧本灵感来自这篇关于 archlinux 的文章。