
/query メッセージを受信するたび、またはチャネルでハイライト表示されるたびに通知を受け取りたいです。この通知は、バブル OSD (オンスクリーン ディスプレイ) の形式にする必要があります。
irssi
Linux で 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
、ゼン目立たない通知アプリケーションに最適です。