Ernest

Irssi

Dernière modification : 2014-10-23 08:15:58

Sommaire


Introduction

On ne présente plus l'IRC (Internet Relay Chat) qui permet de dialoguer en direct et plus si affinités. De nombreux clients IRC permettent de profiter de ces fonctionnalités, ils sont attrayants, et existent sur toutes les plate-formes. Alors quels sont les avantages d'un client IRC en mode texte ? Tout d'abord, certains préfèrent le mode texte: slrn plutôt que Knode, Pine plutôt que Sylpheed, VI plutôt que Gedit, etc. Ensuite cela permet d'utiliser son client IRC personnel depuis un poste distant via ssh/telnet. Enfin ca fait plus "root" (heu...). Toutefois, tout cela a un prix : les logiciels en mode texte sont parfois ardus à prendre en mains. Ben ph34r n0t, jeune padawan : Irssi, même ta mamie Josette, elle saurait s'en servir !

[ sommaire ] | [ home ]


La procédure d'installation Irssi

Il existe plusieurs versions d'Irssi (GTK, Gnome) mais nous nous intéressons à la version texte. Des binaires sont disponibles pour la plupart des distributions. Pour l'installer sur Debian, il faut utiliser la commande sudo apt-get install irssi, sur Fedora, c'est sudo yum install irssi et sur Slack, c'est tarball et tais-toi. Non mais je vous rassure, l'installation via les sources ne devrait pas poser de problèmes non plus.

[ sommaire ] | [ home ]


Les commandes de base pour se connecter et dialoguer

Se connecter

Irssi utilisera votre login de connexion à votre machine comme ident (NE LANCEZ PAS Irssi EN TANT QUE ROOT ou vous serez purement et simplement jeté de la plupart des serveurs IRC). Une fois le logiciel lancé, il faut taper des lignes de commandes pour le faire fonctionner (ben oui, c'est le principe des logiciels en mode texte hein). Irssi offre d'énormes possibilités dans la gestion des serveurs et des networks. Prenons donc de bonnes habitudes et préparons le terrain :

On commence par lui apprendre le réseau.


/ircnet add -nick votre_nick Quakenet
/server add [-auto] -ircnet Quakenet irc.quakenet.org 6667

Cette dernière commande ajoute un nouveau serveur appelé irc.quakenet.org (port 6667) au network appelé Quakenet dans la base interne de Irssi. L'option -auto précise si l'on veut se connecter automatiquement à ce serveur au prochain démarrage d'Irssi. Une fois que le serveur est ajouté, vous n'avez plus qu'à taper :


/connect Quakenet

Et Irssi vous connecte au network. Ca a l'air un peu laborieux comme ça, mais nous allons voir par la suite que cette méthode est des plus judicieuses.

Rejoindre un channel

Pour rejoindre le channel #Easyconnect :


/JOIN #Easyconnect 

Voici maintenant la procédure à suivre pour rejoindre automatiquement le channel #Easyconnect dès la connexion au network :


/channel add -auto #Easyconnect Quakenet

Gérer plusieurs channels

En mode texte, il n'y a pas de fenêtre. Mais les programmeurs ont trouvé un système tout aussi sympathique. Chaque channel s'ouvre dans une nouvelle fenêtre virtuelle, dont le numéro est indiqué à côté du nom du channel. Pour naviguer de fenêtre en fenêtre, vous avez 2 possibilités. Soit vous tapez Echap puis le numéro du channel, soit vous vous déplacez d'une fenêtre à l'autre par la combinaison de touches ALT-Flèche Gauche/Droite. C'est un peu déroutant au début, mais on comprend très vite le truc, et vous vous apercevrez vite que vous gagnez un temps fou.

Une session irssi classique
Irssi, un client IRC simple, léger et efficace

[ sommaire ] | [ home ]


Des commandes avancées pour aller plus loin

Sur IRC, on a créé des niveaux d'accès pour chaque utilisateur. On en retiendra 3 principaux :

1 - Les Opérateurs (Ops) : Reconnaissables grâce à un @ apposé à leur nick, ils ont tous les droits sur les users des channels sur lesquels ils sont ops.
2 - Les Voices : Ils ont un + près de leur nick. Ils sont les seuls users à pouvoir parler lorsque le channel est modéré (mode +m, on y reviendra). Le voice est parfois utilisé pour montrer que telle ou telle personne est un pote des ops, mais c'est une déviation de son utilisation principale, qui gêne la gestion d'un channel.
3 - Les Users : C'est l'accès de base. Vous pouvez juste discuter.

Les topics & les modes de channel

Chaque channel possède un topic. C'est une sorte de titre qui reflète en général l'état d'esprit du channel dans lequel vous arrivez. Suivant les channels, n'importe qui peut le mettre à jour, ou parfois uniquement les ops.

La commande pour changer un topic est /topic (si si), par exemple:


/topic Hello world!

Nous disions que certains channels permettent à n'importe qui de changer le topic: cela dépend des droits que les créateurs du channel ont choisi. Ces droits sont déterminés par les "modes" des channels. Voici les principaux :

Option Effet
+m (Moderated) Seuls les ops et les voices peuvent parler sur le channel
+t (Topiclimited) Seuls les ops peuvent mettre à jour le topic
+n (Noextmsg) Quelqu'un qui ne se trouve pas sur le channel ne peut pas y envoyer de message
+p (Private) Channel privé
+s (Secret) Channel secret
+k [pass] Channel protégé par le mot de passe [pass]
+l [nombre] Channel limité à [nombre] personnes
+b L'adresse est bannie du channel
+o devient op sur le channel
+v devient voice sur le channel

Pour voir les modes d'un channel, utilisez la commande suivante:


/mode #nom-du-channel

Pour changer les modes sur un channel, utilisez l'une des commandes suivantes :


/mode #Channel +[mtnpsklbov] [argument1] [argument2] [...]
/mode #Channel -[mtnpsklbov] [argument1] [argument2] [...]

Par exemple imaginons que vous êtes op sur le channel #irssi-lover, un channel qui permet au tout venant de changer le topic. Si vous tapez /mode #irssi-lover voici le genre de réponse que vous obtenez:


21:47 -!- mode/#irssi-lover [+n]
21:47 -!- Channel #irssi-lover created Sun Apr 13 12:56:33 2003

Ce channel est donc libre sauf qu'il n'autorise pas un utilisateur qui ne s'y trouve pas à y envoyer de message : en clair, on reste entre soi :-) Si vous désirez empêcher le tout venant de changer le topic du channel, vous devez donc ajouter le droit "t". Vous faites alors:


/mode +t #irssi-lover

Si ensuite vous listez à nouveau les modes du channel avec /mode #irssi-lover, vous obtenez:


21:51 -!- mode/#irssi-lover [+tn]
21:51 -!- Channel #irssi-lover created Sun Apr 13 12:56:33 2003

Voilà, désormais seuls les modérateurs et les voices peuvent changer le topic. Il est très facile de revenir à l'état précédent avec la commande:


/mode -t #irssi-lover

Bannir / debannir facilement


/kb nick va bannir 'nick' et le kicker
/bans affiche la liste des bans actifs sur le channel en leur attribuant un numéro (1,2,3,etc.)

Pour debannir rapidement il suffit de repérer le numéro du ban qu'on souhaite retirer et de taper /unban X (où X est le numéro du ban).

Logs des conversations

La commande "/set autolog on" active les logs automatiques: tout sera conservé, par défaut dans des fichiers par jour et par channel (ou par nick si vous êtes en dialogue privé). Ces logs sont enregistrés dans ~/irclogs/$tag/$0.log

Pour connaître tous les réglages actuels de l'auto-log sur votre irssi, tapez la commande "/set autolog". Voici un paramétrage par défaut avec autolog activé:


04:55 [log]
04:55 autolog_colors = OFF
04:55 autolog_level = all -crap -clientcrap -ctcps
04:55 autolog = ON
04:55 autolog_path = ~/irclogs/$tag/$0.log

Pour changer l'endroit où sont stockés les fichiers de log, vous pouvez utiliser (par exemple) la commande "/set autolog_path = ~/.irssi/logs/$0.log". Le $0.log est une variable d'Irssi qui va créer des fichiers différents pour les channels et les nicks. Vous pourriez tout centraliser mais ca risquerait d'être un sacré bazar. Désormais, vos fichiers de logs sont dans le répertoire .irssi/logs de votre répertoire home.

Écrire en couleur

Pour écrire en couleur il faut taper CTRL+c (un "C" en vidéo inversée apparaît au début de votre phrase, suivi d'un chiffre (1 pour du noir, 2 pour du bleu, 3 pour du vert etc.) puis votre message.

On peut également faire de la video inversée avec CTRL+v. Et même de la vidéo inversée avec CTRL+v, puis CTRL+c, puis le code couleur, et enfin le message.

[ sommaire ] | [ home ]


Utiliser le DCC

DCC est principalement utilisé pour transférer des fichiers directement d'un utilisateur à un autre. Le DCC peut sembler très compliqué sur un client texte quand on le compare à des logiciels en mode graphique comme Xchat par exemple. Heureusement, irssi peut rendre tout cela (relativement) facile.

Pour commencer, nous allons voir un exemple très simple de transfert de fichier en DCC entre deux correspondants. Le premier est connecté sur un serveur avec le nick korpo. korpo souhaite envoyer un fichier à l'utilisateur y0m qui est également connecté sur ce serveur.

L'envoi du fichier

Pour commencer, korpo se place sur la fenêtre de status d'irssi (avec ESC+1). Puis il tape la commande /dcc list:


/dcc list
23:15 DCC connections

En fait, cette commande n'est pas indispensable: elle permet seulement à korpo de vérifier qu'il n'y a pas de transfert DCC en cours. Aucune réponse après la ligne "DCC connexions" signifie qu'il n'y a aucun transfert.

korpo souhaite envoyer à son ami y0m un exemplaire du plugin Flash pour GNU/Linux, fichier qui se trouve sur son disque dur: /home/korpo/stuff/install_flash_player_6_linux.tar.gz

korpo va amorcer le transfert avec la commande "dcc send":


/dcc send y0m /home/korpo/stuff/install_flash_player_6_linux.tar.gz
23:16 DCC SEND request sent to y0m: install_flash_player_6_linux.tar.gz

La syntaxe de la commande est /dcc send nick fichier

La demande est partie, Irssi le confirme en affichant la ligne "request sent". Si korpo utilise maintenant la commande /dcc list, voilà ce qu'il obtient:


/dcc list
23:16 DCC connections
23:16 y0m SEND: 0k of 682k (0%) - 0.00kB/s - install_flash_player_6_linux.tar.gz

Le transfert est bien amorçé. Mais pour le moment, y0m n'a pas confirmé qu'il acceptait le fichier. Donc le transfert est en attente: "(0%) - 0.00kB/s". Si jamais y0m n'acceptait pas le transfert, Irssi abandonnerait la requête après cinq minutes (par défaut) et afficherait:


23:21 DCC aborted sending file install_flash_player_6_linux.tar.gz for y0m

Dans ce cas, il faudrait recommencer au retour de y0m devant son écran. Mais, dans cet exemple, ce n'est pas le cas et y0m est bien là. Voyons donc un peu ce qui se passe de son coté.

La réception du fichier

Au moment où korpo a amorçé le transfert de fichier, y0m a reçu le message suivant dans sa fenêtre de status:


23:17 DCC SEND from korpo [212.11.38.254 port 1544]: install_flash_player_6_linux.tar.gz [697490 bytes]

Pour amorcer le téléchargement du fichier, y0m tape la commande "/dcc get":


/dcc get
23:16 DCC receiving file install_flash_player_6_linux.tar.gz from korpo [212.11.38.254 port 1521]

Irssi amorce le transfert. Lorsque ce dernier est terminé, voici ce qu'il affiche:


23:16 DCC received file install_flash_player_6_linux.tar.gz [682kB] from korpo in 1 secs [681.14kB/s]

Le fichier est maintenant sauvegardé sur le disque dur de y0m. De son coté, korpo reçoit le message suivant:


23:16 DCC sent file install_flash_player_6_linux.tar.gz [682kB] for korpo in 1 secs [681.14kB/s]

Le ficher est enregistré ici: /repertoire_de_travail/install_flash_player_6_linux.tar.gz

Le répertoire de travail, c'est l'endroit d'où est lancé irssi. Si, par exemple, vous étiez dans /home/toto/docs au moment où vous avez tapé la commande irssi, alors tous les fichiers seraient enregistrés dans /home/toto/docs

Se simplifier la vie avec le DCC

Lorsqu'on reçoit une demande de DCC, on ne le voit que si on regarde la fenêtre de status. Par conséquent, il faut que le correspondant nous prévienne. De même, il faut revenir sur la fenêtre de status pour savoir si le téléchargement est terminé. Fort heureusement, il existe un script (et même plusieurs) qui permettent de savoir en temps réel où en est un transfert DCC.

Commencez par le télécharger. Pour l'installer, enregistrez le simplement dans le repertoire ~/.irssi/scripts/autorun (créez "scripts" et son sous-répertoire "autorun" si besoin). Ensuite tapez dans irssi les commandes suivantes:


/statusbar dccstat add dccstat
/save

Maintenant chargez le script avec la commande:


/script load dccstats.pl

Vous avez maintenant une barre de status supplémentaire. Cette dernière affichera les transferts DCC et leur progression en direct.

[ sommaire ] | [ home ]


Un récapitulatif des commandes utiles

Commande Opération
/nick [nick] Change votre nick
/join #Channel Rejoint le channel #Channel
/part Quitte le channel courant
/me [texte] Parler à la 3ème personne
/msg [nick] [texte] Envoie un message privé à [nick]
/query [nick] Ouvre une fenêtre de discussion privée avec [nick]
/away [Raison] Indique que vous êtes absent. /away seul quitte le mode away
/whois [nick] Affiche des infos à propos de [nick]
/quit [Raison] Vous déconnecte du serveur en cours
/topic #Channnel [texte] Modifie le topic de #Channel
/invite [nick] #Channel Invite [nick] à rejoindre le channel #Channel
/kick #Channel [nick] Expulse [nick] de #Channel
/names Affiche les users du channel courant
/wc Ferme une fenêtre
/bans Affiche la liste des bans actifs et leur numéro
/unban X Retire le ban numéro X (cf /bans)

[ sommaire ] | [ home ]


Les commandes alias

Les alias Irssi fonctionnent comme les alias bash. Ils permettent de définir une commande courte qui va en fait lancer une autre commande plus fastidieuse à saisir. Irssi dispose déjà de nombreux alias prédéfinis. Tapez la commande /alias pour voir les alias existants. Pour créer un autre alias, la commande est simple: il suffit de taper /alias nom-de-la-commande-courte commande-longue-integrale

Voici un exemple pour bien comprendre: lorsqu'on se connecte sur Quakenet, il est possible d'enregistrer son nick pour être oppé sur un channel dès qu'on le rejoint, par exemple. Seul inconvénient, il faut s'identifier auprès d'un robot dès la connexion, afin que celui-ci sache qui vous êtes vraiment. La ligne de commande ressemble alors à celle-ci :


/msg q@cserve.quakenet.org auth Yom MonPassword

Pour éviter d'avoir à taper cette ligne complète à chaque fois, je vais donc me créer un alias.


/alias id msg q@cserve.quakenet.org auth Yom MonPassword

Irssi me répond *** Alias '/ID' added, et dorénavant, je n'aurai plus qu'à taper /ID à chaque connexion pour m'identifier.

[ sommaire ] | [ home ]


Les scripts Irssi

Irssi se scripte directement en langage Perl. Et il réagit aux évènements, ce qui lui procure un potentiel énorme. Ceci dit, je ne vous ferai pas de cours de Perl ici, visitez plutôt cette adresse si vous souhaitez en savoir plus.

Pour installer un script la procédure est très simple:

Dans un premier temps, nous allons chercher parmi les scripts que le site officiel propose sur cette page.

J'ai choisi le script autorejoin.pl qui permet une reconnexion automatique en cas de kick :-) que je telecharge (notez que le .pl indique qu'il s'agit d'un script PERL)

Pour installer le script rien de plus simple: il faut l'enregistrer dans ~/.irssi/scripts/ A noter que chez moi, le .irssi de mon user ne contenait pas de dossier scripts, je l'ai donc créé et j'ai mis le fichier autorejoin.pl à l'intérieur. Vous pouvez maintenant lancer Irssi. Pour lancer le script utilisez la commande suivante:


/script load autojoin.pl

Le script est maintenant chargé et actif. Pour que le script se lance automatiquement, c'est le même principe : on telecharge le script script.pl et on l'enregistre dans (si ce dossier n'existe pas il suffit de le créer.)

[ sommaire ] | [ home ]



Conclusion

En ce qui concerne les logiciels, à commencer par Irssi, LISEZ L'AIDE. Évidemment, pour le scripting, il faut connaître Perl. Je vous recommande tout de même ces quelques commandes :


/help ircnet
/help connect
/help server
/set

Elles devraient beaucoup vous servir pour optimiser votre Irssi.

L'IRC est un monde passionnant, d'une part du point de vue des rencontres que l'on peut y faire, et d'autre part sur un aspect plus technique, grâce aux possibilités qu'offrent aujourd'hui les clients IRC. N'abusez pas trop des scripts, c'est très vite agaçant. Gardez à l'esprit que tout le monde n'a pas systématiquement envie de savoir quel MP3 vous écoutez actuellement, ou pour quelle raison vous êtes absent. Tout comme sur les forums, évitez le flood, ou vous risquez d'être banni. Discutez tranquillement et amusez vous.

Ce document est une version expurgée et tunée du PUISSANT tutoriel IRC de Guillaume B. Merci Yom.

[ sommaire ] | [ home ]