今までGNU Screenの右下に,「時計,CPUの温度,PCの電池残量」を表示していた.
この画像の一番右下の,「59.0 deg C ... 」がそれ.
でもよく考えたらGNU Screen自体はもしかしたら, 複数表示するときもなくはないし, デスクトップ全体に時計が2つ以上表示されてるのが気持ち悪かったので,
あと, hardstatusを表示しない人を見つけてかっこいいと思ったので, 自分も真似をした.
i3_status
を自分で書いた. ちょっとハマったとこはあるけれど, 基本的に,
プログラムは, i3 - A better tiling and dynamic window manager を,
設定ファイル(~/.i3/config)は, これは一行変えるだけだけど,
bar {
status_command $HOME/bin/your/own/program
}
とするだけ.
肝心のi3_status
は, i3_status.js です.
内容は全く変わらず,「CPUの温度,電池残量,時計」
色を,#ffffff
の形式で取らせるのだけど,たぶん16色くらいにしか対応していないっぽい.
nodejs で,外のプロセスを作って結果をとるのには普通非同期を使い, 今回の場合,CPUの温度を取るのに,sensors
と, 電池の残量を取るのに,acpi
を使っているため, 非同期が2つある.
こういう時のために,Promiseなるものがもてはやされてるんだろう. 正式に追加されるまではなんとなく勉強する気にならない. いや,手元で実験しようと試みてたけど うまく動いてないので.
自分の書いたプログラムではひどい非同期になっていて, どうせ,1秒ごとに動かすのだから, 結果が多少古くてもいいや,という方針で同期を再現している.
こんなコードを書いたのも見たのも初めてだ.
モニタの右下に,
と,表示される. ターミナルの右下ではなく,モニタ一枚に付き,一箇所. 私は二枚のモニタを使ってるので,二箇所に表示される. これ自体の設定はどうするんだろう.