(2017-06-27 初稿 -2020-08-17 転記・追記 )
(2020-08-17 追記) 本文中では、Debian 9で記述してますが、10 Busterでも動作確認してます。
先日、Debian 9.0 stretch がリリースされたので、ノートPCにインストールしました。
古いノートPCだったので、インストールの際にできるだけ軽快に動作させたいと思い、デスクトップ環境としてLXDEを選択しました。
確かに、LXDEは動作が軽快で、スペックの低い我がノートPCにはあっています。
ところが、インストール後、電源を外して使っていたところ、あっと言う間にバッテリー不足になってしまいました。
原因は、LCDの輝度が最高値になっていたためでした。
そこで、輝度を調節したかったのですが、筆者のノートPCでは、Fnキーを利用したLCDの輝度の調整ができなくて困りました。BIOSをレガシーモードでインストールしているのが原因かもしれません。
また、残念ながらLXDEにも輝度調整をするアプレットは準備されていないようです。
そこで、ネットで検索したところ、すばらしいページがありました。
このページでは3つの方法が記述されているのですが、筆者が気に入ったのは一番最後のシェルスクリプトで輝度を変更する方法です。
さっそくスクリプトをいただいて、使っていたのですが、現在の設定値を調べるのが面倒で少し改変してみました。
以下のスクリプトでは、実行時に引数を付けずに実行すると、現在値と割合が表示されます。
cat ~/bin/brt
#! /bin/sh
##
# @brief Change LCD brightness
#
# Change the brightness of the current LCD via command line.
# You should be a root to run this script.
#
# @usage
# ./brt value
#
# @param value
# A relative brightness. The max brightness is when value = 100.
# If value > 100, it is regarded as value = 100. The minimum
# brightness is set when value = 0. But this means a LCD blackout.
# Thus, value smaller than 20 is ignored and set value = 20.
# Non-numeric input is regarded as value = 20.
# add H.Y
PREFIX="/sys/class/backlight/intel_backlight"
MAX_V=$(cat ${PREFIX}/max_brightness)
CUR_V=$(cat ${PREFIX}/brightness)
CUR_R=$(echo "scale=1; ${CUR_V} * 100 / ${MAX_V}" | bc)
##
usage () {
echo "usage:" >&2
echo " brt value" >&2
echo " value is an integer number between 20 and 100." >&2
echo " " >&2
echo " current brightness is " ${CUR_V}"/"${MAX_V} "=" ${CUR_R} "%" >&2
exit 1;
}
## No argument, then show usage and exit.
[ -z "${@}" ] && usage
## Parse the first argument. Non-numeric input is zero.
VALUE=$(echo ${1:?} | awk '{print $1*1}')
[ ${VALUE} -gt 100 ] && VALUE=100
[ ${VALUE} -lt 20 ] && VALUE=20
VALUE=$(echo "${MAX_V} * ${VALUE} / 100" | bc)
echo ${VALUE} | sudo tee ${PREFIX}/brightness >/dev/null
上記を切り取って、~/binの中に brt 等の名前を付けて保存します。
chmod +x ~/bin/brt
引数なしで実行すると、コマンドの使い方と現在の設定値が表示されます。
brt
usage
brt value
value is an integer number between 20 and 100.
current vrightness is 625/1562 = 40%
また、10〜100%の割合を引数とすると、その値に設定できます。
brt 50
簡単なシェルスクリプトですが、あると重宝します。
皆さんもぜひどうぞ。(^^)/