読者です 読者をやめる 読者になる 読者になる

Arch Linux で tmux のステータスバーにバッテリ残量を表示する

Arch Linux では,acpi パッケージを用いることにより,コマンドライン上でバッテリの状態を取得することが出来ます.

これを利用して,tmux のステータスバーにバッテリ残量を表示してみたいと思います.

acpi モジュールによりインストールされる acpi コマンドでは,-b オプションを付与することにより,バッテリの状況を表示できます.記事執筆時では,acpi -b と実行した時の結果は以下のようになっています.

% acpi -b
Battery 0: Discharging, 57%, 03:01:42 remaining

バッテリが複数認識されているときは,出力が Battery 1: … と続きます.

では,acpi コマンドの出力を加工していきます.

acpi -b | grep -oE \[0-9\]+%

とすることで,バッテリ残量のパーセント表示のみをフィルタすることができます.

せっかくなので,充電中か否かに応じて,文字色を変えてみます.
バッテリが充電中でないときは,出力に "Discharging" という単語が含まれるのを利用して,以下のように記述できます.

if [ `acpi -b | grep -oE Discharging` = "Discharging" ] ; then
  echo -n \#\[fg=yellow,bold\]
else
  echo -n \#\[fg=green,bold\]
fi

echo `acpi -b | grep -oE \[0-9\]+%`

以上のスクリプトを,適当に保存し,gs.tmux.conf で

set -g status-right '… #(sh tmux_status_batt.sh) …'

などとすれば良いと思います.
tmux ステータスバーのカスタマイズは,Manpage of TMUX に詳しいので,詳細はそちらを参照してください.