Ubuntuで画面の明るさを細かく調節したかったんですが、設定用の標準コマンドがなかったので、簡単なシェルスクリプト(bash)を組んでターミナルから設定できるようにしました。
周りの人に画面を見られるのが好きじゃないので、視線を感じたら即行明るさ1にしてやります。やったぜ。
※システムファイルを扱うので、慎重にどうぞ
Contents
こんな感じ
明るさ10に設定。
sudo light pow 10
OK
現在の明るさを確認。
sudo light now
10
明るさは1~200。0は真っ暗なので、範囲に含めません。
sudo light 0
範囲外: 1~200
いくら個人用とはいえ、危険なので数値以外弾く。
sudo light aaa
不正な引数: aaa
設定方法
ディレクトリ移動、スクリプトファイル作成。
cd /usr/local/bin
sudo nano light
スクリプトを記述して保存。これで完了。
#!/bin/bash
# light now
if [ $1 == "now" ]; then
cat /sys/class/backlight/intel_backlight/brightness
fi
# light pow <1~200>
if [ $1 == "pow" ]; then
if [[ $2 =~ ^[0-9]+$ ]]; then
if [ $2 -ge 1 -a $2 -le 200 ]; then
echo $2 > /sys/class/backlight/intel_backlight/brightness
echo "OK"
else
echo "範囲外: 1~200"
fi
else
echo "不正な引数: ${2}"
fi
fi
軽い解説
このシステムファイルに明るさが数値で設定されています。基本的にはこれを読み込んだり書き込んだりしてるだけです。
/sys/class/backlight/intel_backlight/brightness
正規表現で0以上の数値のみを許容します。
if [[ $2 =~ ^[0-9]+$ ]]; then
1~200のみを許容します。これは($2 >= 1 -&& $2 <= 200)と同じ意味。
if [ $2 -ge 1 -a $2 -le 200 ]; then
参考
シェルスクリプトは色々と特殊でなかなか慣れない。
The present writer kazz.