Author: Sébastien Helleu

# WeeChat FAQ (Questions Fréquemment Posées)

Sébastien Helleu
flashcode@flashtux.org
version 3.8

## 1. Général

### 1.1. D’où vient le nom "WeeChat" ?

"Wee" est un acronyme récursif qui signifie "Wee Enhanced Environment". Donc le nom complet est "Wee Enhanced Environment for Chat".

"Wee" signifie également "très petit" (et oui, il y a une autre signification, mais elle ne s’applique pas à WeeChat !).

### 1.2. Pourquoi choisir WeeChat ? X-Chat et Irssi sont si bien…​

Parce que WeeChat est très léger et apporte des fonctionnalités innovantes.

Plus d’infos sur la page des fonctionnalités ↗ WeeChat.

## 2. Compilation / installation

### 2.1. J’ai entendu parler de plusieurs interfaces pour WeeChat. Comment puis-je les compiler/utiliser ?

Des interfaces distantes sont disponibles, voir la page avec les interfaces distantes ↗.

### 2.2. Je ne peux pas compiler WeeChat après avoir cloné la base git, pourquoi ?

La méthode recommandée pour compiler WeeChat est d’utiliser CMake ↗.

Si vous compilez avec les autotools ↗ (et non CMake), vérifiez que vous avez bien la dernière version d’autoconf et automake.

Une autre façon de faire est de compiler le "paquet devel", qui nécessite moins de dépendances. Ce paquet est construit quasiment tous les jours à partir de la base git. Notez que ce paquet peut ne pas correspondre exactement à la base git et qu’il est moins pratique que de cloner la base git pour installer des mises à jour.

### 2.3. Comment puis-je installer WeeChat sous macOS ?

Il est recommandé d’utiliser Homebrew ↗, vous pouvez avoir de l’aide avec :

    brew info weechat

Vous pouvez installer WeeChat avec cette commande :

    brew install weechat

### 2.4. J’ai lancé WeeChat, mais je suis perdu, que puis-je faire ?

Pour obtenir de l’aide tapez `/help`. Pour de l’aide sur une commande, tapez `/help commande`. Les touches ↗ et commandes ↗ sont listées dans la documentation.

Il est recommandé pour les nouveaux utilisateurs de lire le Guide de démarrage rapide ↗.

## 3. Affichage

### 3.1. Je ne vois pas bien certains accents dans WeeChat, que faire ?

C’est un problème courant avec beaucoup de causes possibles, merci de lire attentivement et vérifier TOUS les points ci-dessous :

- Vérifiez que weechat est lié avec libncursesw (attention : nécessaire sur beaucoup de distributions, mais pas toutes) : `ldd /chemin/vers/weechat`.

- Vérifiez que l’extension "charset" est chargée avec la commande `/plugin` (s’il ne l’est pas, vous devez peut-être installer le paquet "weechat-plugins").

- Vérifiez la sortie de la commande `/charset` (sur le tampon "core"), vous devriez voir ISO-XXXXXX ou UTF-8 pour le charset du terminal. Si vous voyez ANSI_X3.4-1968 ou d’autres valeurs, votre locale est probablement erronée.
  Pour corriger votre locale, vérifiez les locales installées avec `locale -a` et définissez une valeur appropriée pour $LANG, par exemple : `export LANG=en_US.UTF-8`.

- Affectez la valeur pour le décodage global, par exemple : `/set charset.default.decode "ISO-8859-15"`.

- Si vous utilisez la locale UTF-8 :

  - Vérifiez que votre terminal est compatible UTF-8 (un terminal conseillé pour l’UTF-8 est rxvt-unicode).

  - Si vous utilisez screen, vérifiez qu’il est lancé en mode UTF-8 (“defutf8 on” dans ~/.screenrc ou `screen -U` pour lancer screen).

- Vérifiez que l’option weechat.look.eat_newline_glitch ↗ est désactivée (cette option peut causer des problèmes d’affichage).

| La locale UTF-8 est recommandée pour WeeChat. Si vous utilisez ISO ou une autre locale, assurez-vous que tout soit configuré en ISO (terminal, screen, …​) et pas en UTF-8.

### 3.2. Certains caractères unicode sont affichés dans le terminal, mais pas dans WeeChat, pourquoi ?

Cela peut être causé par un bug de la libc dans la fonction wcwidth et devrait être corrigé dans la glibc 2.22 (peut-être pas encore disponible dans votre distribution).

Il y a un moyen de contournement pour utiliser la fonction wcwidth corrigée : https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ↗.

Voir ce rapport de bug ↗ pour plus d’informations.

### 3.3. Des barres telles que le titre et le statut ne sont pas remplies, la couleur de fond s’arrête après le texte, pourquoi ?

Cela peut être du à la variable TERM qui n’a pas la bonne valeur (regardez la sortie de `echo $TERM` dans votre terminal).

Selon la façon de lancer WeeChat, vous devriez avoir :

- Si WeeChat tourne en local ou sur une machine distante sans screen ni tmux : cela dépend du terminal utilisé : xterm, xterm-256color, rxvt-unicode, rxvt-256color, etc.

- Si WeeChat tourne sous screen, vous devriez avoir screen ou screen-256color.

- Si WeeChat tourne sous tmux, vous devriez avoir tmux, tmux-256color, screen ou screen-256color.

Si besoin, corrigez la variable TERM : `export TERM="xxx"`.

### 3.4. Quand j’utilise weechat sous screen/tmux, j’ai des caractères bizarres et aléatoires, comment corriger ça ?

Cela peut être du à la variable TERM qui n’a pas la bonne valeur (regardez la sortie de `echo $TERM` dans votre terminal, en dehors de screen/tmux).
Par exemple xterm-color provoque ce genre de problèmes, utilisez xterm qui est ok (comme plein d’autres valeurs).
Si besoin, corrigez la variable TERM : `export TERM="xxx"`.

Si vous utilisez gnome-terminal, vérifiez que l’option "Ambiguous-width characters" dans le menu Preferences/Profile/Compatibility est positionnée à `narrow`.

### 3.5. J’ai compilé WeeChat sous macOS, et je vois des "(null)" partout sur l’écran, pourquoi ?

Si vous avez compilé ncursesw vous-même, essayez avec le ncurses standard (celui fourni avec le système).

De plus, sous macOS, il est recommandé d’installer WeeChat avec le gestionnaire de paquets Homebrew.

### 3.6. J’ai entendu parler de "buffer" et "window", quelle est la différence ?

Un tampon (buffer) est composé d’un numéro, un nom, des lignes affichées (ainsi que d’autres données).

Une fenêtre (window) est une zone de l’écran affichant un tampon. Il est possible de découper l’écran horizontalement ou verticalement en plusieurs fenêtres.

Chaque fenêtre affiche un tampon ou un ensemble de tampons mélangés. Un tampon peut être caché (affiché par aucune fenêtre) ou affiché par une ou plusieurs fenêtres.

### 3.7. Comment afficher la liste des tampons sur la gauche ?

L’extension buflist ↗ est chargée et activée par défaut.

Pour limiter la taille de la barre :

    /set weechat.bar.buffers.size_max 15

Pour déplacer la barre en bas :

    /set weechat.bar.buffers.position bottom

Pour faire défiler la barre : si la souris est activée (touche : `Alt`+`m`), vous pouvez faire défiler avec la roulette de votre souris.

Les touches par défaut pour faire défiler la barre buflist sont `F1` (ou `Ctrl`+`F1`), `F2` (ou `Ctrl`+`F2`), `Alt`+`F1` et `Alt`+`F2`.

### 3.8. Comment puis-je configurer la liste des tampons, comme la couleur du tampon actif ?

Vous pouvez afficher toutes les options buflist avec la commande :

    /fset buflist

Le fond du tampon actif est bleu par défaut, vous pouvez le changer comme ceci, par exemple en rouge (`red`) :

    /set buflist.format.buffer_current "${color:,red}${format_buffer}"

| Il y a une virgule avant le nom de la couleur "red" parce qu’elle est utilisée comme couleur de fond et non de texte. Vous pouvez aussi utiliser une couleur numérique à la place de `red`, comme `237` pour du gris foncé.

L’extension buflist met à disposition beaucoup d’options que vous pouvez changer, merci de lire l’aide sur chaque option.

Il y a aussi une page wiki ↗ avec des exemples avancés de configuration buflist.

### 3.9. Comment puis-je réduire la longueur des pseudos ou supprimer l’alignement des pseudos dans la zone de discussion ?

Pour réduire la longueur maximum des pseudos dans la zone de discussion :

    /set weechat.look.prefix_align_max 15

Pour supprimer l’alignement sur les pseudos :

    /set weechat.look.prefix_align none

### 3.10. Que signifie [H: 3(1,8), 2(4)] dans la barre de statut ?

Il s’agit de la "hotlist", une liste de tampons avec le nombre de messages non lus, par ordre : highlights, messages privés, messages, autres messages (comme join/part).
Le nombre de "messages non lus" est le nombre de nouveaux messages affichés/reçus depuis que vous avez visité le tampon.

Dans l’exemple `[H: 3(1,8), 2(4)]`, il y a :

- 1 highlight et 8 messages non lus sur le tampon n°3,

- 4 messages non lus sur le tampon n°2.

La couleur du tampon/compter dépend du type de message, les couleurs par défaut sont :

- highlight : `lightmagenta` / `magenta`

- message privé : `lightgreen` / `green`

- message : `yellow` / `brown`

- autre message : `default` / `default` (couleur du texte dans le terminal)

Ces couleurs peuvent être changées via les options weechat.color.status_data_* (tampons) et weechat.color.status_count_* (compteurs).
Les autres options pour la "hotlist" peuvent être changées via les options weechat.look.hotlist_*.

Voir le Guide utilisateur / Organisation de l’écran ↗ pour plus d’information sur la "hotlist".

### 3.11. Comment utiliser une ligne de commande sur plusieurs lignes ?

L’option size dans la barre input peut être définie à une valeur supérieure à 1 (pour une taille fixe, la taille par défaut est 1) ou 0 pour une taille dynamique, et alors l’option size_max définira la taille maximum (0 = pas de limite).

Exemple avec une taille dynamique :

    /set weechat.bar.input.size 0

Taille maximum de 2 :

    /set weechat.bar.input.size_max 2

### 3.12. Est-il possible d’avoir une seule bar input pour toutes les fenêtres (après un découpage) ?

Oui, vous devez créer une barre de type "root" (avec un objet pour savoir dans quelle fenêtre vous êtes), puis supprimer la barre input courante.

Par exemple :

    /bar add rootinput root bottom 1 0 [buffer_name]+[input_prompt]+(away),[input_search],[input_paste],input_text
    /bar del input

Si jamais vous n’étiez pas satisfait avec ça, supprimez simplement la nouvelle barre, WeeChat recréera automatiquement la barre par défaut "input" si l’objet "input_text" n’est utilisé dans aucune barre :

    /bar del rootinput

### 3.13. Comment puis-je copier/coller du texte sans coller la liste des pseudos ?

Vous pouvez utiliser l’affichage dépouillé (touche par défaut : `Alt`+`l` (`L`)), qui affiche juste le contenu de la fenêtre actuellement sélectionnée sans aucun formatage.

Vous pouvez utiliser un terminal qui propose la sélection rectangulaire (comme rxvt-unicode, konsole, gnome-terminal, etc.). La touche est habituellement `Ctrl` + `Alt` + sélection à la souris.

Une autre solution est de déplacer la liste des pseudos en haut ou en bas, par exemple :

    /set weechat.bar.nicklist.position top

### 3.14. Comment puis-je cliquer sur les longs URLs (plus d’une ligne) ?

Vous pouvez utiliser l’affichage dépouillé (touche par défaut : `Alt`+`l` (`L`)).

Pour rendre le clic d’URL plus facile, vous pouvez :

- déplacer la liste des pseudos en haut :

    /set weechat.bar.nicklist.position top

- désactiver l’alignement pour les mots sur plusieurs lignes :

    /set weechat.look.align_multiline_words off

- ou pour toutes les lignes :

    /set weechat.look.align_end_of_lines time

Vous pouvez activer l’option "eat_newline_glitch", pour éviter qu’un caractère de nouvelle ligne soit affiché après chaque ligne (donc cela ne cassera pas la sélection d’une URL) :

    /set weechat.look.eat_newline_glitch on

| Cette option peut causer des problèmes d’affichage. Si vous rencontrez de tels problèmes, vous devez désactiver cette option.

Une autre solution est d’utiliser un script :

    /script search url

### 3.15. Je souhaite changer la langue des messages affichés par WeeChat, mais sans quitter WeeChat, est-ce possible ?

Bien sûr, cela est possible :

    /set env LANG fr_FR.UTF-8
    /upgrade

### 3.16. Comment puis-je changer le fuseau horaire ?

Il n’y a pas d’option pour changer le fuseau horaire dans WeeChat, la variable d’environnement `TZ` doit être positionnée à la valeur appropriée.

Dans votre fichier d’initialisation du shell ou sur la ligne de commande, avant de démarrer WeeChat :

    export TZ=Europe/Paris

Dans WeeChat, la nouvelle valeur est immédiatement utilisée :

    /set env TZ Europe/Paris

### 3.17. Comment puis-je utiliser 256 couleurs sous WeeChat ?

Premièrement vérifiez que votre variable d’environnement TERM est correcte, les valeurs recommandées sont :

- sous screen : screen-256color

- sous tmux : screen-256color ou tmux-256color

- en dehors de screen/tmux : xterm-256color, rxvt-256color, putty-256color, …​

| Vous devrez peut-être installer le paquet "ncurses-term" pour utiliser ces valeurs dans la variable TERM.

Si vous utilisez screen, vous pouvez ajouter cette ligne dans votre ~/.screenrc :

    term screen-256color

Si votre variable TERM a une valeur erronée et que WeeChat est déjà lancé, vous pouvez la changer avec ces deux commandes :

    /set env TERM screen-256color
    /upgrade

Vous pouvez utiliser un numéro de couleur dans les options (facultatif : vous pouvez ajouter des alias de couleurs avec la commande `/color`).

Merci de lire le Guide utilisateur / Couleurs ↗ pour plus d’information sur la gestion des couleurs.

### 3.18. Comment puis-je chercher du texte dans le tampon (comme /lastlog dans irssi) ?

La touche par défaut est `Ctrl`+`r` (la commande est : `/input search_text_here`). Et sauter aux highlights : `Alt`+`p` / `Alt`+`n`.

Voir le Guide utilisateur / Raccourcis clavier par défaut ↗ pour plus d’information sur cette fonctionnalité.

### 3.19. Comment puis-je exécuter des commandes lorsque le terminal obtient/perd le focus ?

Vous devez activer les évènements du focus avec un code spécial envoyé au terminal.

Important :

- Vous devez utiliser un terminal moderne compatible avec xterm.

- Il semble également important que la valeur de votre variable TERM soit égale à xterm ou xterm-256color.

- Si vous utilisez tmux, vous devez activer en plus les évènements focus en ajoutant `set -g focus-events on` dans votre fichier .tmux.conf.

- Cela ne fonctionne pas sous screen.

Pour envoyer le code au démarrage de WeeChat :

    /set weechat.startup.command_after_plugins "/print -stdout \033[?1004h\n"

Puis associez deux touches pour le focus (remplacez les commandes `/print` par les commandes de votre choix) :

    /key bind meta2-I /print -core focus
    /key bind meta2-O /print -core unfocus

Par exemple pour marquer les tampons comme lus lorsque le terminal perd le focus :

    /key bind meta2-O /allbuf /buffer set unread

### 3.20. Lorsque WeeChat tourne sous screen, le collage de texte dans une autre fenêtre screen ajoute ~0 et ~1 autour du texte, pourquoi ?

Cela est causé par l’option "bracketed paste" qui est activée par défaut, et pas correctement gérée par screen dans les autres fenêtres.

Vous pouvez simplement désactiver le mode "bracketed paste" :

    /set weechat.look.paste_bracketed off

### 3.21. Comment puis-je personnaliser l’affichage pour un tout petit terminal (comme 80x25), pour ne pas perdre de place ?

Vous pouvez retirer les barres latérales (buflist et nicklist), changer le format de l’heure pour n’afficher que les heures et les minutes, désactiver l’alignement des messages et définir un caractère de préfixe/suffixe pour les pseudos :

    /set buflist.look.enabled off
    /bar hide nicklist
    /set weechat.look.buffer_time_format "%H:%M"
    /set weechat.look.prefix_align none
    /set weechat.look.align_end_of_lines prefix
    /set weechat.look.nick_suffix ">"
    /set weechat.look.nick_prefix "<"

Terminal 80x25, avec la configuration par défaut :

    ┌────────────────────────────────────────────────────────────────────────────────┐
    │1.local     │Welcome on WeeChat channel!                                        │
    │  weechat   │16:27:16        --> | FlashCode (~flashcode@localhost)  │@FlashCode│
    │2.  #weechat│                    | has joined #weechat               │ bob      │
    │            │16:27:16         -- | Mode #weechat [+nt] by hades.arpa │          │
    │            │16:27:16         -- | Channel #weechat: 1 nick (1 op, 0 │          │
    │            │                    | voices, 0 normals)                │          │
    │            │16:27:18         -- | Channel created on Sun, 22 Mar    │          │
    │            │                    | 2020 16:27:16                     │          │
    │            │17:02:28        --> | bob (~bob_user@localhost) has     │          │
    │            │                    | joined #weechat                   │          │
    │            │17:03:12 @FlashCode | hi bob, you're the first user     │          │
    │            │                    | here, welcome on the WeeChat      │          │
    │            │                    | support channel!                  │          │
    │            │17:03:33        bob | hi FlashCode                      │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │[17:04] [2] [irc/local] 2:#weechat(+nt){2}                         │
    │            │[@FlashCode(i)] █                                                  │
    └────────────────────────────────────────────────────────────────────────────────┘

Terminal 80x25, après les changements :

    ┌────────────────────────────────────────────────────────────────────────────────┐
    │Welcome on WeeChat channel!                                                     │
    │16:27 --> FlashCode (~flashcode@localhost) has joined #weechat                  │
    │16:27 -- Mode #weechat [+nt] by hades.arpa                                      │
    │16:27 -- Channel #weechat: 1 nick (1 op, 0 voices, 0 normals)                   │
    │16:27 -- Channel created on Sun, 22 Mar 2020 16:27:16                           │
    │17:02 --> bob (~bob_user@localhost) has joined #weechat                         │
    │17:03 <@FlashCode> hi bob, you're the first user here, welcome on the WeeChat   │
    │      support channel!                                                          │
    │17:03 <bob> hi FlashCode                                                        │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │[17:04] [2] [irc/local] 2:#weechat(+nt){2}                                      │
    │[@FlashCode(i)] █                                                               │
    └────────────────────────────────────────────────────────────────────────────────┘

## 4. Raccourcis clavier

### 4.1. Quelques touches meta (alt + touche) ne fonctionnent pas, pourquoi ?

Si vous utilisez certains terminaux comme xterm ou uxterm, quelques touches meta ne fonctionnent pas par défaut. Vous pouvez ajouter cette ligne dans le fichier ~/.Xresources :

- Pour xterm :

    XTerm*metaSendsEscape: true

- Pour uxterm :

    UXTerm*metaSendsEscape: true

Puis recharger les ressources (`xrdb -override ~/.Xresources`) ou redémarrez X.

Si vous utilisez l’application Terminal sous macOS, activez l’option "Use option as meta key" dans le menu Réglages/Clavier. Vous pouvez alors utiliser la touche `Option` comme touche meta.

### 4.2. Comment puis-je configurer les raccourcis clavier ?

Les raccourcis clavier sont modifiables avec la commande `/key`.

La touche par défaut `Alt`+`k` permet de capturer le code d’une touche et de l’inclure dans la ligne de commande.

### 4.3. Quelle est la touche pour sauter vers le tampon 11 (ou numéro plus élevé) ?

La touche est `Alt`+`j` puis 2 chiffres, par exemple `Alt`+`j`, `1`, `1` pour sauter au tampon 11.

Vous pouvez définir une touche, par exemple :

    /key bind meta-q /buffer *11

La liste des touches par défaut est dans le Guide utilisateur / Raccourcis clavier par défaut ↗.

Pour sauter vers les tampons ayant un numéro ≥ 100, vous pouvez définir un trigger et utiliser les commandes comme `/123` pour sauter au tampon n°123 :

    /trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none"

### 4.4. Comment utiliser l’historique global (au lieu de l’historique du tampon) avec les touches haut et bas ?

Vous pouvez assigner les touches haut et bas sur l’historique global (les touches par défaut pour l’historique global sont `Ctrl`+`↑` et `Ctrl`+`↓`).

Exemple :

    /key bind meta2-A /input history_global_previous
    /key bind meta2-B /input history_global_next

| Les touches "meta2-A" et "meta2-B" peuvent être différentes dans votre terminal. Pour trouver le code de la touche appuyez sur `Alt`+`k` puis la touche.

## 5. Souris

### 5.1. La souris ne fonctionne pas du tout, que puis-je faire ?

Premièrement essayez d’activer la souris :

    /mouse enable

Si la souris ne fonctionne toujours pas, vérifiez la variable TERM dans votre shell (regardez la sortie de `echo $TERM` dans votre terminal). Selon le terminfo utilisé, la souris peut ne pas être supportée.

Vous pouvez tester le support de la souris dans le terminal :

    $ printf '\033[?1002h'

Et cliquez sur le premier caractère du terminal (en haut à gauche). Vous devriez voir " !!#!!".

Pour désactiver la souris dans le terminal :

    $ printf '\033[?1002l'

### 5.2. La souris ne fait rien pour un X ou Y supérieur à 94 (ou 222), pourquoi ?

Certains terminaux envoient seulement des caractères ISO pour les coordonnées de la souris, donc cela ne fonctionne pas avec un X/Y supérieur à 94 (ou 222).

Vous devriez utiliser un terminal qui supporte les coordonnées UTF-8 pour la souris, comme rxvt-unicode.

### 5.3. Comment puis-je sélectionner ou coller du texte quand la souris est activée dans WeeChat ?

Lorsque la souris est activée dans WeeChat, vous pouvez utiliser la touche `Shift` pour sélectionner ou cliquer dans le terminal, comme si la souris était désactivée (sous certains terminaux comme iTerm, vous devez utiliser `Alt` au lieu de `Shift`).

## 6. IRC

### 6.1. J’ai des problèmes pour me connecter au serveur avec SSL, que puis-je faire ?

Si vous utilisez macOS, vous devez installer `openssl` depuis Homebrew. Un fichier CA sera installé avec le le trousseau système.

Si vous voyez des erreurs à propos de la poignée de main gnutls ("handshake"), vous pouvez utiliser une valeur plus petite pour la clé Diffie-Hellman (par défaut 2048) :

    /set irc.server.example.ssl_dhkey_size 1024

Si vous voyez des erreurs à propos du certificat, vous pouvez désactiver "ssl_verify" (attention, la connexion sera moins sûre en faisant cela) :

    /set irc.server.example.ssl_verify off

Si le serveur a un certificat invalide et que vous savez ce que devrait être le certificat, vous pouvez spécifier l’empreinte (SHA-512, SHA-256 ou SHA-1) :

    /set irc.server.example.ssl_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b

### 6.2. Lors de la connexion SSL à un serveur, je vois juste une erreur "TLS handshake failed", que puis-je faire ?

Vous pouvez essayer une chaîne de priorité différente, remplacez "xxx" par le nom de votre serveur :

    /set irc.server.xxx.ssl_priorities "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT"

### 6.3. Comment puis-je me connecter à libera avec SSL ?

Vérifiez que vous avez les certificats installés sur votre système, cela est fourni généralement par le paquet "ca-certificates".

Configurez le port du serveur, SSL, puis connectez-vous :

    /set irc.server.libera.addresses "irc.libera.chat/6697"
    /set irc.server.libera.ssl on
    /connect libera

### 6.4. Comment se connecter à un serveur qui requiert "oauth" ?

Des serveurs tels que twitch requièrent oauth pour se connecter.

L’oauth est simplement un mot de passe avec la valeur "oauth:XXXX".

Vous pouvez ajouter un tel serveur et vous y connecter avec les commandes suivantes (remplacez le nom et l’adresse par les valeurs appropriées) :

    /server add nom irc.server.org -password=oauth:XXXX
    /connect nom

### 6.5. Comment puis-je être identifié avant de rejoindre les canaux ?

Si le serveur supporte SASL, vous devriez l’utiliser au lieu d’envoyer une commande pour l’authentification avec nickserv, par exemple :

    /set irc.server.libera.sasl_username "mynick"
    /set irc.server.libera.sasl_password "xxxxxxx"

Si le serveur ne supporte pas SASL, vous pouvez ajouter un délai (entre la commande et le join des canaux) :

    /set irc.server.libera.command_delay 5

### 6.6. Comment puis-je ajouter/supprimer des canaux de l’option autojoin ?

Avec WeeChat ≥ 3.5, vous pouvez automatiquement enregistrer les canaux que vous rejoignez et quittez manuellement dans l’option "autojoin" du serveur.

Pour tous les serveurs :

    /set irc.server_default.autojoin_dynamic on

Pour un seul serveur :

    /set irc.server.libera.autojoin_dynamic on

Vous pouvez aussi ajouter le canal coucant dans l’option "autojoin" du serveur avec la commande `/autojoin` :

    /autojoin add

Ou un autre canal :

    /autojoin add #test

Il y a aussi des scripts :

    /script search autojoin

### 6.7. Quelle est la différence entre les commandes /ignore et /filter ?

La commande `/ignore` est une commande IRC, donc elle s’applique uniquement aux tampons IRC (serveurs et canaux). Elle permet d’ignorer des pseudos ou nom d’hôtes pour un serveur ou un canal (la commande ne s’applique pas au contenu des messages). Les messages correspondants sont supprimés par l’extension IRC avant affichage (donc vous ne les verrez jamais et ils ne peuvent pas être récupérés en supprimant l’ignore).

La commande `/filter` est une commande "core" WeeChat, donc elle s’applique à n’importe quel tampon. Elle permet de filtrer des lignes dans les tampons à l’aide d’étiquettes ou d’expression régulière pour le préfixe et contenu de la ligne. Les lignes filtrées sont simplement cachées, pas supprimées, et il est possible de les voir en désactivant les filtres (par défaut, la touche `Alt`+`=` active/désactive les filtres).

### 6.8. Comment puis-je filtrer les messages join/part/quit sur les canaux IRC ?

Avec le filtre intelligent (pour garder les join/part/quit des utilisateurs qui ont parlé récemment) :

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

Avec un filtre global (pour cacher tous les join/part/quit) :

    /filter add joinquit * irc_join,irc_part,irc_quit *

| Pour l’aide : `/help filter`, `/help irc.look.smart_filter` et voir Guide utilisateur / Filtre intelligent pour les messages join/part/quit ↗.

### 6.9. Comment puis-je filtrer certains messages affichés quand je rejoins un canal IRC ?

Vous pouvez choisir les messages affichés lorsque vous rejoignez un canal avec l’option irc.look.display_join_message (voir `/help irc.look.display_join_message` pour plus d’informations).

Pour cacher des messages (mais les garder dans le tampon), vous pouvez les filtrer en utilisant l’étiquette (par exemple irc_329 pour la date de création du canal). Voir `/help filter` pour l’aide sur les filtres.

### 6.10. Comment puis-je filtrer les messages voice (par exemple sur le serveur Bitlbee) ?

Il n’est pas facile de filtrer les messages voice, car le mode voice peut être positionné avec d’autres modes dans le même message IRC.

Si vous souhaitez faire cela, c’est probablement parce que Bitlbee utilise le voice pour montrer les utilisateurs absents, et vous recevez plein de messages voice. Par conséquent, vous pouvez changer cela et laisser WeeChat utiliser une couleur spéciale pour les pseudos absents dans la liste des pseudos.

Pour Bitlbee ≥ 3, faites ceci sur le canal &bitlbee :

    channel set show_users online,away

Pour une version plus ancienne de Bitlbee, faites ceci sur le canal &bitlbee :

    set away_devoice false

Pour vérifier les pseudos absents dans WeeChat, voir la question à propos des pseudos absents.

Si vous voulez vraiment filtrer les messages voice, vous pouvez utiliser cette commande, mais elle n’est pas parfaite (elle fonctionne seulement si le premier mode changé est voice) :

    /filter add hidevoices * irc_mode (\+|\-)v

### 6.11. Comment puis-je voir les pseudos absents dans la liste des pseudos ?

Vous devez positionner l’option irc.server_default.away_check avec une valeur positive (minutes entre chaque vérification des pseudos absents).

Vous pouvez aussi positionner l’option irc.server_default.away_check_max_nicks pour limiter la vérification d’absence sur les petits canaux seulement.

Par exemple, pour vérifier les pseudos absents toutes les 5 minutes, pour les canaux avec maximum 25 pseudos :

    /set irc.server_default.away_check 5
    /set irc.server_default.away_check_max_nicks 25

### 6.12. Comment être averti lorsque quelqu’un prononce mon pseudo sur un canal ?

Il y a un trigger "beep" qui envoie BEL au terminal sur un highlight ou un message privé. Par conséquent vous pouvez configurer votre terminal (ou multiplexeur comme screen/tmux) pour lancer une commande ou jouer un son lorsque le BEL se produit.

Ou vous pouvez ajouter une commande dans le trigger "beep" :

    /set trigger.trigger.beep.command "/print -beep;/exec -bg /chemin/vers/commande paramètres"

Avec un WeeChat plus ancien, vous pouvez utiliser un script comme beep.pl ou launcher.pl.

Pour launcher.pl, vous devez configurer la commande :

    /set plugins.var.perl.launcher.signal.weechat_highlight "/chemin/vers/commande paramètres"

Autres scripts sur ce sujet :

    /script search notify

### 6.13. Comment puis-je désactiver le highlight pour des pseudos spécifiques ?

Vous pouvez utiliser la propriété de tampon hotlist_max_level_nicks_add ↗ pour définir le niveau maximum de hotlist pour certains pseudos, par tampon, ou groupe de tampons (comme des serveurs IRC).

Pour désactiver seulement les highlights, vous pouvez positionner la valeur à 2 :

    /buffer set hotlist_max_level_nicks_add joe:2,mike:2

Cependant, cette propriété de tampon n’est pas sauvegardée dans la configuration. Pour automatiquement réappliquer ces propriétés de tampons, vous aurez besoin du script buffer_autoset.py :

    /script install buffer_autoset.py

Par exemple, pour désactiver de manière permanente les highlights de "mike" sur #weechat sur le serveur IRC libera :

    /buffer_autoset add irc.libera.#weechat hotlist_max_level_nicks_add mike:2

Pour l’appliquer à l’ensemble du serveur libera :

    /buffer_autoset add irc.libera hotlist_max_level_nicks_add mike:2

Pour plus d’exemples, voir `/help buffer_autoset`.

### 6.14. Comment puis-je changer le serveur cible pour les commandes avec des tampons mélangés (comme le tampon avec les serveurs) ?

La touche par défaut est `Ctrl`+`x` (la commande est : `/buffer switch`).

## 7. Extensions / scripts

### 7.1. J’utilise OpenBSD et WeeChat ne charge aucune extension, pourquoi ?

Sous OpenBSD, le nom des extensions se termine par ".so.0.0" (".so" sous Linux).

Vous devez configurer ça :

    /set weechat.plugin.extension ".so.0.0"
    /plugin autoload

### 7.2. Comment puis-je installer des scripts ? Les scripts sont-ils compatibles avec d’autres clients IRC ?

Vous pouvez utiliser la commande `/script` pour installer et gérer les scripts (voir `/help script` pour de l’aide).

Les scripts ne sont pas compatibles avec d’autres clients IRC.

### 7.3. La commande "/script update" ne peut pas lire les scripts, comment corriger ça ?

Consultez d’abord les questions à propos des connexions SSL dans cette FAQ.

Si cela ne fonctionne toujours pas, essayez de supprimer manuellement le fichier avec les scripts (dans votre shell) :

    $ rm ~/.cache/weechat/script/plugins.xml.gz

| Si vous n’utilisez pas les répertoires XDG, le chemin pourrait être : ~/.weechat/script/plugins.xml.gz.

Et mettez à jour les scripts à nouveau dans WeeChat :

    /script update

Si vous avez toujours une erreur, alors vous devez désactiver la mise à jour automatique du fichier dans WeeChat et télécharger le fichier manuellement en dehors de WeeChat (cela signifie que vous devrez mettre à jour le fichier vous-même pour obtenir les mises à jour) :

- dans WeeChat :

    /set script.scripts.cache_expire -1

- dans votre shell, avec curl installé :

    $ cd ~/.cache/weechat/script
    $ curl -O https://weechat.org/files/plugins.xml.gz

Si vous êtes sous macOS et que le fichier téléchargé a une taille de 0 octet, essayez de définir cette variable dans votre fichier d’initialisation du shell ou sur la ligne de commande, avant de démarrer WeeChat :

    export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

### 7.4. J’ai installé des dictionnaires aspell sur mon système, comment les utiliser sans redémarrer WeeChat ?

Vous devez recharger l’extension spell :

    /plugin reload spell

## 8. Réglages

### 8.1. Puis-je éditer les fichiers de configuration (*.conf) à la main ?

Vous pouvez, mais ce n’est PAS recommandé.

La commande `/set` dans WeeChat est recommandée :

- Vous pouvez compléter le nom et la valeur de l’option avec la touche `Tab` (ou `Shift`+`Tab` pour une complétion partielle, pratique pour le nom).

- La valeur est vérifiée, un message est affiché en cas d’erreur.

- La valeur est utilisée immédiatement, et vous n’avez pas besoin de redémarrer quoi que ce soit.

Si vous souhaitez quand même éditer les fichiers à la main, vous devez faire attention :

- Si vous mettez une valeur invalide pour une option, WeeChat affichera une erreur au chargement et ne tiendra pas compte de la valeur (la valeur par défaut pour l’option sera utilisée).

- Si WeeChat tourne, vous devrez utiliser la commande `/reload`, et si des options ont été changées mais non sauvées avec `/save`, vous les perdrez.

### 8.2. Comment configurer WeeChat pour consommer moins de mémoire ?

Vous pouvez essayer les astuces suivantes pour consommer moins de mémoire :

- Utiliser la dernière version stable (elle est supposée avoir moins de fuites de mémoire que les versions plus anciennes).

- Ne pas charger les extensions si vous ne les utilisez pas, par exemple : buflist, fifo, logger, perl, python, ruby, lua, tcl, guile, javascript, php, spell, xfer (utilisé pour les DCC). Voir `/help weechat.plugin.autoload`.

- Charger uniquement les scripts dont vous avez vraiment besoin.

- Ne pas charger les certificats si SSL n’est PAS utilisé : désactiver l’option weechat.network.gnutls_ca_system.

- Réduire la valeur de l’option weechat.history.max_buffer_lines_number ou affecter une valeur à l’option weechat.history.max_buffer_lines_minutes.

- Réduire la valeur de l’option weechat.history.max_commands.

### 8.3. Comment configurer WeeChat pour moins utiliser le processeur ?

Vous pouvez suivre les mêmes astuces que pour la mémoire, et celles-ci :

- Cacher la barre "nicklist" : `/bar hide nicklist`.

- Supprimer l’affichage des secondes dans l’heure de la barre de statut : `/set weechat.look.item_time_format "%H:%M"` (ceci est la valeur par défaut).

- Désactiver la vérification en temps réel des mots mal orthographiés dans la ligne de commande (si vous l’avez activée) : `/set spell.check.real_time off`.

- Définir la variable TZ (par exemple : `export TZ="Europe/Paris"`), pour éviter un accès fréquent au fichier /etc/localtime.

### 8.4. Je suis paranoïaque sur la sécurité, quels paramètres puis-je changer pour être encore plus sûr ?

Désactivez les messages de part et quit IRC :

    /set irc.server_default.msg_part ""
    /set irc.server_default.msg_quit ""

Désactivez les réponses à toutes les demandes CTCP :

    /set irc.ctcp.clientinfo ""
    /set irc.ctcp.finger ""
    /set irc.ctcp.source ""
    /set irc.ctcp.time ""
    /set irc.ctcp.userinfo ""
    /set irc.ctcp.version ""
    /set irc.ctcp.ping ""

Déchargez et désactivez le chargement automatique de l’extension "xfer" (utilisée pour le DCC IRC) :

    /plugin unload xfer
    /set weechat.plugin.autoload "*,!xfer"

Définissez une phrase de chiffrement et utilisez les données sécurisées partout où vous le pouvez pour les données sensibles comme les mots de passe : voir `/help secure` et `/help` sur les options (si vous pouvez utiliser les données sécurisées, cela est mentionné dans l’aide). Voir aussi Guide utilisateur / Données sécurisées ↗.

Par exemple :

    /secure passphrase xxxxxxxxxx
    /secure set libera_username username
    /secure set libera_password xxxxxxxx
    /set irc.server.libera.sasl_username "${sec.data.libera_username}"
    /set irc.server.libera.sasl_password "${sec.data.libera_password}"

### 8.5. Je souhaite partager ma configuration de WeeChat, quels fichiers dois-je partager et que dois-je garder privé ?

Vous pouvez partager les fichiers de configuration *.conf sauf le fichier sec.conf qui contient vos mots de passes chiffrés avec votre phrase de chiffrement.

Quelques autres fichiers peuvent contenir des informations sensibles comme des mots de passes (s’ils ne sont pas stockés dans sec.conf avec la commande `/secure`).

Voir le Guide utilisateur / Fichiers et répertoires ↗ pour plus d’informations sur les fichiers de configuration.

## 9. Développement

### 9.1. Comment puis-je reporter un bug, demander une nouvelle fonctionnalité ou envoyer un patch ?

Voir cette page ↗.

### 9.2. Quand je lance WeeChat sous gdb, il y a une erreur à propos des threads, que puis-je faire ?

Quand vous lancez WeeChat sous gdb, vous pouvez avoir cette erreur :

    $ gdb /path/to/weechat
    (gdb) run
    [Thread debugging using libthread_db enabled]
    Cannot find new threads: generic error

Pour corriger ça, vous pouvez lancer gdb avec cette commande (remplacez le chemin vers libpthread et WeeChat avec les chemins sur votre système) :

    $ LD_PRELOAD=/lib/libpthread.so.0 gdb /path/to/weechat
    (gdb) run

### 9.3. Quelle est la liste des plates-formes supportées par WeeChat ? Sera-t-il porté sur d’autres systèmes d’exploitation ?

WeeChat tourne bien sur la plupart des distributions Linux/BSD, GNU/Hurd, Mac OS et Windows (Cygwin et Windows Subsystem for Linux).

Nous faisons le maximum pour supporter le plus de plates-formes possible. Toute aide est la bienvenue pour les systèmes que nous n’avons pas, pour y tester WeeChat.

### 9.4. Je souhaiterais aider les développeurs WeeChat. Que puis-je faire ?

Il y a plusieurs choses à faire (test, code, documentation, etc.)

Merci de prendre contact avec nous par IRC ou mail, consultez la page support ↗.

### 9.5. Puis-je donner de l’argent ou d’autres choses aux développeurs WeeChat ?

Vous pouvez donner de l’argent pour aider le développement. Plus de détails sur la page de dons ↗.