screen の backtick を初めて知りました。
そもそも screen ってよっぽどターミナルの切替えが面倒くさいときしか使っていなくて、この間 Mac OS を再インストールしてからは .screenrc すら作っていないとか、そんな感じ。今日はそのへんの設定してたら、backtick に気付いた。
backtick
backtick は、外部プログラムの出力を screen に表示させるためのインタフェースとなるディレクティブです。外部プログラムからの出力の最終行を screen の表示に反映させることができる。
backtick id lifespan autorefresh cmd args...
backtick は複数個定義できるので、id でそれらをユニークに判断できるようにします。lifespan は、外部プログラムを何秒毎に実行させるかの指定で、autorefresh は何秒毎に表示を更新させるかの指定です。
というわけで、screen に LDR の未読数を指定してみる。LDR の未読数は、rpc.reader.livedoor.com に対して GET してやれば取得できます。
ldr-unread-count.pl
#!/opt/local/bin/perl use strict; use warnings; use LWP::Simple; $| = 1; my $res = get('http://rpc.reader.livedoor.com/notify?user=i1kiri'); print +(split /\|/, $res)[1];
これを $HOME/.screenrc の backtick に指定する。
backtick 0 300 300 /Users/kiririmode/bin/ldr-unread-count.pl hardstatus alwayslastline "%{= kg} %H [unread=%0`] %{= kw}%-Lw%{= bw}%n%f* %t%{= kw}%+Lw %{= kw}%=%{= kg} %y/%m/%d %c "
ちょびっと未読がある。