Weechat



Les années passant, plus de 25, pour communiquer j'utilise toujours régulièrement IRC. Je suis forcément passé par de nombreux clients au court de ma « carrière ». Mon préféré et celui que j'utilise toujours est Weechat. Il répond à mes attentes, complètement configurable et se lance dans un terminal.

Je me suis inspiré de cet article et celui-ci pour Spell.

L'article est à jour pour la V4 qui a changé le nom de quelques-unes de ses options.

Compilation

Après avoir téléchargé les sourcesvoici les instructions que j'utilise pour la compilation et son installation

# Prérequis
sudo apt-get install cmake libgcrypt20-dev zlib1g-dev libcurl4-gnutls-dev libncursesw5-dev libgnutls28-dev
# Support ssl/tls
sudo apt-get install libgnutls28-dev
# Support perl
sudo apt-get install libperl-dev
# Support aspell
sudo apt-get install libaspell-dev aspell-en aspell-fr
mkdir build
cd build
cmake ..
make
sudo make install

Quelques commandes de base

# Connexion a un serveur
# ctrl-x pour naviguer entre les serveurs (visiblement uniquement sur la fenêtre de statut)
/server add worldnet irc.worldnet.net
/connect worldnet

# Séparer la fenêtre horizontallement 
# F7/F8 pour naviguer entre les fenêtres
/window splith
# et verticalement
/window splitv

Toute la documentation en français se trouve ici.

Configuration

Il est possible de modifier la configuration en éditant les fichiers se trouvant dans le répertoire ~/.config/weechat. Mais pour ma part je préfère taper les commandes directement dans le client et utiliser la commande /save pour valider.

Par exemple pour se connecter automatiquement à un serveur au démarrage

/set irc.server.quakenet.autoconnect on
/set irc.server.quakenet.autojoin on

Où comme moi, se connecter à mon bouncer ZNC.

/server add worldnet <url>/9996 -username=king/worldnet -password=******** -autoconnect

Et pour désactiver le tls (ce qui n'est pas conseillé).

/set irc.server.worldnet.tls off

Un peu d'esthétisme

De base le client n'est pas très aguicheur. Voici la configuration que j'ai utilisée pour l'embellir un peu, du moins à mes yeux.

/set weechat.look.prefix_suffix "│"
/set weechat.look.read_marker_string "─"
/set weechat.look.separator_horizontal "—"
/set weechat.bar.title.color_bg 0
/set weechat.bar.status.color_bg 0
/set weechat.color.chat_nick_colors "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue,31,35,38,40,49,63,70,80,92,99,112,126,130,138,142,148,160,162,167,169,174,176,178,184,186,210,212,215,247"
/set weechat.color.chat_delimiters 29
/set weechat.color.chat_host 24
/set weechat.color.chat_prefix_suffix 24
/set weechat.color.nicklist_away 244
/set weechat.color.separator 60
/set irc.color.reason_quit  244
/set irc.color.topic_new  36
/set irc.color.topic_old 244

/bar hide title
/key bind meta-n /bar toggle nicklist
/set weechat.look.buffer_time_format "${color:252}%H${color:245}:%M${color:240}:%S"
/set weechat.look.eat_newline_glitch on

Pour voir la liste des couleurs /color.

Pour la barre de statut

/set weechat.bar.status*
/set weechat.bar.status.color_bg 60
/set weechat.bar.status.items "[time],buffer_name+(buffer_modes),[lag],[hotlist],completion"

Et la liste des buffers

/set weechat.bar.buffers*
/script install buffers.pl
/set weechat.bar.buflist.position top
/set buflist.format.buffer = ""${indent}${format_nick_prefix}${color_hotlist}${format_name}
/set buflist.format.buffer_current = "${color:,15}${format_buffer}"

/save
/layout store

Cacher les joins/parts des utilisateurs qui n'ont pas parlé depuis 5 minutes (désactivable avec ctrl-=)

/set irc.look.smart_filter on
/filter add irc_smart * irc_smart_filter *

Fusionner les buffers des différents serveur pour gagner de la place (ctrl-x permet de naviguer de l'un à l'autre)

/set buffers.look.hide_merged_buffers server

Scripts

Weechat permet d'utiliser des scripts pour certaines choses. La liste est accessible avec la commande /script. Pour installer un script, se positionner dessus et faire alt-i ou alt-u pour le désinstaller.

Pensez à sauvegarder : /save

Spell

Weechat offre un correcteur orthographique intégré. Pour l'activer et le configurer, voici les commandes nécessaires

/spell enable
/set spell.check.default_dict fr
/set spell.check.suggestions 3
/set weechat.bar.status.items "[time],buffer_name+(buffer_modes),[lag],hotlist],completion,[spell_suggest]" 

Pour choisir parmi les suggestions j'ai installé un plugin

/script install menu.pl
/script install spell_menu.pl 
# Pour cacher le menu qui s'affiche à cause de la dépendence 
/set plugins.var.perl.menu.main_menu_hidden on

Sur un mot en erreur, appuyer sur Tab permet de choisir une des options en appuyant sur 1, 2 ou 3 et valider avec Enter