硬件方面
问题出在硬件上。多数笔记本电脑未配备亮度传感器,也没有显示器内置能让连接电脑访问的亮度传感器。虽可购买或自制 USB 连接的亮度传感器,但外部显示器亮度控制在安全调节频率上有限制。很长时间里,Plasma 开发人员没人同时具备合适硬件、足够动力和相关知识解决问题。幸运的是,Framework Laptop 13 配备了亮度传感器。
软件方面
让自动亮度调节功能运行不难,但达到实用程度不易。最初假设显示器亮度与环境亮度呈线性比例关系,尝试后效果不佳,存在亮度设置不能线性控制、用户配置公式难、最佳亮度曲线不一定线性三个问题。最终采用存储 6 个传感器值,每个 20% 亮度级别对应一个值,KWin 通过线性插值找到匹配亮度设置的方法。当用户操作时,KWin 会调整曲线,但起初调整引发问题,后强制控制点间有最小差值解决。为确保曲线单调,更新曲线时允许出现低于零的值。不过问题未完全解决,亮度会波动,为此做了增加滞后处理、应用更改时间延迟、降低亮度采用慢动画效果的调整。对该功能在 Framework 13 和搭载 Plasma 移动版的 OnePlus 6 上的表现满意。
未来展望
对目前效果满意,但工作未完成。希望不仅能调节显示器亮度,还能根据环境调节白点,但设备无实现该功能的传感器。因 Framework 13 摄像头模块易更换,希望有一天能实现此功能。