ubuntu 18.04 gdm 3 保存亮度
ubuntu下fn键修改亮度实际上是修改/sys/class/backlight/nvidia_0/brightness文件,前提是fn键能正常修改亮度。
nvidia_0有可能是intel或者其它字样,所以需要自行ll /sys/class/backlight查看自己显卡对应的亮度文件,下文请自行根据实际情况替换nvidia_0。
由于目前我能查到的保存亮度的办法都是在开机时给上述文件写入一个固定的自定义数值,所以我想实现真正的亮度自动保存加载。
原理:建立一个服务,在开机时启用服务,在关机前结束服务。通过在服务的启动和结束命令中执行对应的脚本来加载上次关机前的亮度,以及在关机前保存亮度。
1.先创建亮度加载和保存脚本
加载脚本将/etc/gdm3/my_brightness中保存的亮度加载到/sys/class/backlight/nvidia_0/brightness中,即将上次关机前的亮度重现。
vim /etc/gdm3/load_my_brightness
#! /bin/sh
cat /etc/gdm3/my_brightness > /sys/class/backlight/nvidia_0/brightness
保存脚本将当前亮度保存到/etc/gdm3/my_brightness中
vim /etc/gdm3/save_my_brightness
#! /bin/sh
cat /sys/class/backlight/nvidia_0/brightness > /etc/gdm3/my_brightness
2.创建服务
vim /lib/systemd/system/savemybrightness.service
[Unit]
Description=save my brightness
Requires=graphical.target
After=graphical.target
DefaultDependencies=no
Before=shutdown.target reboot.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/etc/gdm3/load_my_brightness
ExecStop=/etc/gdm3/save_my_brightness
[Install]
WantedBy=graphical.target
3.重新加载服务配置文件
systemctl daemon-reload
4.开机启用服务
systemctl enable savemybrightness.service
5.立刻运行服务
systemctl start savemybrightness.service
结束:当进行到这步,进行关机或者重启操作时服务会结束,服务结束前则执行保存脚本将当前亮度保存到/etc/gdm3/my_brightness中。下次开机时,服务启动,当系统运行级别达到图形时,执行加载将/etc/gdm3/my_brightness中保存的亮度加载到/sys/class/backlight/nvidia_0/brightness中,即将上次关机前的亮度重现。