理系学生日記

おまえはいつまで学生気分なのか

screen に LDR の未読数を表示する

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 "

ちょびっと未読がある。