Perl

Irssi 的 OSD 通知

  • October 18, 2014

每次收到 /query 消息或在頻道中突出顯示時,我都希望收到通知。此通知應採用氣泡 OSD 的形式(螢幕顯示)。

如果 Linux 無法使用 OSD,我將滿足於將包含irssi實例的終端視窗置於視窗堆棧的頂部,並在狀態欄中閃爍視窗的名稱。

這很容易使用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-senddzen是不顯眼的通知應用程序的絕佳選擇。

引用自:https://unix.stackexchange.com/questions/162643