use Irssi; sub sig_printtext { my ($dest, $text, $stripped) = @_; my ($window) = Irssi::window_find_name('hilight'); my ($active) = Irssi::active_win(); return if (!$window); if (($dest->{level} & (MSGLEVEL_HILIGHT|MSGLEVEL_MSGS)) && ($dest->{level} & MSGLEVEL_NOHILIGHT) == 0) { if ($dest->{level} & MSGLEVEL_PUBLIC) { $text = $dest->{target}.": ".$text; } if (($dest->{window}->{refnum} != $active->{refnum}) && ($dest->{target} =~ /^#.*$/)) { $window->print($text, MSGLEVEL_NEVER); } } elsif ($dest->{level} & (MSGLEVEL_DCC|MSGLEVEL_DCCMSGS|MSGLEVEL_NOTICES|MSGLEVEL_CTCPS)) { $window->print($text, MSGLEVEL_NEVER); } } sub unload_script { my($win) = Irssi::window_find_name('hilight'); $win->destroy() if ($win); Irssi::command('script unload hilightwin'); } Irssi::command('window new split hidden'); Irssi::command('window name hilight'); Irssi::command('window size 3'); Irssi::command('window down'); Irssi::command_bind('hwinoff', 'unload_script'); Irssi::signal_add('print text', 'sig_printtext');