根据环境光亮度自动调节屏幕亮度的简单脚本
- 安装软件包
light用于屏幕亮度调节。 - 将用户加入
video组,可以直接下载软件包polkit。 - 检查笔记本的光线传感器是否可用,比如检查目录
/sys/bus/iio/devices/iio:device0下是否有名字包含illuminance的文件。对于我的笔记本Lenovo ThinkBook 14p,/sys/bus/acpi/devices/ACPI0008\:00/iio\:device0/in_illuminance_raw就包含了当前环境光强的尼特值。
lightup提高10%亮度。lightdown降低10%亮度。set_backlight根据环境亮度自动调节屏幕亮度,如果上次手动调节在十分钟以内,则不自动调节。
- 先将这些脚本放入环境变量。
- 如果是
i3wm用户,则可以使用快捷键绑定这些脚本 。
# 开机自动执行脚本
exec --no-startup-id set_backlight
# 删除掉手动调节记录
# 相当于打开自动调节
bindsym $mod+Ctrl+l exec rm /tmp/auto_backlight.log
# 与键盘亮度调节按键绑定
bindsym XF86MonBrightnessUp exec lightup
bindsym XF86MonBrightnessDown exec lightdown
- 如果是
i3blocks用户,则可以利用i3blocks间隔执行脚本
# `i3blocks`配置文件加入
[AUTO_BACKLIGHT]
command={set_backlight的路径}
interval=persist
- 如果想要登录自动启动,可以在
.bashrc、.zshrc等配置文件中加入
if [ ! -f /tmp/auto_backlight_lock ]; then
nohup set_backlight > /dev/null 2>&1 &
fi