Howto Irssi
- Howto irssi
- Installation
- Utilisation de base
- racourcis clavier
- Syntaxe Vim irssilog
- Gérer le layout des windows
- Action selon touche pressée
- Envoyer une commande CTCP à un utilisateur
- Loguer toutes les conversations
- Ne pas loguer certaines fenêtres
- Enregistrer son pseudo
- Se connecter
- Highlight de son pseudo
- Levels
- Ignorer des messages
- Scripts sur irssi
- Notifications
- Rejoindre des canaux par défaut
- .irssi/config
Howto irssi
- Documentation : https://irssi.org/documentation/
Installation
# apt install irssi
Utilisation de base
/connect irc.example.com
/connect -4 irc.example.com
/connect -tls irc.example.com
/connect irc.example.com 6667 passwd nick
/join #channel
/part
/query <nick>
/query
/load
/save
/RMRECONNS
/quit
racourcis clavier
Echap + a = Se déplacer vers le dernier message le plus important
Ctrl + n = Se déplacer au salon suivant
Ctrl + p = Se déplacer au précédent salon
Syntaxe Vim irssilog
$ mkdir -p ~/.vim/syntax
$ wget 'http://www.vim.org/scripts/download_script.php?src_id=10584' -O ~/.vim/syntax/irssilog.vim
vim 2016-08.log
:syntax on
:set syntax=irssilog
Gérer le layout des windows
/WINDOW show x # créer une vue splité sur la fenêtre x
/WINDOW close # fermer la fenêtre courante
/WINDOW shrink|grow # rétrécir ou agrandir la fenêtre courante
/WINDOW balance # taille des fenêtres visible à l'identique
/WINDOW move x # déplace la fenêtre actuelle sur le numéro x
/WINDOW move UP # déplace la fenêtre sur celle du dessus
/WINDOW number x # change le numéro de la fenêtre active
/WINDOW show x # séparer la frame en deux avec la fenêtre x affiché : il faut que le mode 'sticky' soit désactivé pour cette fenêtre /WINDOW stick off
/WINDOW log ON <file> #activer les logs pour cette fenêtre <- afin de faire une surveillance sur le fichier ou autre possibilité
Ne pas hésiter à sauvegarder sa session actuelle (thème) :
/save
Action selon touche pressée
/BIND ^[OP key F1
/BIND ^[11~ key F1
/BIND F1 /me a besoin d'aide !
Envoyer une commande CTCP à un utilisateur
/CTCP user (PING|VERSION|USERINFO|CLIENTINFO|TIME)
Loguer toutes les conversations
Log les channels mais aussi les conversations privés :
/SET autolog_path ~/irclogs/irssi-%Y-%m-%d
/SET autolog ON
Ne pas loguer certaines fenêtres
Lorsqu’on se connecte et que le logging est activé, son mot de passe sera écrit dans les logs :
--- Log opened Mon Feb 09 15:07:36 2026
[…]
15:07 -!- Irssi: Starting query in localhost with NickServ
15:07 <foo> IDENTIFY PASSWORD
15:07 -NickServ(services@services.irc.example.com)- Password accepted - you are now recognized.
Une astuce est de ne pas loguer ce qui est dit dans la fenêtre dans laquelle on échange avec NickServ :
/SET autolog_ignore_targets example/NickServ
Enregistrer son pseudo
Remplacer PASSWORD et l’e-mail.
/msg NickServ REGISTER PASSWORD foo@example.com
Références :
Se connecter
Remplacer foo, le pseudo, et PASSWORD.
/msg NickServ IDENTIFY foo PASSWORD
Highlight de son pseudo
/highlight mon-pseudo
Pour lister les highlights :
/highlight
Pour être notifié à chaque message dans le canal #foo :
/highlight -regexp -channels #foo ^
Pour désactiver tout highlight personnalisé:
/dehighlight 1
Le chiffre 1 représente l’ordre à laquelle on ajoute les filtres.
Levels
Des “levels” sont attribués aux messages en fonction de leur type. On peut en obtenir la liste avec la commande :
/help levels
Ignorer des messages
La commande ignore permet de ne pas afficher certains messages. On peut les ignorer en fonction d’un mask, d’un channel et d’un level. Attention, les messages ne seront plus affichés (à l’exception du level NO_ACT) !
/ignore $mask|$channel $LEVEL
La commande prend plusieurs options pour affiner son comportement
(pour les découvrir : /help ignore)
Exemples simples :
# Ignorer tous les messages du level NICKS (changement de pseudo) :
/ignore * NICKS
# De manière plus large, ignorer tous les messages d'information des niveaux suivants :
/ignore * JOINS PARTS QUITS NICKS
# Ou, pour seulement les ignorer dans la zone d'activité de la barre de statut, on a le level spécial NO_ACT (attention, le level NO_ACT est buggé dans les vieilles versions d'Irssi !) :
/ignore * NO_ACT -JOINS -PARTS -QUITS -NICKS
# Lister ce qui est ignoré :
/ignore
# Retirer une entrée de la liste ("désignorer") :
/unignore $i
Les options suivantes permettent aussi de gérer ce qui s’affiche dans la barre d’activité :
# Pour que certains niveaux ne déclenchent pas d'activité :
/set activity_hide_level QUITS JOINS PARTS NICKS
# Pour certains channels ne déclenchent pas d'activité :
/set activity_hide_targets #channel1 #channel2
Scripts sur irssi
Créer ou copier les scripts dans ~/.irssi/scripts/
/SCRIPT load <chemin>
/SCRIPT unload <nom script>
Notifications
Pour avoir les notifications basiques de son terminal avec le
caractère bell lorsqu’il y a un highlight ou qu’on reçoit un
message privé : /set beep_msg_level MSGS HILIGHT.
Pour avoir des notifications plus poussée, on pourra utiliser le plugin fnotify qui va écrire tous les messages nous étant destinés dans ~/.irrsi/fnotify. On peut aussi le limiter à seulement une fenêtre (/WINDOW log), et le combiner aussi au plugin highlite.
On pourra ensuite parser ce fichier et envoyer des notifications. Voici un exemple de script avec irssi qui tourne dans un screen sur un serveur distant :
#!/bin/bash
if [ -n "$IRSSI_SCREEN_SRV" ]; then
ssh -q $IRSSI_SCREEN_SRV ": > .irssi/fnotify;tail -f .irssi/fnotify" > >(\
while read heading message; do
notify-send "${heading}" "${message}" -t 5000
done) & \
FNOTIFY_PID=$!
x-terminal-emulator -e "ssh -t $IRSSI_SCREEN_SRV screen -r -D"
kill $FNOTIFY_PID 2&> /dev/null
else
notify-send 'Error' 'You must set IRSSI_SCREEN_SRV !' -t 10000
fiRecherche :
/lastlog <pattern>
/lastlog -hilight
/lastlog -clear
/lastlog -new foo
/lastlog -hilight -new
Rejoindre des canaux par défaut
/channel add -auto #canal1 nom_serveur
/channel add -auto #canal2 nom_serveur
.irssi/config
serveurs :
Exemple avec OFTC forcé en IPv4, et Liberachat en starttls :
servers = (
{
address = "irc.oftc.net";
chatnet = "oftc";
port = "6667";
autoconnect = "yes";
family = "inet";
},
{
address = "irc.libera.chat";
chatnet = "liberachat";
port = "6667";
use_tls = "no";
tls_verify = "yes";
autoconnect = "yes";
starttls = "yes";
}
);
Canaux :
channels = (
{ name = "#irssi"; chatnet = "ircnet"; autojoin = "No"; },
{ name = "#debian-devel-fr"; chatnet = "oftc"; autojoin = "yes"; },
{ name = "#debian"; chatnet = "oftc"; autojoin = "no"; },
{ name = "#plugfr"; chatnet = "liberachat"; autojoin = "yes"; },
Fenêtres :
windows = {
1 = { immortal = "yes"; name = "(status)"; level = "ALL"; };
2 = {
items = (
{
type = "CHANNEL";
chat_type = "IRC";
name = "#evolix";
tag = "liberachat";
}
);
};