[ubuntu入门手册]-3-如何调节和保存屏幕亮度
引言
这篇文章用Ubuntu14.04来演示如何调节和保存屏幕亮度,所使用的笔记本Intel+Nvidia双显卡,笔记本硬件是Intel芯片组,所以默认情况下所有“[fn]+热键”安装系统后都能正常使用,但"fn+亮度调节键"不起作用,本文将提供几种解决此问题的可行方案。
文章目录
0×1.如何让Ubuntu下fn+亮度调节键起作用
打开终端, 修改grub启动配置:
#1.使用任何文本编辑器编辑grub文件 qing@qingsword.com:~$ sudo vim /etc/default/grub #2.找到下面这几行 GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" /*修改这一行*/ GRUB_CMDLINE_LINUX="" #3.将倒数第二行替换成 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor" #或者将后两行替换成(两种方法效果相同) GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux" GRUB_CMDLINE_LINUX="acpi_backlight=vendor" #4.修改完成后保存退出,更新grub启动配置 qing@qingsword.com:~$ sudo update-grub #5.重启计算机 qing@qingsword.com:~$ sudo reboot
重启之后,看看[fn]+亮度调节键是不是起作用了?但是别急,这时Ubuntu还不能保存我们调节的亮度,每次重新启动后,系统的屏幕亮度都会被调节到最大值。
0×2.如何让Ubuntu重启后保存屏幕亮度
想要配置屏幕亮度,首先我们必须知道自己系统的屏幕亮度取值范围,打开终端按照下面的步骤:
#1.首先进入intel_backlight目录 qing@qingsword.com:~$ cd /sys/class/backlight/intel_backlight #此目录中有如下两个重要文件,其中brightness是当前屏幕亮度值,max_brightness保存了屏幕可以设置的最大值,可以通过ls命令查看到 qing@qingsword.com:/..../intel_backlight$ ls #在输出的结果中包含下面两个文件 brightness max_brightness #2.切换到root权限 qing@qingsword.com:/..../intel_backlight$ su - root #如果在安装ubuntu后还没有配置root用户密码,可以使用下面的命令设置root密码,否则无法切换root权限 qing@qingsword.com:/..../intel_backlight$ sudo passwd root #3.尝试写入一个值到brightness文件,看看屏幕亮度是不是变化了?(注意,在大于号前后要添加空格,不然修改会失败) qing@qingsword.com:/..../intel_backlight# echo 300 > brightness #4.理论的取值范围是0~max_brightness中的最大值,0是完全黑屏,请使用上面的方法写入一个适合自己的亮度,记下这个数字 #5.将自己调节好的数字写入开机启动文件rc.local中,比如本例使用100的亮度,如下 qing@qingsword.com:/..../intel_backlight#vim /etc/rc.local #在文件中添加下面的语句 echo 100 > /sys/class/backlight/intel_backlight/brightness exit 0 #如果有这一句就不需要添加 #注意,ubuntu16.04以前的版本,到上面这一步就行了,但ubuntu18.04需要继续执行下面的操作(因为ubuntu18.04系统中,不再使用initd管理系统,改用systemd管理) #6.给rc.local添加执行权限 qing@qingsword.com:/..../intel_backlight# chmod 755 /etc/rc.local #7.创建连接文件,将lib目录下的rc-local.service文件连接到/etc/systemd/system"目录中,因为systemd默认会读取"/etc/systemd/system"目录中的文件内容,加载内容中指定位置的文件执行,而"rc-local.service"文件中的"ExecStart="字段就指向了"/etc/rc.local"文件 qing@qingsword.com:/..../intel_backlight# ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
(注意:Ubuntu18.04不需要再进行这一步操作了,请忽略)笔者在这里遇到一个小bug,上面写入开机启动的方法不是每次重启都有效,所以下面提供了另外一种方法写入亮度
#1.首先用vim在自己家目录创建一个脚本文件 qing@qingsword.com:~$ vim ~/.constbrightness.sh #2.输入如下内容(--set-brightness 100后面这个数字100改成你想要设置的亮度值) #!/bin/sh #change brightness setting on startup or resume pkexec /usr/lib/gnome-settings-daemon/gsd-backlight-helper --set-brightness 100 #3.保存这个文件后,给他添加可执行权限 qing@qingsword.com:~$ sudo chmod +x ~/.constbrightness.sh #4.最后执行下面的命令(请将下面文件路径中的用户名qing替换成你自己的用户名) qing@qingsword.com:~$ sudo gsettings set org.gnome.settings-daemon.peripherals.input-devices hotplug-command "/home/qing/.constbrightness.sh"
经过测试发现,第二种方法每次启动都能成功将亮度设定为我们指定的值。