Благодаря наличию в Irssi поддержки perl-скриптования, можно очень простым способом, не используя никаких дополнительных модулей или еще чего либо реализовать довольно-таки удобную функцию уведомления о приватных сообщениях и хайлайтах через notify-osd, используя приведенный здесь скрипт. Конечно же, вы можете использовать что угодно вместо notify-osd по вашему желанию, и тогда это будет лишь небольшим примером того как можно облагородить такой, кажущийся многим с первого взгляда убогим, IRC-клиент.
Конечно же, это работает только если клиент запущен локально у вас на машине, а не в screen на удаленном сервере.
P.S. Нашли и исправили баг с двойным уведомлением про хайлайты на канале.
#!/usr/bin/perl -w -C
use strict;
use Irssi;
use Irssi::Irc;
sub sig_public
{
my @host;
my ($server, $msg, $nick, $address, $target) = @_;
my $mynick = $server->{nick};
chomp $mynick;
if ($msg =~ m/.*$mynick.*/ )
{
# Замена разных спецсимволов на более понятные для notify-osd
$msg =~ s/</</;
$msg =~ s/>/>/;
$msg =~ s/'/`/g;
system ("/usr/bin/notify-send 'Irssi:$nick [$target]' '$msg'");
}
}
sub sig_private
{
my ($server, $msg, $nick, $address) = @_;
system ("/usr/bin/notify-send 'Irssi:$nick [private]' '$msg'");
}
Irssi::signal_add_last('message public', 'sig_public');
Irssi::signal_add_last('message private', 'sig_private');
Конечно же, это работает только если клиент запущен локально у вас на машине, а не в screen на удаленном сервере.
P.S. Нашли и исправили баг с двойным уведомлением про хайлайты на канале.
