Ceci est une ancienne révision du document !
Irssi
Irssi est un client IRC de type CLI. C'est une alternative à Xchat, Konversation, Weechat et à BitchX. Le nom Irssi vient de l'argot finnois « Irssi » signifiant IRC.
Installation
Configuration
Comme la plupart des applications sous Linux Irssi se configure via l'édition d'un fichier texte.
~/.irssi/config
.
Utilisation
Irssi se lance dans un terminal, via la commande :
irssi
La fenêtre se compose de trois parties :
- Tout au dessus : Le sujet de la salle de discussion où vous vous trouvez actuellement.
- L'écran de dialogue proprement dit.
- La barre de statut, tout en bas 1).
Configuration de Irssi
Le fichier de configuration2) | Les explications | Les commandes équivalentes3) |
---|---|---|
Inexistant. | Se connecter à son premier serveur IRC. | /connect irc.votreserveur.tld
|
Inexistant. | Se connecter à un autre serveur 4). Note: une fois que vous êtes connecté à plusieurs serveurs, vous pouvez passer de l'un à l'autre en revenant sur la fenêtre « status » et en appuyant sur CTRL+X. | /connect irc.autreserveur.tld
|
"fe-common/core" = { theme = "fear2.theme"; term_charset = "UTF-8"; autolog = "yes"; completion_strict = "yes"; }; | Utiliser le charset utf-8. | /set term_charset utf-8 |
settings = { core = { real_name = "pseudo"; user_name = "pseudo"; nick = "pseudo"; timestamp_format = "%D %H:%M:%S"; server_reconnect_time = "1min"; | Attribuer un pseudonyme sur lequel vous serez connu sur le canal. | /nick votre_pseudonyme
|
Inexistant. | Se connecter au canal #ubuntu-fr. | /join #ubuntu-fr |
channels = ( { name = "#ubuntu-fr"; chatnet = "freenode"; autojoin = "Yes"; } ); | Joindre le canal IRC #ubuntu-fr de manière automatique, sous le chatnet freenode. | /channel add -auto #ubuntu-fr freenode |
Inexistant. | Quitter irssi. | /quit
|
servers = ( { address = "irc.freenode.org"; chatnet = "freenode"; port = "6667"; autoconnect = "yes"; term_type = "utf-8"; } ); | Se connecter automatiquement au round-robin : irc.freenode.org sans SSL sur le port 6667. | /server add -auto -network freenode -port 6667 irc.freenode.org |
servers = ( { address = "irc.freenode.org"; chatnet = "freenode"; port = "7000"; use_ssl = "yes"; ssl_verify = "yes"; ssl_capath = "/etc/ssl/certs"; autoconnect = "yes"; term_type = "utf-8"; } ); | Se connecter automatiquement au round-robin : irc.freenode.org | /server add -auto -ssl_verify -ssl_capath /etc/ssl/certs -ssl -network freenode irc.freenode.net 7000 |
servers = ( { address = "irc.freenode.org"; chatnet = "freenode"; port = "7000"; use_ssl = "yes"; ssl_verify = "yes"; ssl_capath = "/etc/ssl/certs"; autoconnect = "yes"; term_type = "utf-8"; } ); Freenode = { type = "IRC"; max_kicks = "1"; max_msgs = "4"; max_whois = "1"; sasl_mechanism = "plain"; sasl_username = "username"; sasl_password = "password_en_clair"; }; | Se connecter automatiquement au round-robin : irc.freenode.org | /server add -auto -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network freenode -port 7000 irc.freenode.net et /network add -sasl_mechanism plain -sasl_username <username> -sasl_password <password> freenode |
freenode = { type = "IRC"; nick = "pseudonyme"; user_name= "nom_d'utilisateur_à_afficher"; real_name = "nom_réel_à_afficher"; autosendcmd = "/msg NickServ identify password;wait 8000" }; }; | Configuration du pseudonyme souhaité et permettre l'identification de son pseudonyme enregistré auprès de NickServ, et patienter un laps de temps. L'option wait 8000 permet d'attendre un laps de temps après l'identification auprès de NickServ avant de joindre un canal IRC. Ceci est pratique pour ne pas divulguer son adresse Internet, pour un utilisateur ayant un cloak sous Freenode, et ayant un canal IRC ou des canaux, en auto-join. Il existe aussi le script cap_sasl_fail.pl qui va vous permettre de vous déconnecter, si vous êtes pas identifié auprès de NickServ sous Freenode. Nous verrons pas ici comment configurer cap_sasl_fail.pl. | /network add -nick "pseudonyme" -user "nom_d_utilisateur_à_afficher" -realname "nom_réel_à_afficher" -autosendcmd "/msg NickServ IDENTIFY password ;wait 8000" freenode |
Inexistant. | Afficher le 'Topic' (sujet de la salle où vous vous trouvez). | /topic
|
Inexistant. | Affiche les noms des personnes dans la salle 6). | /names
|
Inexistant. | Parler en privé à un utilisateur. | /msg nom_d_utilisateur message
|
Inexistant. | Se déplacer dans les différentes fenêtres. | CTRL P : pour Previous, précédent CTRL N : pour Next, suivant ALT x : où x est le numéro de la fenêtre que vous voulez afficher7). |
Inexistant. | Passer en 'non disponible' (away)8). | /away [raison] |
Inexistant | Redevenir 'disponible'. | /back
|
Inexistant. | Permet de voir si la machine d'un utilisateur est connectée au serveur, par exemple celui de irc.freenode.org, et de voir son temps de réponse. | /ping |
Inexistant. | Permet d'obtenir des renseignements sur x utilisateurs. | /whois |
Inexistant. | Permet de contacter une personne en privé. | /query
|
Inexistant. | Affiche la liste des channels de l'ircnet sélectionné. | /list
|
Inexistant. | Affiche la liste des gens présents sur #debian. | /who #debian |
Inexistant. | Met en couleur le nick de la personne qui prononce le mot. | /hilight mot
|
Inexistant. | Liste les fichiers disponibles par dcc. | /dcc list
|
Inexistant. | Récupère un fichier envoyé par dcc. | /dcc get nick
|
Inexistant. | Envoyer un fichier par dcc. | /dcc send nick nom_du_fichier
|
Inexistant. | Avoir la liste des commandes. | /help |
Inexistant. | Avoir de l'aide sur une commande particulière. | /help nom_de_la_commande |
Inexistant. | Exécuter des commandes automatiquement au démarrage de irssi. Il vous suffit ensuite de copier les commandes en question dans le fichier startup9). | Dans un terminal:touch ~/.irssi/startup |
settings = { core = { real_name = "pseudo"; user_name = "pseudo"; nick = "pseudo"; proxy_address = "1.2.3.4"; proxy_port = "4242"; use_proxy = "yes"; }; | Utiliser un proxy SOCKS. | /set proxy_address <Proxy host address> ensuite, /set proxy_port <port> ensuite, /set use_proxy ON |
settings = { core = { real_name = "pseudo"; user_name = "pseudo"; nick = "pseudo"; use_proxy = "yes"; proxy_address = "1.2.3.4"; proxy_port = "4242"; proxy_string = "CONNECT %s:%d HTTP/1.0\012\012"; proxy_string_after = "conn %s %d"; }; | Utiliser Irssi derrière un proxy HTTP. | /set use_proxy ON /set proxy_address <Proxy host address> /set proxy_port <Proxy port> /set -clear proxy_string /set proxy_string_after conn %s %d /eval set proxy_string CONNECT %s:%d HTTP/1.0\n\n |
Inexistant. | Lancer des scripts au démarrage de votre Irssi. Dans notre exemple, le script portant le nom script1.pl et script2.pl s'exécuteront à chaque lancement de votre client Irssi. | Dans un terminal :mkdir ~/.irssi/scripts/autorun/ && ln -s ~/.irssi/scripts/script1.pl ~/.irssi/scripts/autorun/ && ln -s ~/.irssi/scripts/script2.pl ~/.irssi/scripts/autorun/ |
settings = { core = { real_name = "pseudo"; user_name = "pseudo"; nick = "pseudo"; }; "fe-text" = { actlist_sort = "refnum"; }; "fe-common/core" = { beep_when_window_active = "yes"; beep_when_away = "yes"; beep_msg_level = "HILIGHT MSGS DCC DCCMSGS"; }; }; hilights = ( { text = "ton_nick"; nick = "yes"; word = "no"; } ); | Avoir le bip système sur son pseudonyme. | /set beep_when_window_active on /set beep_when_away on /set bell_beeps on /set beep_msg_level HILIGHT MSGS DCC DCCMSGS /hilight ton_nick
|
ignores = ( { level = "PARTS QUITS"; channels = ( "#nom_channel1", "#nom_du_channel2" ); } ); | Ignorer les déconnexions intempestives sur votre client Irssi. | /ignore -channels #nom_channel1,#nom_du_channel2 * PARTS QUITS |
ignores = ( { level = "JOINS"; channels = ( "#nom_channel1", "#nom_channel2" ); } ); | Ignorer l'affichage des utilisateurs qui se connectent sur le channel. | /ignore -channels #nom_channel1,#nom_channel2 * JOINS |
ignores = ( { level = "JOINS PARTS QUITS"; channels = ( "#nom_channel1", "#nom_channel2" ); } ); | Ignorer l'affichage des connexions, et des déconnexions des utilisateurs. | /ignore -channels #nom_channel1,#nom_channel2 * JOINS PARTS QUITS |
ignores = ( { level = "ACTIONS"; pattern = "is (away|gone|back)"; regexp = "yes"; } ); | Ignorer les messages d'absence public. | /ignore -regexp -pattern "is (away|gone|back)" * ACTIONS |
Thèmes et couleurs
Le thème par défaut de Irssi ne concorde pas du tout avec le thème de gnome-terminal : il est prévu pour un terminal sur fond noir. En particulier, le pseudo utilisateur est en gras blanc sur blanc, et les notifications en gras jaune sur blanc.
Pour y remédier, on peut simplement remplacer ces couleurs dans le thème par défaut. Par exemple, y remplacer toutes les occurrences de %W (blanc gras) par %B (bleu gras) et de %Y (jaune gras) par %R (rouge gras).
Veuillez lancer un terminal avec pour contenu :
cp /usr/share/irssi/themes/default.theme /usr/share/irssi/themes/default.theme.bak sed -i 's/%W/%B/g' /usr/share/irssi/themes/default.theme sed -i 's/%Y/%R/g' /usr/share/irssi/themes/default.theme
Pour prendre en compte les changements, il faut soit charger un autre thème puis recharger le thème par défaut, soit relancer irssi.
On peut également installer un nouveau thème, en copiant dans le répertoire :
$HOME/.irssi
un fichier *.theme téléchargé par exemple ici.
Pour charger le nouveau thème, il suffit d'utiliser dans irssi la commande :
/set theme nomduthème
Pour revenir au thème par défaut :
/set theme default
Enfin, la méthode la plus radicale consiste à désactiver les couleurs :
/set colors off
Plugins
Irssi-proxy
Irssi + screen est un duo redoutable, mais pas toujours efficace si vous êtes très loin du serveur (lag lorsque vous tapez) ou que vous voulez utiliser un autre client IRC.
C'est là qu'intervient le plugin proxy de Irssi.
Veuillez lancer votre client Irssi avec pour contenu :
/load proxy
Va charger le module de proxy.
Attention : il n'y a pas encore de mot de passe donc mettez-en un en place :
/set irssiproxy_password votre_mot_de_passe
Il peut être différent de votre mot de passe Freenode (et c'est même conseillé – c'est juste pour vous connecter au proxy).
Ensuite vous devez définir un port sur lequel vous connecterez votre client IRC:
/set irssiproxy_ports freenode=XXXX
où XXXX est un nombre pour le port TCP (assurez-vous que ce port est accessible de l'extérieur, i.e. qu'il n'est pas bloqué par un pare-feu).
Irssi-OTR (chiffrement)
Chiffrer vos conversations avec Irssi-OTR.
Irssi over Tor (Freenode)
Pré-requis
- Avoir un pseudonyme enregistré auprès de Freenode.
sudo systemctl stop tor.service
Modification du fichier torrc et génération du certificat et ajout fingerprint pseudonyme Freenode
Veuillez maintenant éditer le fichier /etc/tor/torrc et y ajouter à la fin :
# For Freenode IRC
mapaddress 10.8.0.9 freenodeok2gncmy.onion
ExitNodes FINGERPRINT_RELAY_TOR/OU NOM ## Récupérer votre/vos fingerprint(s)/nom(s) de votre/vos nœud(s) Tor ici -> https://metrics.torproject.org/rs.html#toprelays mapaddress 10.8.0.9 freenodeok2gncmy.onion AutomapHostsSuffixes .exit,.onion StrictExitNodes 1
Veuillez sauvegarder vos modifications, et nous relançons votre daemon tor. Veuillez ouvrir un terminal avec pour contenu :
sudo systemctl start tor.service
Nous devons ensuite générer un certificat client pour Freenode, veuillez saisir dans votre terminal :
openssl req -x509 -sha256 -new -newkey rsa:4096 -days 700 -nodes -out FreenodeTor.pem -keyout FreenodeTor.pem
Nous créons ensuite un dossier certs dans votre sous-dossier .irssi et nous allons transférer votre certificat FreenodeTor.pem fraîchement généré dans le dossier certs. Veuillez saisir dans votre terminal :
mkdir /home/$USER/.irssi/certs && mv *.pem /home/$USER/.irssi/certs
Il nous faut ensuite extraire l'empreinte SHA-1 de votre certificat FreenodeTor.pem. Pour se faire, veuillez saisir dans un terminal la commande suivante :
openssl x509 -in ~/.irssi/certs/FreenodeTor.pem -outform der | sha1sum -b | cut -d' ' -f1
Veuillez copier votre fingerprint de votre certificat FreenodeTor.pem, et ensuite veuillez ouvrir votre client Irssi, et y saisir :
/connect irc.freenode.org
/nick <votre_pseudonyme_enregistré_auprès_de_freenode>
/msg nickserv identify <votre_mot_de_passe>
/msg nickserv CERT ADD <votre_fingerprint>
Configurons maintenant votre client Irssi, pour utiliser Tor .
Configuration de votre pseudonyme avec SASL
Veuillez démarrer votre client Irssi et y insérer :
/network add -sasl_username <votre_pseudonyme_freenode> -sasl_password <votre_mot_de_passe> -sasl_mechanism EXTERNAL FreenodeTor
Ajout du réseau Tor à votre client Irssi
Dans votre client Irssi y insérer :
/server add -auto -ssl -ssl_cert ~/.irssi/certs/FreenodeTor.pem -net FreenodeTor 10.8.0.9 7000
Nous ignorons les requêtes de type CTCP pour ne pas divulguer votre IP originale :
/ignore * CTCPS
/save
/quit
Lancement de Irssi avec Torify
Dans un terminal, veuillez saisir la commande :
torify irssi 2> /dev/null
Vous voilà sous Freenode à travers le réseau Tor .
Xirssi
Si vous suivez ce tutoriel, vous connaissez le client IRC en CLI Irssi, ici, vous allez voir comment avoir Irssi mais en version GTK, pour se faire on va devoir compiler Irssi et Xirssi.
Compilation de Irssi
Veuillez ouvrir un terminal avec les commandes suivantes :
sudo apt-get build-dep irssi
wget http://www.irssi.org/files/irssi-0.8.17.tar.gz
tar -xzvf irssi-0.8.17.tar.gz && cd irssi-0.8.17
./configure --with-perl --with-glib2 ## L'option --with-glib2 n'est plus disponible, mais ce fut le cas à l'époque. make sudo make install
Nous vérifions votre version de Irssi via la commande suivante :
irssi --version
Et on obtient ceci :
irssi 0.8.17 (20141011 1044)
Votre Irssi est compilé, au tour de Xirssi.
Compilation de Xirssi
Veuillez ouvrir un terminal avec les commandes suivantes :
sudo apt-get install subversion svn co http://svn.irssi.org:8080/repos/xirssi/trunk/ xirssi
cd xirssi ./autogen.sh ./configure --with-irssi=/patch/irssi make sudo make install
Si tout est ok, vous devriez avoir votre binaire Xirssi :
Aller plus loin
Il y a beaucoup de commandes disponibles pour IRC, encore quelques unes sur le site de Wikipedia14).
- Lire la doc officielle, en anglais : http://www.irssi.org/documentation.
- Si vous voulez utiliser de manière plus efficace Irssi vous pouvez changer les raccourcis claviers pour les principales commandes (toujours dans ~/.irssi/config).
- Vous pouvez utiliser un script, des tonnes ici : https://scripts.irssi.org/ Les scripts
adv_windowlist
,nickolor
, eturlgrab
sont particulièrement utiles. - Vous pouvez écrire votre propre script en Perl et le diffuser : http://juerd.nl/site.plp/irssiscripttut.
Liens
Contributeurs : Rédigée par Ju, refonte de l'intégralité de la documentation par BeAvEr depuis 2010.