Ça fait un moment que je me demandais (sans vraiment chercher) comment avoir des notifications sur le bureau avec irssi, comme le font les clients IRC graphiques tels que xchat ou polari par exemple. Mais dernièrement, le besoin s’est fait plus ressentir, devant pouvoir répondre à certaines personnes avec un délai suffisamment bref, sans être en permanence le nez sur la console où tourne mon irssi

Je me suis inspiré pour cela de ce qui est proposé sur cette page, en l’adaptant à mon besoin étant donné que je ne fais pas tourner mon irssi sur un serveur distant en ce moment

J’ai d’abord récupéré le plugin fnotify que j’ai enregistré dans ~/.irssi/scripts. J’ai ensuite fait un lien symbolique dans ~/.irssi/scripts/autorun vers ce script. Pour le charger sans relancer irssi on peut utiliser la commande /script load fnotify

J’ai ensuite enregistré le script irssi-notify-listener ci dessous dans ~/bin/ :

#! /bin/sh
set -e

# Based on: http://www.chiark.greenend.org.uk/~cjwatson/code/notifications/

FNOTIFY="$HOME/.irssi/fnotify"
TAIL=

cleanup () {
	rm -f "$FNOTIFY"
	if [ "$TAIL" ]; then
		kill "$TAIL"
	fi
}
trap cleanup EXIT HUP INT QUIT PIPE TERM

tail -n 10 "$FNOTIFY" 2>/dev/null || true
> "$FNOTIFY"
tail -f "$FNOTIFY" &
TAIL="$!"

Je l’ai ensuite rendu exécutable avec un chmod a+x ~/bin/irssi-notify

Enfin j’ai enregistré cet autre script ci dessous sous le nom irssi-notify également dans ~/bin/ :

#! /bin/sh
set -e

# Based on: http://www.chiark.greenend.org.uk/~cjwatson/code/notifications/

irssi-notify-listener | \
	sed -u 's/&/\&/g; s/\\/\\\\/g' | \
	while read message; do
		notify-send -i gtk-dialog-info -t 30000 -- \
			"${message}"
	done

Il suffit alors de lancer ce dernier de la sorte :

irssi-notify &

Et tadaa ! notifications_irssi.png