Poezio est un logiciel du dépôt Fedora. Il est disponible pour tous les utilisateurs de Fedora Linux 35 qui souhaitent utiliser la messagerie instantannée XMPP. J'utilise tous les jours ce protocole de messagerie instantannée, et j'avais envie de vous partager mon expérience avec un client en console.

Poezio n'est pas installé par défaut, il faut le récupérer dans le dépôt :

dnf install poezio poezio-doc poezio-omemo

Le paquet "poezio" contient le client XMPP, et le paquet "poezio-omemo" contient le plugin OMEMO pour le client.

Pour lancer le logiciel, il suffit de taper la commande en utilisateur simple :

$ poezio

On peut le lancer dans un multiplexeur de terminal comme screen ou tmux. On peut aussi le lancer dans une session en init 3 (multi-user.target).

On peut également le lancer dans un container docker/podman, mais ce n'est pas le sujet de cet article.

Configuration : la méthode smooth

Il est possible de configurer le client à chaud, en tapant des commandes pendant qu'il fonctionne, ou bien à froid, en modifiant directement le fichier de configuration.

Pour modifier un paramètre pendant le fonctionnement, il faut taper la commande /set dans Poezio.

Les commandes de configuration suivantes permettent de se connecter à son compte XMPP :

/set jid <mon_compte@domaine.tld>
/set password <mot_de_passe>
/set default_nick <Pseudo>
/set ca_cert_path /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
/connect

Une ligne de confirmation apparait pour chacune des commandes fournies. Une fois le client configuré et connecté, Poezio va sauvegarder la config pour le prochain démarrage.

Configuration : la méthode hardcore

Pour faire une configuration plus avancée, je recommande de passer directement par le fichier de configuration. Le fichier est au format INI, et il est vraiment facile à lire.

Si Poezio est lancé pour la première fois, le fichier de configuration par défaut est créé dans le répertoire ~/.config/poezio/. Il est recommandé de ne pas modifier ce fichier pendant l'exécution de Poezio.

Toutes les options sont concentrées dans un seul et unique fichier :

~/.config/poezio/poezio.cfg

Pour activer le support de OMEMO, il faut modifier le paramètre "plugins_autoload" de la manière suivante :

plugins_autoload = omemo

Chemins vers les plugins :

plugins_dir = /usr/lib64/python3.9/site-packages/poezio_plugins
plugins_conf_dir = /home/USER/.config/poezio/plugins

Réglage des timeouts :

connection_check_interval = 60
connection_timeout_delay = 300
whitespace_interval = 180

Une note au sujet du SSL/TLS

Il est fortement recommandé de configurer l'option ca_cert_path. Cette option n'est pas configurée par défaut.

Lancer la commande dans Poezio :

/set ca_cert_path /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt

Ou bien modifier le fichier de config :

ca_cert_path = /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt

Au démarrage, le client vérifie l'empreinte du certificat du serveur, et vérifie si l'empreinte n'a pas changé depuis la dernière connexion au serveur. Il est possible de désactiver cette fonctionnalité :

ignore_certificate = True

Avec ce paramètre, Poezio ne va plus demander à l'utilisateur de valider l'empreinte du certificat, mais va vérifier le certificat avec la base des certificats du système (avec l'option "ca_cert_path").

Référence : TLS in poezio

Comment vérifier sa config

Poezio fourni une commande très utile pour comparer son fichier de configuration avec les valeurs par défaut.

$ poezio -c

Cette commande ne lance pas le client, mais affiche toutes les différences avec la configuration par défaut, ce qui permet de retrouver facilement une erreur dans le fichier de config.

Les raccourcis clavier

Pour naviguer :

Touche Fonction
F5 onglet précédent
F6 onglet suivant
Echap puis un chiffre va sur l'onglet correspondant
Alt-j puis 2 chiffres va sur l'onglet correspondant

Fenêtre d'information :

Touche Fonction
F7 réduit la fenêtre d'information
F8 agrandi la fenêtre d'information
Alt-Maj-d scroll vers le haut
Alt-Maj-c scroll vers le bas

Pour formater les messages avant envoi :

Touche Fonction
Ctrl-a déplace le curseur au début de la ligne
Ctrl-e déplace le curseur à la fin de la ligne
Ctrl-j ajoute un retour à la ligne
Tab complète automatiquement le pseudo

Pour scroller :

Touche Fonction
Flèche haut remonte l'historique des envois
Flèche bas descend dans l'historique des envois
Page Up remonte l'historique de la discussion
Page Down descend l'historique de la discussion

Journaux

Les fichiers journaux sont créés par défaut dans le répertoire ~/.local/share/poezio/logs/. Mais il est possible de modifier le chemin du répertoire :

log_dir = /home/USER/.local/share/poezio/logs

Si l'on souhaite désactiver les journaux système :

log_errors = False

La récupération de l'historique des salons est configurable, mais dépend du serveur qui héberge le salon. Personnellement, je préfère que le client récupère la valeur fournie par le serveur, c'est à dire la valeur maximum :

muc_history_length = -1

Cette fonctionnalité de récupération de l'historique du serveur entre en conflit avec l'option load_log. Cette option permet d'afficher une dizaine de lignes de log qui étaient stockées dans les fichiers de log de Poezio. Si les 2 options sont activées en même temps, alors on obtient un historique incohérent, et en double.

use_log = True
load_log = 0

Agencement des fenêtres

Poezio est un client XMPP largement personnalisable. Il est possible d'afficher la liste des salons dans une ligne en bas, ou dans une colonne à gauche. Il est également possible d'afficher la liste des participants du salon, ou pas. Et enfin, on peut afficher, avec une taille variable, la fenêtre d'information en dessous des fenêtres de conversation.

Chemin vers les thèmes :

themes_dir = /usr/lib64/python3.9/site-packages/poezio_themes

Si vous souhaitez utiliser le thème "dark" :

theme = dark

Connexion par un proxy

Il est possible de se connecter au serveur XMPP en passant par un serveur proxy. Pour celà, il faut installer et configurer le programme proxychains.

dnf install proxychains

Pour que ce programme puisse se connecter au bon serveur proxy, il faut renseigner le fichier /etc/proxychains.conf.

Par exemple, si l'on veut établir une connexion au proxy SOCKSv5 de Tor :

[ProxyList]
socks5 ::1 9050

Si le serveur XMPP possède une adresse .onion, on peut l'indiquer aussi dans le fichier de configuration de Poezio :

jid = <mon_compte@domaine.tld>
server = <adresse.onion>

Une fois les 2 programmes correctement configurés, on peut lancer Poezio :

$ proxychains poezio

La doc

La documentation est disponible en ligne pour la toute dernière version. Elle est également fournie avec le paquet poezio-doc pour une version donnée. Le RPM installe la doc dans le répertoire système :

/usr/share/doc/poezio/rst/

Il est possible de compiler les fichiers ReST en document PDF, ou en pages HTML (pour un usage hors-ligne ou purement esthétique).