Screen + Irssi

Kezako

C'est une solution pour accéder à l'IRC depuis n'importe où avec en prime une conservation de ce qui a été dit pendant votre absence (le temps de quitter le stage pour rentrer par exemple). Imaginez la situation: vous êtes en stage, vous discutez entre amis sur IRC et d'un coup: coupure d'électricité pile au moment où vous avez posé une question supra utile (cmb). Le courant revient 10 minutes plus tard, vous ne savez pas si la réponse a été fournie ou pas: ça fout les boules et ça vous oblige à reposer la même question… pas cool. Avec screen + irssi, tout est ok! Vous pourrez remonter dans ce qui s'est dit depuis votre départ.

Screen

Il s'agit d'un programme qui, une fois lancé, vous permet d'ouvrir et de gérer plusieurs terminaux sur une seule et même console. Un de ses avantages est que même une fois détaché (on parle d'attachement et de détachement de terminaux), les applications lancées dans ces terminaux continuent de tourner. C'est très pratique dans notre affaire car vous désirez continuer à récupérer les messages des autres personnes sur IRC pendant votre absence afin de les récupérer plus tard.

Irssi

C'est un client IRC en mode console. Il permet donc de se connecter au serveur IRC des élèves (irc.iiens.net) et de parler avec les gens. Ce qui est intéressant, c'est qu'il peut être lancé dans un screen !

Par ailleurs, Irssi permet même de gérer plusieurs serveurs IRC : Gérer vos serveurs irssi

Installation

Screen et irssi sont déjà installé sur perso.iiens.net, donc vous n'avez besoin que d'un terminal et de openssh sur votre poste ! Une configuration par défaut est fournit, permettant pour irssi de se connecter automatiquement au serveur irc. Si vous souhaitez utiliser un ordi à vous pour screener, il suffit d'installer screen et irssi qui sont dans l'arbre officiel de la plupart des distribs.

Utilisation

Pour se servir de Screen+Irssi, il faut un shell donc plusieurs méthodes:

  • Sous windows, on utilise PuTTY pour se connecter sur perso.iiens.net et accéder au shell
  • Sous un autre OS, démerdez vous pour avoir un shell pour lancer

ssh loginArise@perso.iiens.net Bien entendu, cela implique d'avoir openssh-client d'installé.

Ensuite, Deux possibilités:

  • Vous désirez récupérer la session et continuer à tchatter : (si ca ne fonctionne pas, cf. plus bas :p)
[user@machine ~] screen -rD
  • Vous n'avez pas déjà initialisé le screen + irssi :
[user@machine ~] screen irssi 

Une fois que vous êtes dans l'interface d'irssi, c'est gagné, vous pouvez jouer avec. Le seul truc qu'il faut que vous reteniez est que quand vous désirez partir volontairement, faut faire un “CTRL+a d” et pas quitter irssi avec un /quit (sinon vous quittez l'application irssi et vous ne pouvez plus récupérer les messages… logique!)

Screen

L'idée est donc de faire tourner un client IRC en mode console (irssi par exemple) dans un terminal géré par screen, le tout lancé sur un serveur qui normalement n'est jamais éteint 🙂 (perso.iiens.net par exemple, et pas lunix comme certains le pensent).

Voici quelques commandes de bases :

Pour lancer un screen, il suffit de faire

screen

ou si on veut lui donner un petit nom

screen -S petitnom

Et si on veut directement lancer irssi on fait :

screen irssi

Quand on ne veut plus parler sur irc car il est l'heure du départ, on appuie sur les touches

CTRL+a d

(CTRL est maintenu appuyé pour la pression de 'a', on lache tout et ensuite on tape 'd') Cela aura pour but de passer le terminal en mode “géré mais pas visible”.

Quand on voudra reprendre ce terminal, on lancera

screen -rD

à la place de

screen irssi

Et oui: la deuxieme commande demande l'ouverture d'un autre terminal dans lequel on lancera également irssi donc vous aurez 2 sessions d'ouvertes, ca pollue et c'est pas bien :p

Le screen -rD a pour but de reprendre la session de screen lancée précédemment. Si jamais vous en avez lancé plusieurs car vous avez tapé trop de fois le screen irssi, vous devez préciser le numéro du screen que vous souhaitez reprendre (il vous est fourni par la commande screen -ls)

Bon, ça c'est facile, maintenant, on va pousser un peu plus pour comprendre la puissance du screen :

Voici quelques commandes utiles :

Profitons du fait que screen sache gérer plusieurs terminaux virtuels pour en avoir plein. Pour créer un terminal

CTRL+a c

Pour passer au terminal suivant

CTRL+a n

Pour passer au précédent

CTRL+a p

Pour voir la liste des terminaux

CTRL+a "

Ensuite, qd on fait un gros cat par exemple, ou que l'on veut revenir en arrière, on remarque que l'on scroll sur l'historique du terminal lancé sur le client. Cela peut faire du caca, surtout qd on joue avec plusieurs terminaux virtuels dans screen. Pour palier cela, il y a le mode copy :

CTRL+a escape

Qui permet ensuite avec pageup/pagedown de naviguer dans l'historique. escape pour en sortir.

Screen dans un screen

Bon, et pour les plus intéressés, on peut lancer un screen dans un screen, cas typique : Vous vous connectez sur hulk:443 car vous êtes derrière un parefeu contraignant. Vous avez votre screen avec irssi dedans et vous voulez vous connecter à votre machine à vous pour y récupérer un screen sur lequel vous faites des trucs.

Ainsi, vous vous connectez en ssh sur votre machine et vous faites, en étant dans le screen sur hulk, un screen. Pour naviguer dans le screen sur votre machine, c'est pareil, sauf qu'il faut rajouter un a entre chaque commande. donc pour ajouter un terminal virtuel dans le screen de votre screen :

CTRL+a a c

Pour passer au terminal virtuel suivant dans le screen de votre screen :

CTRL+a a n

Et ainsi de suite.

Irssi

Irssi est un client irc comme un autre, ainsi, ce que vous trouverez dans ce paragraphe sera valable pour la plupart des clients irc.

On suppose que vous êtes déjà connecté sur le serveur irc.

Les bases

Toutes les commandes commencent par '/', ensuite, il arrive que des appels aux bots présents sur les chans (comme marvin) commence par ' ou par !, cela est fait pour intérargir avec le bot, et n'affecte pas vos paramètres.

Pour changer son pseudo, ou nick on fait

/nick TonNick

Ainsi, si on veut s'appeler 'Dante' on fait

/nick Dante

Pour join un channel, c'est à dire, aller sur un salon où des gens discutent :

/join #ragot

Et là, on se retrouve sur ragot. Et si le chan a un mot de passe:

/join #chansecret motdepasse

Ainsi, on peut parler avec des gens, et on peut, si on le souhaite, parler à quelqu'un en privé. Pour parler avec Josay en privé :

/query Josay

ou avec TiffTiff :

/query TiffTiff

Remarquez que rejoindre un chan ou parler en privé ouvre une nouvelle fenêtre dans irssi. Ainsi, la partie sur les fenêtres :

Les fenêtres

Pour aller à la fenêtre suivante :

CTRL+n ou ALT+flechedroite

fenêtre précédente :

CTRL+p ou ALT+flechegauche

pour fermer la fenêtre :

/window close

ou, si cela a été configuré

/wc

pour aller à la fenêtre numéro N

/window N

pour déplacer la fenetre courante à l'emplacement N

/window move N

Register

Register est une action qui permet d'enregistrer son nick sur le serveur. Ainsi, personne peut vous subtiliser votre nick mais aussi, si vous êtes op sur un chan, lorsque vous irez sur ce chan, vous serez automatique op. Et cela permet d'enregistrer les chans que vous créez.

Pour register votre nick, il faut faire :

/quote nickserv REGISTER password [email]

Ainsi, cela enregistrant votre pseudo actuel avec le mot de passe password, et si vous le souhaitez, votre email. Ensuite, pour vous identifier et ne pas devenir un poiral, faites :

/quote nickserv IDENTIFY password

En utilisant le même mot de passe que le celui utilisé pour register. Cela confirmera que vous êtes bien le propiétaire du nick que vous avez

Aide

Il y a une aide en ligne, faites simplement

/help

Et suivez les instructions qui se trouveront sur le chan 'iie', chan du serveur.

Les problèmes récurrents

Plusieurs screens simultanés

Il arrive parfois de se retrouver avec plusieurs screens en même temps. La commande screen -ls permet de voir les screens qui sont actuellement sauvés.

[user@machine ~]$ screen -ls
There are screens on:
      94226.irc       (Attached)
      94262.devel     (Detached)
2 Sockets in /tmp/screens/S-user

Cela veut dire que j'ai 2 screens (un que j'ai appelé “irc” et l'autre “devel” allez savoir pourquoi…), le Detached c'est qu'il n'est pour le moment pas affiché mais il tourne toujours (cool je suis pas obligé de quitter mon code pour me déconnecter!!). Le (Attached) signifie donc que ce screen est utilisé en ce moment. Dans l'exemple, je suis dans le screen dans lequel je fais tourner IRC mais dans une fenêtre autre (la 2eme par exemple :p).

Pour rejoindre un screen qui est Detached, il suffit de lancer

[user@machine ~]$ screen -rD devel #à adapter en fonction du screen que vous désirez rejoindre

Si par malheur, vous n'avez pas nommé vos screen, vous pouvez revenir dessus en indiquant le pid à la place du nom

[user@machine ~]$ screen -rD 94262

(z'avez vu la ressemblance troublante entre les nombres fournis et le résultat de screen -ls… dingue!)

Cette commande va vous faire rejoindre le screen devel. Si jamais vous voulez nettoyer les screens pour avoir une configuration “propre”, il vous suffira de faire des

[user@machine ~]$ kill -9 94262 94226

Une solution alternative est de rejoindre les différents screens l'un après l'autre afin de les quitter proprement.

Si jamais le screen -ls renvoie un truc comme :

There are screens on:
      94226.irc       (Dead ???)

C'est qu'il y a eu un petit souci Pour les nettoyer (car ils ne sont plus accessibles mais ont tout de même un processus qui tourne), on fait un

[user@machine ~]$ screen -wipe

Ensuite on peut les recréer tranquillement.

Fichier de configuration

Il est déjà arrivé plusieurs fois (en installant un thème par exemple), que le fichier de configuration qui va bien (fourni par Arise) ait été écrasé et que la configuration pour se connecter au serveur irc d'Arise ne soit plus dans le ficher de config. Il est possible de le récupérer en le copiant comme suit (attention le fichier sur votre home sera écrasé) :

  cp /etc/skel/.irssi/config ~/.irssi/config

Si vous ne voulez pas perdre les données de votre fichier de config, il faudra modifier le votre afin d'y ajouter les réglages qui vont bien.

Réglages de Charset

Sur Windows avec PuTTY

Voici ce qu'il faut faire si vous avez des problèmes de charset.

Dans la config de PuTTY, Window → Translation, sélectionnez UTF-8 dans le menu. Attention, si vous avez des sessions enregistrées, il faut d'abord charger la session, modifier le paramètre ci-dessus et ensuite sauvegarder la session.

Luit [deprecated]

Le charset par défaut sur IRC est maintenant utf-8, cette section devient par conséquent obsolète Luit, c'est quoi, une nouvelle ampoule ?

luit est un petit utilitaire sous *nix permettant de régler les différents problèmes d'encodage. Le cas typique :

  • Vous avez une distri linux sur votre pc du genre ubuntu dont l'encodage système est utf-8 par défaut; ou vous avez mis votre gentoo en utf-8 juste pour le fun.
  • Vous avez votre screen sur un serveur freebsd dont l'encodage est iso8859-15 (Western european).
  • Les gens vous gueulent des “ 'charset tanche !” “ptain, je comprends pas s'que tu dis”
  • Vous ne trainez pas sur des chans tels que #mangas, #jdr ou autre

Il existe diverses solutions : un paramétrage fin de irssi (mais le buffer posera tjrs problème) ou l'utilisation du script irssi charwar.pl (je suis pas sûr du nom). La plus courante reste luit.

Alors, non, il ne s'agit pas du nom d'une luciole, mais d'un utilitaire x11 permettant l'encodage à la volée.

Pour l'installer :

sudo make me a sandwich

ah non pardon, c'est :

sudo apt-get install luit

ou

emerge x11-apps/luit

ou

"Mettre ici la commande d'install de ta distri" luit

ensuite, pour se connecter à perso ou hulk, il suffit de faire :

luit -encoding iso8859-15 ssh LoginArise@perso.iiens.net

ou

luit -encoding iso8859-15 ssh -p 443 LoginArise@hulk.iiens.net

Lorsqu'on est derrière un parefeu pas gentil.

Après, il ne devrait pas avoir de souci avec la config par défaut, celle où il n'y a pas de valeurs précisées pour les variables recode

Maintenant, tu peux arrêter de te faire chier et aller sur irc 😃.