Irssi の OSD 通知

Irssi の OSD 通知

/query メッセージを受信するたび、またはチャネルでハイライト表示されるたびに通知を受け取りたいです。この通知は、バブル OSD (オンスクリーン ディスプレイ) の形式にする必要があります。

irssiLinux で OSD が不可能な場合は、インスタンスを含むターミナル ウィンドウをウィンドウ スタックの最上部に移動し、ステータス バーでウィンドウの名前を点滅させることに決めます。

答え1

これは、fnotify スクリプト設定する自動ロード次に、選択したファイルに印刷するようにカスタマイズします。

sub filewrite {
    my ($text) = @_;
    # FIXME: there is probably a better way to get the irssi-dir...
        open(FILE,">>$ENV{HOME}/path/to/your/fnotified");
    print FILE $text . "\n";
        close (FILE);
}

次に、inotifywaitそのディレクトリまたはファイルを監視し、そこに新しい行が書き込まれたときにメッセージをトリガーするには、次のようにします。

#!/usr/bin/env bash
# script to push IRC highlight notifications

dir="$HOME/path/to/your/"

while inotifywait -qqre attrib "$dir" >/dev/null 2>&1; do
    echo "IRC:" "You have been pinged..." |  notify-send IRC "You have been pinged…" \
    -i /usr/share/icons/gnome/48x48/status/dialog-warning.png
done

私はirssiヘッドレスサーバーで実行しているので、監視ディレクトリを他のすべてのマシンと同期します。Pulse (旧 Syncthing)そして、inotifyそれらのローカル マシンでスクリプトを実行すると、どこにログオンしていても、ping が実行されると通知が届くようになります...

ログイン時にスクリプトを開始する方法など、inotify使用している場合はサービス ファイルからスクリプトを実行できます。systemd

を使用したくない場合はnotify-sendゼン目立たない通知アプリケーションに最適です。

関連情報