Mon Jun 2 20:13:40 JST 2014

今まで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秒ごとに動かすのだから, 結果が多少古くてもいいや,という方針で同期を再現している.

こんなコードを書いたのも見たのも初めてだ.


モニタの右下に,

と,表示される. ターミナルの右下ではなく,モニタ一枚に付き,一箇所. 私は二枚のモニタを使ってるので,二箇所に表示される. これ自体の設定はどうするんだろう.