在笔记本电脑上,您通常有用于更改背光的工作键,并且在更改背光时会看到 OSD 通知。
如何为“普通”桌面修补此问题?如何让部分问题得以解决?
答案1
即使在很多笔记本电脑上,尤其是在台式机上,您也应该获得 X11 上亮度变化的键盘事件。
如果您没有带按键的花哨键盘,请自行决定快捷键。配置 XKB 以报告您想要的键盘符号。
X 中有用于调高/调低显示器亮度的“官方”键符。unity-settings-daemon 或 gnome-settings-daemon 可以被动地获取它们。不幸的是,我没有找到一种合理的方法让这些程序不去管这些键。
unity-/gnome-setting-daemon 是这些花哨的 OSD 消息的来源。它们还通过 dbus(?) 触发背光亮度的变化。它们自己的 gsd-backlight-helper 就是通过这种方式执行的,以实际更改背光。
...-backlight-helper 二进制文件会查找 /sys 中属于标准化背光类别的设备。它首先搜索“固件”类型的设备,然后搜索“平台”类型的设备,最后搜索“原始”类型的设备。根据背光类别规范,这是推荐的方法。
在桌面系统上,显示器通常可以处理 DDC/CI 控制,这是一种完全不同的处理方式,Ubuntu 上没有设置。没有内核驱动程序将这种控制映射到背光类的设备。至少有一个废弃的工具ddccontrol
通过 DDC/CI 进行接口。它可以通过两种访问类型来实现这一点。一种是通过 PCI 寄存器或 VGA 卡的内存等。另一种更好的途径是通过 I2C 总线接口。为此,您必须加载 i2c-dev 模块,该模块驱动 /dev/i2c-? 设备。其中一些设备反映了 VGA、DVI 和 HDMI 连接中实际存在的 I2C 总线。DisplayPort 模拟 I2C,因此它也能正常工作。好消息是这里的内核支持非常完整,因为 DDC(无 CI)也用于读取显示器标识和规格(EDID)。
如果您具有 root 权限,则可以使用脚本驱动程序替换 gsd-backlight-helper(或 usd-backlight-helper)ddccontrol
。
如果没有机器的 root 访问权限,那么 (重新) 配置键盘以报告其他未监听的键符可能更容易 (有大量的多媒体键符,只需抓住一些)。然后告诉您的窗口管理器或使用直接xbindkeys
启动ddccontrol
和/或启动一个脚本,如果需要,该脚本也会生成一些 OSD 通知。
ddccontrol
有一些缺点:它看起来没有得到维护和启动时间太长(在我的系统上),没有明显的原因。我当时正在考虑编写一个脚本,它可以自己执行 DDC/CI。这里最大的挑战是真正找出在总线上要谈论什么。我想源代码是找出答案的好方法。