[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"
					

经过测试发现,第二种方法每次启动都能成功将亮度设定为我们指定的值。