解決 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
改了,這時快捷鍵就可以用了。
當然,需要添加兩個自定義快捷鍵,一個增加亮度,一個減少亮度,兩個命令就 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
Reference
讀行四海的博客: Ubuntu 16.04 LTS 完善解決亮度調整