Se connecter à un sallon via XMPP avec Poezio


C'est un logiciel en ligne de commande développé notamment par Link Mauve (Seul les vrais Asralliens savent où le trouver :p ). Celui-ci permet de se connecter aux instances XMPP.

Pré-requis

Si vous n'avez pas de compte XMPP, suivez la procédure suivante sinon sautez au prochain chapitre.

Via un navigateur web on se connecte au site apinc et on rempli le formulaire d'inscription. Il n'y a pas de restriction particulière sauf d'éviter de s'inscrire sur le serveur jabber.fr car il semble être parfois en surcharge.

Installation

Il n'existe pas de paquet Debian pour l'installer directement avec apt mais nous allons le faire à la main à l'aide d'un dépôt GIT. Commençons par le télécharger puis installations les dépendances :

git clone https://git.poez.io/poezio.git
cd poezio
./update.sh

Si vous tombez sur l'erreur qui indique qu'il ne peut pas utiliser python-potr, ce n'est pas important pour un usage basique.

Configuration

Ouvrez le fichier suivant est enregistrez au minimum les paramètres suivants :

nano ~/.config/poezio/poezio.cfg
jid = user@domaine.com
default_nick = pseudonyme

Voici la documentation s'il y a besoin de renseigner d'autres paramètres.

On peut ensuite lancer le programme avec :

 ./launch.sh

Configuration personnel

Il n'y a pas d'obligation de suivre les options que j'ai appliqué car ça concerne mon usage personnel.

/set hide_user_list = true
/set use_log = true

En activant la dernière option, les logs seront situé dans ~/.local/share/poezio/logs/

Ajouter un thème

Malheureusement il n'y a que 16 couleurs différentes au lieu des 256. Celà à été forcé comme on peut le voir codé en brute et pris en charge par le programme : https://doc.poez.io/_modules/poezio/theming.html#Theme

Voici le mien :

Click to display ⇲

Click to hide ⇱

custom.py
import theming
 
class FooTheme(theming.Theme):
    COLOR_NORMAL_TEXT = (82, -1) 
    COLOR_ME_MESSAGE = (14, -1, "b")
    COLOR_MUC_JID = (11, -1) 
    COLOR_REMOTE_USER = (12, -1, "b")
 
    COLOR_LOG_MSG = (5, -1) 
    CHAR_STATUS = ' ' 
 
    CHAR_JOIN = '>' 
    CHAR_QUIT = '<' 
 
    # Bars
    COLOR_WARNING_PROMPT = (16, 1, 'b')
    COLOR_INFORMATION_BAR = (7, 16, 'b') #Bar principale
    COLOR_TOPIC_BAR = (7, 4)
    COLOR_SCROLLABLE_NUMBER = (220, 4, 'b')
    COLOR_SELECTED_ROW = (-1, 33) 
    COLOR_PRIVATE_NAME = (-1, 4)
    COLOR_CONVERSATION_NAME = (2, 4)
    COLOR_CONVERSATION_RESOURCE = (121, 4)
    COLOR_GROUPCHAT_NAME = (7, 16, 'b')
    COLOR_COLUMN_HEADER = (36, 4)
    COLOR_COLUMN_HEADER_SEL = (4, 36) 
 
    # Separators
    COLOR_VERTICAL_SEPARATOR = (-1, -1) 
    COLOR_NEW_TEXT_SEPARATOR = (-1, -1) 
    COLOR_MORE_INDICATOR = (6, 4)
 
    # Time (semble pas marcher)
#    CHAR_TIME_LEFT = '['
#    CHAR_TIME_RIGHT = ']'
    COLOR_TIME_STRING = (-1, -1) 
 
    # User list color
    COLOR_USER_VISITOR = (239, -1) 
    COLOR_USER_PARTICIPANT = (239, -1) 
    COLOR_USER_NONE = (0, -1) 
    COLOR_USER_MODERATOR = (239, -1) 
 
    # Tabs
    COLOR_TAB_NORMAL = (7, 16) 
    COLOR_TAB_NONEMPTY = (7, -1) 
    COLOR_TAB_SCROLLED = (5, -1)
    COLOR_TAB_JOINED = (7, -1)
    COLOR_TAB_CURRENT = (7, -1, 'i')
    COLOR_TAB_COMPOSING = (7, 5)
    COLOR_TAB_NEW_MESSAGE = (7, 5, 'b')
    COLOR_TAB_HIGHLIGHT = (7, 1, 'b')
    COLOR_TAB_PRIVATE = (7, 1, 'b')
    COLOR_TAB_ATTENTION = (7, 1, 'b')
    COLOR_TAB_DISCONNECTED = (7, 8)
 
    COLOR_VERTICAL_TAB_NORMAL = (4, -1) 
    COLOR_VERTICAL_TAB_NONEMPTY = (4, -1) 
    COLOR_VERTICAL_TAB_JOINED = (82, -1) 
    COLOR_VERTICAL_TAB_SCROLLED = (66, -1) 
    COLOR_VERTICAL_TAB_CURRENT = (7, -1)
    COLOR_VERTICAL_TAB_NEW_MESSAGE = (5, -1) 
    COLOR_VERTICAL_TAB_COMPOSING = (5, -1) 
    COLOR_VERTICAL_TAB_HIGHLIGHT = (3, -1) 
    COLOR_VERTICAL_TAB_PRIVATE = (2, -1) 
    COLOR_VERTICAL_TAB_ATTENTION = (1, -1) 
    COLOR_VERTICAL_TAB_DISCONNECTED = (8, -1) 
 
    # Bars
    COLOR_CONVERSATION_NAME = (2, 16, "b")
    COLOR_TOPIC_BAR = (3, -1, "b")
 
    INFO_COLORS = {
        'info': (2, -1),
        'error': (1, -1),
        'warning': (1, -1),
        'roster': (2, -1),
        'help': (10, -1),
        'headline': (11, -1, 'b'),
        'tune': (6, -1),
        'gaming': (6, -1),
        'mood': (2, -1),
        'activity': (3, -1),
        'default': (7, -1),
    }
 
theme = FooTheme()

On placera ce fichier ici :

nano ~/.local/share/poezio/themes/custom.py

Commandes disponibles

Tout d'abord voici toute la liste des dommandes disponible.

Je vais présenter ci-dessous celle les plus utiles :

  • Se connecter au salon d'un serveur :
/join asrall@chat.asrall.fr
  • Lister les salons d'un serveur :
/list chat.asrall.fr@irc.domaine.com
  • Ajouter un bookmarks pour synchroniser l'ajout des groupes sur les autres appareils :
/bookmark asrall@chat.asrall.fr/pseudonyme
/bookmarks
  • Fermer une fenêtre :
/close
  • Fermer/quitter le logiciel :
/exit
  • Rechercher un contact depuis la liste des contact :
"s" ou "S" (avec Regex)
  • Afficher les contacts hors ligne :
o

Liste de commandes classiques

ctrl+p                              = Fenêtre précédente
ctrl+n                              = Fenêtre suivante
/sleft                              = Des informations sur soit notamment pour connaitre son JID
/version $JID                       = Liste des version des logiciels utilisé
/clear                              = Vide le buffer
/info $PSEUDO                       = infos sur l'utilisateur
/ignore $PSEUDO                     = Ignore l'utilisateur
/query $PSEUDO mon message          = Envoit un message à un utilisateur
/names                              = Liste des utilisateurs connecté
/topic On change de sujet           = changer le sujet du salon