躲着宿舍里玩电脑,有个问题,就是有的舍友喜欢开灯,有的却喜欢关门关灯的。所以我一天内要调好多次屏幕亮度。我是 windows、Ubuntu 换着玩的,Ubuntu 每次都要去系统设置里面手动拖动亮度条改变亮度,很是麻烦。
今天在网上搜了下,看到了解决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 改了,这时快捷键就可以用了。
当然,需要添加两个自定义快捷键,一个增加亮度,一个减少亮度,两个命令就 asc 和 desc 不同而已
完整代码
#! /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
附:解决ubuntu无法调整和保存屏幕亮度的问题