如果您也和我一样在显示器附近安装了窗户,您可能需要经常调节显示器的亮度。用爪子靠近显示器设置开关非常不方便,也非常慢。

经过一番搜索后我发现了这个叫 ddcctl 的项目。它提供了一个命令行小工具来控制外接显示器的亮度、对比度等参数。

示例

基本操作

1
2
3
ddcctl -d 1 -b 100 # 将 1 号显示器的亮度调整到 100
ddcctl -d 1 -c 50  # 将 1 号显示器的对比度调整到 50
ddcctl -d 1 -rbc   # 重置 1 号显示器的亮度和对比度

已测试

这几个功能在我用 DisplayPort 线连接的 DELL P2414 / P2417 上工作良好。

高级操作

1
2
3
ddcctl -d 1 -b ?   # 查看 1 号显示器当前的亮度设置
ddcctl -d 1 -b 10+ # 将 1 号显示器当前亮度调高 10
ddcctl -d 1 -b 10- # 将 1 号显示器当前亮度调低 10

警告

这几个功能在我用 DisplayPort 线连接的 DELL P2414 / P2417 上必然导致系统卡死不得不强制关机。请务必在先保存好所有工作再进行测试。勿谓言之不预也。

其他操作

此外,这个工具还能控制显示器输入源、喇叭等设置。由于我的显示器只有一个输入也没有喇叭,未作测试。具体参数可键入 ddcctl 查看。

实际使用

可以给 ddcctl -d 1 -b 10+ddcctl -d 1 -b 10- 各绑定一个快捷键。

由于用不了这俩命令,我使用了空调遥控器模式:将亮度设置存放在一个文件中,需要变更时修改文件并用 ddcctl -d 1 -b $(cat ~/.brightness) 向显示器同步。