![粒度](https://linux22.com/image/1012483/%E7%B2%92%E5%BA%A6.png)
我很高兴现在可以利用 Surface Pro 3 上的环境光传感器,并像在手机上一样使用自动亮度。它现在内置在(至少在 GNOME 中)自动亮度切换,但遗憾的是,我不得不赶紧把它关掉。
粒度
主要问题是它变化不平滑。背光每隔约 0.5 秒左右就会从一个亮度级别跳转到下一个亮度级别,直至达到新的目标亮度。与我在 Android 上习惯的平滑渐变相比,这些跳跃非常明显。
我希望有办法改变这种情况,比如每次调整亮度 1% 或更少,每 0.1 秒左右。我把其中一个调得越小,另一个就需要调得越小。无论哪种方式,我确信我的背光能够实现比这更不明显的增量 - 因为我可以使用亮度滑块手动实现它们。
变化性
另一个问题是它一直都是这样。我怀疑这可能与我使用的是平板电脑有关,平板电脑并不总是像笔记本电脑一样放在桌子上,而是经常拿在手里。也许在固定设置下不要指望光线发生很大变化是有道理的,但当我拿着平板电脑时,哪怕是最轻微的倾斜也会让环境光传感器得出非常不同的结论(也许天花板上的灯光进入视野,或者我的手投下了阴影,等等)。
如果我可以通过进行非常小而缓慢的调整来解决上述问题,那么这个问题应该会变得不明显。但另一种选择是简单地改变传感器的轮询率,或者延迟/平均这些值,这样可以忽略短暂的亮/暗脉冲。我的环境光传感器可能太有方向性了,无法用其他任何方式解决这个问题。
我尝试过的方法
我已经iio-sensor-proxy
安装了,并且研究了这个问题很长时间,但网上似乎没有人详细介绍新的自动亮度功能的机制。各种答案都建议将其关闭。显然这不是真正的解决方案。
我可以使用xbacklight --set
脚本来更改亮度,而且我确信我可以制作自己的亮度脚本来轮询传感器数据。这似乎仍然是倒退了一步,我总是担心添加更多可能效率不高的持续运行脚本。话虽如此,我还是愿意听取专家的脚本建议。
网上似乎也有很多关于 Ubuntu 第三方程序可以完成这项任务的信息,但使用网络摄像头作为临时的环境光传感器,而不是真正的传感器。我有一个真正的,所以我想使用它。
答案1
首先获取源代码并构建依赖项:(在“软件和更新”中,确保已选中“源代码”。)
apt source gnome-settings-daemon
sudo apt build-dep gnome-settings-daemon
然后在 中plugins/power/gsd-power-manager.c
,将 的值更改
GSD_AMBIENT_SMOOTH
为较低的值。我正在使用0.05f
,它可能有点太低了。
保存更改:
cd gnome-settings-daemon-*
dpkg-source --commit
您将被要求命名补丁并编写摘要文件。
然后重建:
debuild
可能需要通过 安装“debuild”命令sudo apt install devscripts
。
然后安装:
sudo dpkg -i ../gnome-settings-daemon_*.deb
答案2
补充上一个答案https://askubuntu.com/a/1139372/1083623并回答 Verax 在评论中提出的问题:
安装 umockdev 及其 GObject Introspection 包
sudo apt install gir1.2-umockdev-1.0
我还必须使用标志来在构建期间禁用数字签名:
sudo debuild -uc -us