IRC でよばれたら表示

GNU screen hardstatus

なんで caution とかいわないで。なんとなく。

んで elisp は 33rpmさん に教えてもらって

(add-hook 'riece-keyword-notify-functions
      (lambda (keyword message) (call-process "touch" nil nil nil "/tmp/riece")))
(add-hook 'riece-after-switch-to-channel-functions
      (lambda (last) (call-process "rm" nil nil nil "/tmp/riece")))

こんな感じのを .riece/init においておく。これでIRCでキーワード流れると /tmp/riece ができる。 チャンネルかえると消える。

#!/usr/bin/perl

use strict;
use warnings;

$| = 1;

while (1) {
    if (-e '/tmp/riece') {
        print " Caution!! \n";
    }
    else {
        print "\n";
    }

    sleep 1;
}

こんなんを riece.pl として .screenrc には

hardstatus alwayslastline "[%02c] %0`%-w%{=b bw}%n %t%{-}%+w %= %?%{=b rw}%2`%{-} %?%1`"

backtick 0 0 0 ${HOME}/.screen/backtick.pl
backtick 1 0 0 ${HOME}/.screen/netstat.pl
backtick 2 0 0 ${HOME}/.screen/riece.pl

こんな感じで。%? でくくられてるところはそのなかのエスケープ文字(この場合 %2` )が展開されるときだけ中を表示するやつ。

んでこれ消すのにチャンネル変えなきゃいけないのはめんどいこともあるとおもうので

#/bin/sh
rm /tmp/riece

とかを delriece.sh とかにして screenrc に

bind r exec $HOME/.screen/delriece.sh

とかしといた。

by typester / at 2005-12-06T19:21:00 / screen / Comments(0)