Irssi

De ArchwikiFR


Irssi est un client IRC en ligne de commande comme weechat, bitchX,... Cela signifie qu'il n'a pas besoin d'environnement graphique pour fonctionner. Il est possible de lui adjoindre de nombreux scripts en perl qui étendent ses possibilités. Le tout reste très léger et modulable. Pour les plus impatients, une configuration toute prête se trouve en bas de cette page.

Installation

Le paquet se trouve dans les dépôts officiels, il suffit donc de faire :

# pacman -S irssi

Configuration

Il y a deux méthodes pour configurer irssi. La première consiste à éditer le fichier de configuration à l'aide de votre éditeur de texte préféré. Il s'agit du fichier ~/.irssi/config. Si ce fichier n'est pas présent chez vous, il suffit de lancer une première fois irssi pour que le fichier soit créé automatiquement. L'autre méthode consiste à utiliser des commandes une fois le programme lancé avec possibilité de sauvegarder les changements faits dans le fichier de configuration.


Interface de base de irssi
Au premier lancement, cela ne ressemble à rien et on ne peut cliquer nulle part.

Pas de panique. Souvenez-vous de l'introduction, irssi fonctionne en ligne de commande donc pas besoin de souris. On va maintenant pouvoir configurer tout ça.

Généralités

  • Sous irssi, l'auto-complétion des commandes et des pseudonymes fonctionne comme dans un shell classique et ce grâce à la touche Tabulation.
  • Les commandes commencent toutes par "/".
  • La fenêtre numéro 1 est la fenêtre de statut, celle où vous allez voir les messages des services des réseaux et d'autres messages que nous passerons en revue plus tard.
  • Les commandes à vide, sans paramètre, renvoient la valeur qu'elles ont à l'instant où on les exécute.
Example: La commande /set alternate_nick renvoie dans la fenêtre de statut SET: alternate_nick : chmoll
(par exemple).
  • irssi sauvegarde régulièrement les paramètres dans ~/.irssi/config et dans ~/.irssi/votre_theme_actuel.theme. Si vous éditez l'un de ces fichiers à la main pendant qu'irssi fonctionne, n'oubliez pas de faire un /reload dans irssi, voire un /save pour bien fixer le tout sinon vous risquez de perdre vos modifications.
  • La plupart des commandes renvoient leur résultat dans la fenêtre de statut : la fenêtre 1.

Ajout de réseaux

Il faut à présent se connecter à un réseau. Pour cela on va lancer ces commandes :

/ircnet

Cela va vous donnez la liste des réseaux pré-configurés.

Pour en ajouter un :

/ircnet add <nom_du_réseau>
/server add <adresse_du_réseau>
/server add -auto -ircnet <nom_du_réseau> <adresse_du_réseau>

Le nom du réseau est personnel, vous pouvez mettre ce que vous voulez, l'adresse quant à elle est un domaine internet, souvent porteur du sous-domaine "irc", bien qu'aucune obligation n'existe à ce niveau-là.

Note:
  • Si vous utilisez freenode, Quakenet, DALnet, Undernet ou EFNet, sachez qu'ils sont déjà pré-configurés.
  • L'option -auto est facultative : si vous la mettez, ce réseau sera connecté automatiquement au lancement d'irssi

La syntaxe complète est :

/SERVER ADD [-4 | -6] [-ssl] [-ssl_cert <cert>] [-ssl_pkey <pkey>] [-ssl_verify] [-ssl_cafile <cafile>] [-ssl_capath <capath>] [-auto | -noauto]
            [-network <network>] [-host <hostname>] [-cmdspeed <ms>] [-cmdmax <count>] [-port <port>] <address> [<port> [<password>]]

Avec dans les plus importants :

  • auto: Connexion automatique au serveur au démarrage
  • noauto: Pas de connexion automatique au lancement (par défaut)
  • network: Spécifie quel réseau IRC est rattaché à ce serveur
  • host: Spécifie le nom d'hôte si il y'en a plusieurs possibles

Pour se connecter à un réseau, rien de plus simple :

/connect <nom_du_réseau>

Exemple :
/connect freenode

Ajout de canaux

Vous pouvez également définir des canaux à rejoindre sur un serveur :

/CHANNEL ADD [-auto | -noauto] [-bots <masks>] [-botcmd <command>] <channel> <network> [<password>]

Avec les arguments -bots et -botcmd vous pouvez envoyer automatiquement des commandes à quelqu'un sur le canal. Pratique pour récupérer automatiquement ses droits (op/half-op/voice) sur un canal.

Vous pouvez aussi aller dans ~/.irssi/config et éditer la section suivante comme suit :

channels = (
  { name = "#archlinux-fr"; chatnet = "freenode"; autojoin = "yes"; },
  { name = "#arch-fr-off"; chatnet = "freenode"; autojoin = "yes" },
  { name = "#archlinux"; chatnet = "freenode"; autojoin = "yes"; },
  { name = "#archlinux64"; chatnet = "freenode"; autojoin = "yes"; },
  { name = "#irssi"; chatnet = "freenode"; autojoin = "yes"; },
  { name = "#ctkarch"; chatnet = "freenode"; autojoin = "yes"; },
  { name = "#wmfs"; chatnet = "freenode"; }
);

Pour vous identifier automatiquement, toujours dans le même fichier recherchez et rajoutez :

freenode = {
    type = "IRC";
    autosendcmd = "/^msg -freenode nickserv IDENTIFY <votre pass>;wait -freenode 2000";
};
Note: Sur certains serveurs, vous aurez besoin d'une autre commande pour vous identifier, utilisez : /quote au lieu de /msg

Ensuite un simple /reload dans irssi et /reconnect freenode et hop vous êtes en auto sur tout ces chans et identifié ! Vous pouvez bien sûr rejoindre des canaux "à la volée" :

/join #coco

Rejoint le canal #coco

/join #numero5,#coco,#loulou

Rejoint les canaux #numero5, #coco, #loulou en une seule action

/join #channel <pass>

Rejoint le canal #channel protégé par le mot de passe <pass>

/join #pv1,#public,#pv2 pass1,x,pass2

Rejoint les canaux #pv1, #public, #pv2 avec les mots de passe correspondant aux canaux.

Note:
  • 'x' pour un canal sans mot de passe au milieu des autres
  • Il existe des aliases de base et /j en est un. C'est l'alias de /join

Le thème

Il est stocké dans ~/.irssi avec l'extension .theme, vous pouvez en trouver un certain nombre sur la page des thèmes.

Pour tester votre nouveau theme :

/SET theme <nom_theme_sans.theme>

Où nom_theme_sans.theme est le nom du theme que vous avez téléchargé sans l'extension ".theme". Le thème par défaut est default.theme.

Certaines variables

Il y en a beaucoup, consultez le site officiel.

Une bien sympa :

/set quit_message "C'est quoi cette commande ?"

Affiche "C'est quoi cette commande ?" quand vous fermez Irssi avec la commande /quit

/set timestamp_format %H:%M:%S

Affiche l'heure dans un format heures, minutes, secondes

/set real_name "John d'eau"

Définit votre "vrai nom"

/set alternate_nick John_bis

Définit votre pseudo alternatif en cas de déconnexion / reconnexion

Note:
  • Sur freenode (et les autres réseaux IRC qui utilisent nickserv), pour tuer un "ghost" et pouvoir repasser de son alternate_nick à son nick il faut faire : /msg nickserv ghost <nick> <mot de passe d'identification>. Puis /nick <nick> vous redonnera votre pseudo.
  • Toujours sur freenode (et les autre réseaux irc qui utilisent nickserv), vous pouvez "linker" (lier) vos différents pseudos pour ne pas perdre vos droits (op/half-op/voice) : /msg nickserv link pseudo_alternatif pseudo_principal <mot de passe du pseudo principal>

Créer un alias

/ALIAS <nom de l'alias> <commande> 


Exemples d'aliases :

/ALIAS AME foreach channel /eval action $$C $$-; foreach query /eval action $$T $$-
/ALIAS ASAY foreach channel /eval msg $$C $$-; foreach query /eval msg $$T $$-

/AME envoi un /me <votre message> sur toutes les "fenêtres" ouvertes.

/ASAY envoi un message dans toutes vos fenêtres ouvertes


Upload d'un fichier : nécessite ompload-git.

/alias ompload exec -out ompload -u \"$*\";


Screenshot & upload du screen : nécessite ompload-git et imagemagick.

/alias screen exec - import -window root /tmp/screen.png && ompload -u /tmp/screen.png;


Ajoute tout les canaux ouverts dans le fichier de configuration :

/alias ADDALLCHANNELS script exec foreach my \$channel (Irssi::channels()) { Irssi::command("channel add -auto 
\$channel->{name} \$channel->{server}->{tag} \$channel->{key}")\;}
Attention: Le saut de ligne a été ajouté pour améliorer la lisibilité

Nécessite d'avoir le réseau déjà configuré et de sauvegarder la configuration ensuite avec /save.

Sécuriser vos conversations

Avec Off-the-Record (OTR) Messaging.

Extensions

Irssi est déjà très puissant, mais avec l'ajout de scripts ses possibilités sont décuplées. Exemples : flood de chan avec figlet, contrôle de xmms/mpd et autres, infos dans la barre d'activité, hilight avec commande, jonction automatique, morse, ... Les scripts sont placés dans ~/.irssi/scripts pour les scripts de bases et ~/.irssi/scripts/autorun pour ceux qui doivent être lancés au démarrage. Pour charger un script :

/script load <nom_du_script.pl>

ou

/script load autorun/<nom_du_script.pl>

Pour avoir la liste de ce qui tourne :

/script list

Pour virer un script :

/script unload <nom_du_script_sans_point_pl>

Des tonnes de scripts vous attendent sur le site officiel (autres liens en bas de la page)

Note: Si vous n'avez pas la commande /script , pas de panique ! Vérifiez que vous avez bien un irssi compilé avec le support perl:

tapez ceci dans irssi :

/load perl

Vous devez voir quelque chose du style :

-!- Irssi: Loaded module perl_core
-!- Irssi: Loaded module fe_perl

dans la fenêtre de status(1).

Ensuite, créez un fichier ~/.irssi/startup avec dedans la ligne /load perl

Et hop !

Silc

SILC, c'est propre et utilisable avec le client. Alors il faut installer irssi_silc_plugin, attention ça fonctionne avec irssi 0.8.10 (archlinuxfr/irssi)

Après avoir installé tout ça, dans l'ordre :

* /LOAD silc
* /CONNECT -silcnet SILCNet silcnet.org
* /join silc

Toutes (?) les commandes ordinaires sont utilisables : /list, /ping , etc.

A compléter

Utilisation

Pour lancer l'application, c'est facile, ouvrez un terminal et lancez la commande suivante :

$ irssi

À l'aide des raccourcis suivants, vous allez pouvoir vous déplacer entre les fenêtres :

  • Ctrl-N : va à la fenêtre suivante
  • Ctrl-P : va à la fenêtre précédente
  • Alt-X : va à la fenêtre n°X où X = 1 à 0 (=10)

Les raccourcis sont "en anglais" : P comme dans Previous/Précédente et N comme dans Next/Suivant

Ensuite, vous pouvez parler normalement. irssi offre luxe de s'adapter automatiquement au charset des canaux. Comment avoir la liste des utilisateurs ?

/names

ou son alias :

/n
Note: Le script anames inclus dans ma configuration permet d'afficher via la commandes /anames les gens absents (away) en grisé.

Pour parler en privé à quelqu'un :

/query <nom>

ou

/q <nom>

Cela ouvre une fenêtre privée avec "nom".

Note:
  • /query tout court ou /window close et son alias /wc fermeront la conversation privée (/wc ferme n'importe quelle fenêtre)
  • /leave ferme la fenêtre également.

Pour ignorer les messages de quelqu'un :

/ignore pseudonyme

Pour envoyer un message commençant par [votre pseudo] :

/me fait des pompes

(enverra "[votre pseudo] fait des pompes")

/nick nouveau_nick

Change de pseudo.

/exec <commande>

ou

/exec -o <commande>
Exemple :
/exec -o cat /boot/vmlinuz26

Renvoie le résultat d'une commande dans le canal courant, l'option -o permet de montrer le résultat à tout le monde. Sans -o vous serez le seul à le voir.

/window move <n>

Déplace la fenêtre courante à la position <n> avec n un entier

Quand vous aurez organisé la liste des canaux comme il vous plaît, Irssi peut sans souci sauvegarder la disposition. Pour cela :

/layout save 

Et au prochain lancement, les canaux se mettront dans l'ordre où ils étaient au moment du lancement de cette commande.

Fenêtre de statut

Les commandes de la fenêtre de statut :

  • /list : affiche la liste des canaux du réseau sélectionné
  • /who #archlinux-fr : affiche la liste des gens présents sur #archlinux-fr, par exemple
  • /hilight <mot> : met en couleur ("HighLight" ou "HL") le nick de la personne qui prononce <mot>
  • /dcc list : liste les fichiers disponibles par dcc
  • /dcc get <nick> : pour récupérer un fichier envoyé par <nick> via dcc
  • /dcc send <nick> <nom_du_fichier> : pour envoyer un fichier par dcc à nick
  • /help pour avoir la liste des commandes
  • /help <nom_de_la_commande> pour avoir de l'aide sur une commande particulière (quand elle existe)

Il en existe beaucoup d'autres.

La barre d'activité

C'est la barre qui est juste au-dessus de l'espace où vous tapez vos messages et commandes. Elle se compose de 3 parties :

  • L'heure
  • Votre pseudo avec vos droits et le canal sur lequel vous êtes
  • Le reste de la barre qui, de base, contient des numéros représentant les autres fenêtres. Un numéro blanc en gras signifie que quelqu'un parlé dans cette fenêtre depuis que vous l'avez vue, un numéro bleu indique qu'il y a eu dans la fenêtre concernée des messages de service (ceux qui apparaissent en bleu) et un numéro rose/violet indique une fenêtre où vous avez été "highlighté" (soit que l'on a prononcé votre pseudo, soit qu'un mot que vous surveillez a été prononcé, c.f la commande /highlight)

Il existe des scripts pour personnaliser tout cela.

Ressources

Liste des aliases de base

Note: Les aliases sont insensibles à la casse (case-insensitive) /ban est donc équivalent à /BAN ou à /Ban
Commande Alternative Description
/ban /bans,/b Bannit ou donne la liste des bans sur un canal
/clear /c,/cl Purge le buffer d'un canal (efface l'écran)
/join /j Rejoindre un canal
/kick /k Kicker un utilisateur (le sort du canal)
/kickban /kb Kicker et bannir un utilisateur (le sort et l'empêche d'y revenir)
/msg /m Envoie un message privé à un utilisateur
/unban * /mub Purge la liste des bans d'un canal
/names /n Liste les utilisateurs dans le canal courant
/topic /t Affiche/édite le topic (thème de discussion).
Astuce: utilisez /t[espace][tab] pour éditer automatiquement le topic existant
/window close /wc Force la fermeture d'une fenêtre
/whois /wi WHOIS un user, c'est à dire affiche des infos sur l'utilisateur dans la fenêtre de statut

...

Voir la liste dans ~/.irssi/config : ( aliases = { ... } )

Exemple de configuration

Il n'y a presque rien à faire sinon éditer le fichier de configuration et lire le fichier READMOI

Elle est en téléchargement ici : irssi.tar.gz ~ 280ko (dernière mise à jour le 13/11/2006)

Mini FAQ

  • Mon affichage est "buggé", que faire ? : /redraw
  • Je suis obligé de copier-coller les urls que je souhaite ouvrir. Solution : utiliser urxvt et ajouter dans votre ~/.Xdefaults : URxvt*cutchars: `"()'*<>[]{ }
  • Il me manque des librairies perl. Faites une recherche sur AUR/Pacman pour trouver les packages, sinon il faut les faire à la main. Elles sont toutes là : cpan.org

Liens

  1. http://www.irssi.org (site principal)
  2. http://www.irssi.org/documentation (la doc)
  3. http://fr.gentoo-wiki.com/Irssi (une super doc en français, plus pointue)
  4. http://www.irssi.org/themes (des thèmes)
  5. http://www.irssi.org/scripts (beaucoup de scripts)
  6. http://f0rked.com/articles/irssi (un autre article et des scripts)
  7. http://f0rked.com/public/irssi-docs/manual.txt (la doc un peu plus technique, mais pas finie ...)
  8. http://msk3.ath.cx/irssi/ (des scripts)
  9. http://juerd.nl/site.plp/irssi (docs + scripts)
  10. http://www.netrusk.net/aide.php?action=irssi (encore de la doc)
  11. http://wouter.coekaerts.be/site/irssi/trigger (des scripts)
  12. http://chl.be/glmf/articles.linuxmag-france.org/lm32/irssi.html (doc en français avec exemples de scripts)
  13. http://www.irchelp.org/irchelp/ircprimer.html (toutes les commandes et l'histoire d'IRC)