LINUX.ORG.RU

[irssi] Ищу сигнал

 


0

1

Задача: хочу, чтобы при появлении нового сообщения (= сообщения в каком-либо канале, адресованное мне) в файл ~/.irssi/pipe записывалось «1». Как только я зайду на тот канал, в ~/.irssi/pipe должно записаться «0» (конечно, если есть новые сообщение в других каналах, то 0 записаться не должна).

У меня настройки такие:

  "fe-common/core" = {
    use_status_window = "yes";
    autolog_path = "~/.irssi/log/%Y/$tag/$0";
    autolog = "yes";
    bell_beeps = "yes";
    beep_msg_level = "HILIGHT";
    beep_when_window_active = "no";
  };
Когда мне кто-то что-то пишет в канале, а я не в нём, то в статусбаре появляется номер этого канала красным цветом. Когда я на него захожу, это уведомление пропадает. А я хочу, чтобы когда это уведомление есть, в файле ~/.irssi/pipe была 1, иначе 0.

Пытался написать плагин:

use Irssi;
use strict;

sub start_notify {
    system('echo 1 >~/.irssi/pipe');
}

sub stop_notify {
    system('echo 0 >~/.irssi/pipe');
}

Irssi::signal_add('window hilight', \&start_notify);
Irssi::signal_add('window dehilight', \&stop_notify);
Irssi::signal_add('gui exit', \&stop_notify);
Но не работает 'window dehilight'. Я думал, этот сигнал появляется, когда снимается уведомление, но, видимо, нет, ибо в файле ~/.irssi/pipe всегда 1, кроме как когда irssi выключен.



Последнее исправление: toady2 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.