U1-解决Ubuntu不能使用快捷键调节屏幕亮度

解决 Ubuntu 不能使用 Fn 快捷键调节屏幕亮度


躲着宿舍里玩电脑,有个问题,就是有的舍友喜欢开灯,有的却喜欢关门关灯的。所以我一天内要调好多次屏幕亮度。我是 windows、Ubuntu 换着玩的,Ubuntu 每次都要去系统设置里面手动拖动亮度条改变亮度,很是麻烦。


今天在网上搜了下,看到了 Zero.zf 转载的 读行四海的博客 解决ubuntu无法调整和保存屏幕亮度的问题,所以想写一个通过修改影响屏幕亮度的文件,来改变屏幕亮度的脚本。当然少不了快捷键啦

编写 shell 脚本


上面提到的那篇博文中,提供了一个简单的命令,直接修改文件(屏幕亮度值0-976)

Ubuntu ~# echo 50 > /sys/class/backlight/intel_backlight/brightness

因为 Ubuntu 不是 root 登录的,为了避免出错,我先把 brightness 文件的权限改为所有人可读可写,这样比较保险哈

Ubuntu ~# sudo chmod 666 /sys/class/backlight/intel_backlight/brightness

接下来就是编写一段简单的shell脚本,给它一个调亮调暗的参数,把它放在 /bin 目录下:

# shell 名:mybrightness
# 参数 asc 调亮, 每次 +10
Ubuntu ~# mybrightness asc
# 参数 desc 调暗,每次 -10
Ubuntu ~# mybrightness desc

其实每次增减 10 有点慢,但是跨度会比较小,可以自己改 STEPS 的值,太小了没什么反应。

设置快捷键


记得要先把 `mybrightness` 脚本文件放到 `/bin` 目录下。还有就是,脚本的开头 `#! /bin/bash` 不要把 `#!` 分开了,它们是一个整体,它是在 Linux 下告诉解析器这是一个 shell 程序,我之前没太在意,在中间加了空格,结果快捷键一直没反应。

开始设置快捷键啦,到 系统设置 -> 键盘 -> 选择 快捷键 -> 左侧最下面 自定义快捷键 点击 + 添加(- 号是删除快捷键的意思) ,名称随便,命令填上面的 mybrightness asc(mybrightness desc),然后应用。


最后点击 禁用(disable)输入快捷键,如果和其他快捷键冲突了它会提示是否禁用其他快捷键,如果没有提示,说明不冲突,可以看到快捷键的 禁用 disable 改了,这时快捷键就可以用了。
当然,需要添加两个自定义快捷键,一个增加亮度,一个减少亮度,两个命令就 ascdesc 不同而已



完整代码

#! /bin/bash

# This is a script that changes the brightness of the Linux screen
# Author: TaylorBoy
# cnblog: http://www.cnblogs.com/TaylorBoy/

############ HOW TO USE #############
#
# TO Enhance brightness: 
# Shell>>> mybrightness asc
#
# TO Reduce  brightness: 
# Shell>>> mybrightness desc
#
############ HOW TO USE #############

# params1: asc,  Enhance brightness
# params1: desc, Reduce  brightness
if [ "$#" -ne 1 ]; then
	exit
fi

# Global value
BRIGHTNESS_MAX=970		# 976
BRIGHTNESS_MIN=10		# 0
STEPS=10				# Each step increase 10
BRIGHTNESS_FILE=/sys/class/backlight/intel_backlight/brightness

# Read the original value.
read parra < $BRIGHTNESS_FILE

# Determine the increase or descrease (asc/desc)
if [ "$1" == "asc" ]; then
	# Enhance brightness by 10 steps.
	temp=$(($parra+$STEPS))
	if [ "$temp" -lt "$BRIGHTNESS_MAX" ]; then
		echo $temp > $BRIGHTNESS_FILE
	fi

elif [ "$1" == "desc" ]; then
	# Reduce brightness by -10 steps.
	temp=$(($parra-$STEPS))
	if [ "$temp" -ge "$BRIGHTNESS_MIN" ]; then
		echo $temp > $BRIGHTNESS_FILE
	fi
fi

exit

Reference

读行四海的博客: Ubuntu 16.04 LTS 完善解决亮度调整

原文地址:https://www.cnblogs.com/TaylorBoy/p/6816920.html