WeeChat 0.2.7-dev - Guide utilisateur

Client IRC rapide, léger et extensible

Sébastien Helleu

This manual is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

2007-09-17 15:36:18

Résumé

Ce manuel documente le client IRC WeeChat, il fait partie de WeeChat.

La dernière version de ce document peut être téléchargée sur cette page : http://weechat.flashtux.org/doc.php


Table des matières

1. Introduction
Description
Pré-requis
2. Installation
Paquets binaires
Paquet source
Sources GIT
3. Utilisation
Lancer WeeChat
Raccourcis clavier
La ligne de commande
Commandes WeeChat / IRC
Commandes WeeChat
Fonctions pour les touches
Commandes IRC
Fichier de configuration
Tube FIFO
4. Extensions
Les extensions dans WeeChat
Ecrire une extension
Fonctions de l'interface (API)
Compiler l'extension
Charger l'extension dans WeeChat
Exemple d'extension
Extension Charset
Configuration
FAQ
Extensions pour scripts
Charger / décharger des scripts
Syntaxe par langage
Interface WeeChat / scripts
5. Auteurs / Support
Auteurs
Contributeurs
Obtenir du support

Chapitre 1. Introduction

Table des matières

Description
Pré-requis

Ce chapitre décrit WeeChat et les pré-requis pour son installation.

Description

WeeChat (Wee Enhanced Environment for Chat) est un client IRC libre, rapide et léger, conçu pour différents systèmes d'exploitation.

Ses principales caractéristiques sont les suivantes :

  • connexion multi-serveurs (avec SSL, IPv6, proxy)

  • plusieurs interfaces : Curses, wxWidgets, Gtk et Qt

  • petit, rapide et léger

  • paramétrable et extensible avec des extensions et des scripts

  • conforme aux RFCs 1459, 2810, 2811, 2812 et 2813

  • multi plates-formes (GNU/L'index, *BSD, MacOS X, Windows et d'autres systèmes)

  • 100% GPL, logiciel libre

La page d'accueil de WeeChat est ici : http://weechat.flashtux.org

Pré-requis

Pour installer WeeChat, vous devez avoir :

  • un système GNU/Linux (avec le compilateur et les outils associés pour le paquet des sources)

  • droits "root" (pour installer WeeChat)

  • selon l'interface, une des bibliothèques suivantes :

    • Curses : la bibliothèque ncurses

    • Gtk : *** interface non développée ***

    • WxWidgets : *** interface non développée ***

    • Qt : *** interface non développée ***

Chapitre 2. Installation

Ce chapitre explique comment installer WeeChat.

Paquets binaires

Les paquets binaires sont disponibles pour les distributions suivantes :

  • Debian (ou toute distribution compatible Debian) : apt-get install weechat

  • Mandriva/RedHat (ou toute distribution compatible avec les RPM) : rpm -i /chemin/weechat-x.y.z-1.i386.rpm

  • Gentoo : emerge weechat

Pour les autres distributions supportées, merci de vous référer au manuel de la distribution pour la méthode d'installation.

Paquet source

Tapez simplement dans une console ou un terminal :

$ ./configure
$ make

Obtenez les droits root et installez WeeChat :

$ su
(entrez le mot de passe root)
# make install

Sources GIT

Attention : les sources GIT sont réservés aux utilisateurs avancés : il se peut que WeeChat ne compile pas et qu'il soit très instable. Vous êtes prévenus !

Pour récupérer les sources GIT, tapez cette commande :

$ git-clone git://git.sv.gnu.org/weechat.git

Exécutez ce script : ./autogen.sh

Suivez alors les instructions du paquet source (voir la section intitulée « Paquet source »)

Chapitre 3. Utilisation

Ce chapitre explique comment lancer WeeChat, les touches utilisées par défaut, les commandes internes et IRC, le fichier de configuration et l'utilisation du tube FIFO.

Lancer WeeChat

Paramètres de ligne de commande :

Paramètre Description
-a, --no-connect Supprimer la connexion automatique aux serveurs lors du démarrage
-c, --config Afficher l'aide sur le fichier de config (liste des options)
-d, --dir <répertoire> Définir le répertoire comme étant la base de WeeChat (utilisé pour les fichiers de configuration, logs, extensions et scripts de l'utilisateur). La valeur par défaut est "~/.weechat". NB: le répertoire est créé s'il n'est pas trouvé par WeeChat.
-f, --key-functions Afficher la liste des fonctions internes WeeChat pour les touches
-h, --help Afficher l'aide
-i, --irc-commands Afficher la liste des commandes IRC
-k, --keys Afficher les touches par défaut de WeeChat
-l, --license Afficher la licence de WeeChat
-p, --no-plugin Supprimer le chargement automatique des extensions au démarrage
-v, --version Afficher la version de WeeChat
-w, --weechat-commands Afficher la liste des commandes WeeChat

Il est également possible de passer une URL pour un ou plusieurs serveurs IRC, de la forme :

irc[6][s]://[pseudo[:mot_passe]@]irc.exemple.org[:port][/canal][,canal[...]

Exemple pour rejoindre #weechat et #toto sur le serveur "irc.freenode.net", port par défaut (6667), sous le pseudo "nono" :

$ weechat-curses irc://nono@irc.freenode.net/#weechat,#toto

Pour lancer WeeChat, tapez cette commande :

  • pour l'interface Curses : weechat-curses

  • pour l'interface Gtk : weechat-gtk

  • pour l'interface wxWidgets : weechat-wxwidgets

  • pour l'interface Qt : weechat-qt

Lorsque vous lancez WeeChat pour la première fois, un fichier de configuration par défaut est créé, avec les options par défaut. Le fichier de configuration par défaut est : "~/.weechat/weechat.rc"

Vous pouvez éditer ce fichier pour configurer WeeChat à votre convenance (SEULEMENT si WeeChat ne tourne pas), ou vous pouvez modifier les paramètres dans WeeChat avec la commande "/set" (voir la section intitulée « Commandes WeeChat »)

Raccourcis clavier

Touche Action
Flèche gauche / Ctrl + B Aller au caractère précédent sur la ligne de commande
Flèche droite / Ctrl + F Aller au caractère suivant sur la ligne de commande
Ctrl + flèche gauche Aller au mot précédent sur la ligne de commande
Ctrl + flèche droite Aller au mot suivant sur la ligne de commande
Home / Ctrl + A Aller au début de la ligne de commande
Ctrl + C puis B Insérer le code pour mettre le texte en gras.
Ctrl + C puis C Insérer le code pour écrire en couleur.
Ctrl + C puis O Insérer le code pour réinitaliser la couleur.
Ctrl + C puis R Insérer le code pour écrire en couleur inversée.
Ctrl + C puis U Insérer le code pour écrire en souligné.
End / Ctrl + E Aller à la fin de la ligne de commande
Ctrl + K Effacer du curseur jusqu'à la fin de la ligne de commande
Ctrl + L Réafficher toute la fenêtre
Ctrl + R Chercher du texte dans l'historique du tampon (deux appuis successifs pour rechercher du texte exact)
Ctrl + S puis Ctrl + U Positionner le marqueur de données non lues sur tous les tampons
Ctrl + T Inverser deux caractères
Ctrl + U Effacer du curseur jusqu'au début de la ligne de commande
Ctrl + W Effacer le mot précédent sur la ligne de commande
Ctrl + Y Coller le contenu du presse-papiers
Backspace / Ctrl + H Effacer le caractère précédent sur la ligne de commande
Delete / Ctrl + D Effacer le caractère suivant sur la ligne de commande
Tab / Shift + Tab Compléter la commande ou le pseudo (Tab de nouveau: trouver la complétion suivante)
Tout caractère Insérer le caractère à la position du curseur sur la ligne de commande
Entrée / Ctrl + J / Ctrl + M Exécuter la commande ou envoyer le message (en mode recherche: arrêter la recherche)
Flèche haut / flèche bas Rappeler les dernières commandes ou messages (en mode recherche: chercher en haut/bas)
Ctrl + flèche haut / Ctrl + flèche bas Rappeler les dernières commandes ou messages dans l'historique global (commun à tous les tampons)
PageUp / PageDown Monter / descendre d'une page dans l'historique du tampon
Alt + PageUp / Alt + PageDown Monter / descendre de quelques lignes dans l'historique du tampon
Alt + Home / Alt + End Aller au début / à la fin du tampon
F5 / Alt + flèche gauche Aller au tampon précédent
F6 / Alt + flèche droite Aller au tampon suivant
F7 Aller à la fenêtre précédente
F8 Aller à la fenêtre suivante
F9 / F10 Faire défiler le titre du canal
F11 / F12 Faire défiler la liste des pseudos
Alt + F11 / Alt + F12 Aller au début / à la fin de la liste des pseudos
Alt + A Sauter au prochain tampon avec activité (avec priorité : highlight, message, autre)
Alt + B Aller au mot précédent
Alt + D Effacer le mot suivant
Alt + F Aller au mot suivant
Alt + H Vider la hotlist (notification d'activité sur les autres tampons)
Alt + I Effacer le dernier message de la barre d'informations
Alt + J puis Alt + D Afficher le tampon des DCC
Alt + J puis Alt + L Sauter au dernier tampon
Alt + J puis Alt + P Sauter au tampon affiché précédemment
Alt + J puis Alt + R Sauter au tampon de données brutes IRC
Alt + J puis Alt + S Sauter au tampon du serveur
Alt + J puis Alt + X Sauter au premier canal du serveur suivant (ou tampon du serveur si aucun canal n'est ouvert)
Alt + chiffre (0-9) Sauter au tampon qui porte ce numéro (0 = 10)
Alt + J puis nombre (01-99) Sauter au tampon qui porte ce numéro
Alt + K Capturer une touche et insérer son code sur la ligne de commande
Alt + N Se positionner sur le highlight suivant
Alt + P Se positionner sur le highlight précédent
Alt + R Effacer entièrement la ligne de commande
Alt + S Changer de serveur sur le tampon des serveurs (si l'option "look_one_server_buffer" est activée)
Alt + U Se positionner sur la première ligne non lue du tampon
Alt + W puis Alt + flèche Sauter à une fenêtre avec une direction

La ligne de commande

La ligne de commande WeeChat (située en bas de la fenêtre) permet d'envoyer du texte sur les canaux et d'exécuter des commandes WeeChat ou IRC (voir la section intitulée « Commandes WeeChat / IRC »).

Les commandes débutent par un caractère "/", suivi du nom de la commande. Par exemple pour initier une conversation privée avec "toto" :

/query toto

Le texte envoyé à un canal est tout texte ne commençant pas par le caractère "/", par exemple pour envoyer "bonjour" sur le canal courant :

bonjour

Il est cependant possible de faire débuter un texte par "/" en le doublant. Par exemple pour envoyer le texte "/query toto" sur le canal courant :

//query toto

Si l'option d'envoi des couleurs IRC ("irc_colors_send") est activée, il est possible d'utiliser des codes couleur et attributs comme suit (appuyer sur Ctrl-C puis la lettre qui suit et éventuellement une valeur) :

Code Description
^Cb texte gras
^Ccxx couleur du texte "xx" (voir le tableau des couleurs ci-dessous)
^Ccxx,yy couleur du texte "xx" et du fond "yy" (voir le tableau des couleurs ci-dessous)
^Co désactiver la couleur et tous les attributs
^Cr vidéo inverse (inversion de la couleur d'écriture et du fond)
^Cu texte souligné

NB: le même code (sans le numéro pour ^Cc) peut être utilisé pour stopper l'attribut défini.

Les codes couleur pour ^Cc sont :

Code Couleur
00 blanc
01 noir
02 bleu foncé
03 vert foncé
04 rouge clair
05 rouge foncé
06 magenta
07 orange
08 jaune
09 vert clair
10 cyan
11 cyan clair
12 bleu clair
13 magenta clair
14 gris
15 gris clair (blanc)

Exemple : affichage de "bonjour tout le monde !" avec "bonjour" en bleu clair gras, et "tout le monde" en rouge clair souligné :

^Cc12^Cbbonjour^Cb^Cc04^Cu tout le monde^Cu^Cc !

Commandes WeeChat / IRC

Ce chapitre liste toutes les commandes WeeChat et IRC.

Commandes WeeChat

alias [nom_alias [commande [paramètres]]]

créer un alias pour une commande

 nom_alias: nom de l'alias
  commande: nom de la commande (commande WeeChat ou IRC, plusieurs commandes peuvent être séparées par des point-virgules)
paramètres: paramètres pour la commande

est remplacé par tous les paramètres.

Les variables $nick, $channel et $server sont remplacées par le pseudo/canal/serveur courant.

buffer [action [args] | nombre | [[serveur] [canal]]]

gestion des tampons

 action: action à effectuer:
   move: déplace le tampon dans la liste (peut être relatif, par exemple -1)
  close: ferme le tampon (le paramètre optionnel est le message de fin, pour un canal)
   list: liste les tampons ouverts (pas de paramètre affiche cette liste)
 notify: fixe le niveau de notification (0=jamais, 1=highlight, 2=1+msg, 3=2+join/part)
         (quand exécuté sur un tampon serveur, cela fixe le niveau de notification par défaut pour le serveur entier)
 scroll: fait défiler l'historique (peut être relatif, et peut se terminer par une lettre: s=sec, m=min, h=heure, d=jour, M=mois, y=année); s'il y a seulement une lettre, alors fait défiler jusqu'au début de cet élément

 nombre: saute au tampon qui a ce numéro
serveur,
  canal: saute au tampon par serveur et/ou nom de canal

Exemples :
     déplacer tampon: /buffer move 5
       fermer tampon: /buffer close c'est le message de départ
    niveau de notif.: /buffer notify 2
 défiler 1 jour haut: /buffer scroll 1d  ==  /buffer scroll -1d  ==  /buffer scroll -24h
    défiler au début
          de ce jour: /buffer scroll d
  défiler 15 min bas: /buffer scroll +15m
défiler 20 msgs haut: /buffer scroll -20
  aller sur #weechat: /buffer #weechat

builtin commande

lance une commande WeeChat/IRC interne (sans regarder les gestionnaires de commandes et les alias)

commande: commande à exécuter (un '/' est automatiquement ajouté s'il n'est pas trouvé au début de la commande)


clear [-all | numéro [numéro ...]]

effacer la/les fenêtre(s)

  -all: effacer tous les tampons
numéro: effacer un tampon par son numéro

connect [-all [-nojoin] | nom_serveur [nom_serveur ...] [-nojoin] | nom/IP [-port port] [-ipv6] [-ssl]]

se connecter à un/plusieurs serveur(s)

       -all: se reconnecter à tous les serveurs
nom_serveur: nom du serveur pour se connecter
    -nojoin: ne rejoindre aucun canal (même si l'autojoin est activé pour le serveur)
     nom/IP: nom/IP pour se connecter, en créant un serveur temporaire
       port: port pour le serveur (nombre entier, 6667 par défaut)
       ipv6: utiliser le protocole IPv6
        ssl: utiliser le protocole SSL

disconnect [-all | nom_serveur [nom_serveur...]]

se déconnecter d'un/plusieurs serveur(s)

       -all: se déconnecter de tous les serveurs
nom_serveur: nom du serveur pour se déconnecter

dcc action [pseudo [fichier]]

démarre le DCC (fichier ou discussion) ou ferme une discussion

 action: 'send' (envoi de fichier) ou 'chat' (discussion) ou 'close' (fermeture discussion)
 pseudo: pseudo pour envoyer le fichier ou discuter
fichier: nom du fichier (sur la machine locale)

debug dump | buffer | windows

affiche des messages de debogage

   dump: affiche les variables mémoire WeeChat dans le fichier log (les mêmes messages sont affichés lorsque WeeChat plante)
 buffer: affiche le contenu du tampon en valeurs hexadécimales dans le fichier log
windows: affiche l'arbre des fenêtres

help [commande]

afficher l'aide sur les commandes

commande: nom d'une commande WeeChat ou IRC

history [clear | valeur]

affiche l'historique des commandes du tampon

clear: effacer l'historique
valeur: nombre d'entrées dans l'historique à afficher

ignore [masque [[type | commande] [canal [serveur]]]]

ignorer des messages IRC et/ou des hôtes

  masque: pseudo ou hôte à ignorer
    type: type de message à ignorer (action, ctcp, dcc, pv)
commande: commande IRC
   canal: nom du canal pour le ignore
 serveur: nom du serveur pour le ignore

Pour chaque paramètre, '*' signifie tou(te)s.
Sans paramètres, la commande /ignore liste les ignore définis.

key [touche [fonction/commande]] [unbind touche] [functions] [call fonction ["params"]] [reset -yes]

associer/libérer des touches

   touche: voir ou associer cette touche à une fonction interne ou une commande (commençant par "/")
   unbind: supprimer l'association à une touche
functions: lister la liste des fonctions internes pour les associations de touches
     call: appeler une foonction par son nom (avec paramètres optionnels)
    reset: restaure les touches aux valeurs par défaut et supprime TOUTES les touches personnelles (utiliser avec précaution !)

plugin [list [nom]] | [listfull [nom]] | [load fichier] | [autoload] | [reload [nom]] | [unload [nom]]

liste/charge/décharge des extensions

    list: lister les extensions chargées
listfull: lister les extensions chargées avec de l'info détaillée pour chaque extension
    load: charger une extension
autoload: charger automatiquement les extensions dans un répertoire système ou utilisateur
  reload: recharger une extension (si pas de nom donné, décharger toutes les extensions, puis puis recharger automatiquement les extensions)
  unload: décharger une ou plusieurs exteneions

Sans paramètre, la commande /plugin liste les extensions chargées.

reconnect [-all [-nojoin] | nom_serveur [nom_serveur...] [-nojoin]]

se reconnecter à un/plusieurs serveur(s)

       -all: se reconnecter à tous les serveurs
nom_serveur: nom du serveur pour se reconnecter
    -nojoin: ne rejoindre aucun canal (même si l'autojoin est activé pour le serveur)

save [fichier]

sauvegarder la configuration sur disque

fichier: fichier pour sauvegarder la configuration

server [list [nom_serveur]] | [listfull [nom_serveur]] | [add nom_serveur nom/IP [-port port] [-temp] [-auto | -noauto] [-ipv6] [-ssl] [-pwd mot_de_passe] [-nicks pseudo1 pseudo2 pseudo3] [-username nom_utilisateur] [-realname nom_réel] [-command commande] [-autojoin canal[,canal]] ] | [copy nom_serveur nouveau_nom_serveur] | [rename nom_serveur nouveau_nom_serveur] | [keep nom_serveur] | [del nom_serveur]

liste, ajoute ou retire des serveurs

           list: afficher les serveurs (pas de paramètre implique cette liste)
       listfull: afficher les serveurs avec de l'info détaillée pour chaque
            add: créer un nouveau serveur
    nom_serveur: nom du serveur, pour usage interne et affichage
         nom/IP: nom ou adresse IP du serveur
           port: port pour le serveur (nombre entier, 6667 par défaut)
           temp: créer un serveur temporaire (non sauvé dans le fichier de configuration)
           auto: se connecter automatiquement au serveur quand WeeChat démarre
         noauto: ne pas se connecter au serveur quand WeeChat démarre (par défaut)
           ipv6: utiliser le protocole IPv6
            ssl: utiliser le protocole SSL
   mot_de_passe: mot de passe pour le serveur
        pseudo1: premier pseudo pour le serveur
        pseudo2: pseudo alternatif pour le serveur
        pseudo3: second pseudo alternatif pour le serveur
nom_utilisateur: nom d'utilisateur
       nom_réel: nom réel de l'utilisateur
           copy: dupliquer un serveur
         rename: renommer un serveur
           keep: garder le serveur dans le fichier de configuration (pour les serveurs temporaires seulement)
            del: supprimer un serveur
        deloutq: supprimer la file d'attente des messages sortants pour tous les serveurs (tous les messages que WeeChat est actuellement en train d'envoyer)

set [option [ = valeur]]

modifier des options de configuration

option: nom de l'option (si le nom est complet et qu'aucune valeur n'est donnée, alors l'aide sur l'option est affichée)
valeur: valeur pour l'option

L'option peut être: nomserveur.server_xxx où "nomserveur" est le nom interne d'un serveur et "xxx" une option pour ce serveur.

setp [option [ = valeur]]

modifier des options de configuration des extensions

option: nom d'une option d'extension
valeur: valeur pour l'option

L'option est au format: extension.option, par exemple: perl.monscript.variable1

unalias nom_alias

supprimer un alias

nom_alias: nom de l'alias à supprimer

unignore [nombre | [masque [[type | commande] [canal [serveur]]]]]

supprimer le ignore des messages IRC et/ou des hôtes

  nombre: numéro de ignore à supprimer (le nombre est affiché sur la liste des ignore)
  masque: pseudo ou hôte à ignorer
    type: type de message à ignorer (action, ctcp, dcc, pv)
commande: commande IRC
   canal: nom du canal pour le ignore
 serveur: nom du serveur pour le ignore

Pour chaque paramètre, '*' signifie tou(te)s.
Sans paramètre, /ignore liste les ignore définis.

upgrade [chemin_vers_binaire]

mettre à jour WeeChat sans se déconnecter des serveurs

chemin_vers_binaire: chemin vers le binaire WeeChat (par défaut le binaire courant)

Cette commande lance à nouveau un binaire WeeChat, il doit donc avoir été compilé ou installé via un gestionnaire de paquet avant de lancer cette commande.

uptime [-o]

montrer l'uptime de WeeChat

-o: envoyer l'uptime sur le canal courant en tant que message IRC

window [list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv [ptc] | resize pct | merge [all]]

gestion des fenêtres

  list: liste les fenêtres ouvertes (pas de paramètre affiche cette liste)
    -1: saute à la fenêtre précédente
    +1: saute à la fenêtre suivante
    b#: saute à la fenêtre affichant le tampon #
    up: saute à la fenêtre au dessus
  down: saute à la fenêtre au dessous
  left: saute à la fenêtre à gauche
 right: saute à la fenêtre à droite
splith: éclate la fenêtre en deux horizontalement
splitv: éclate la fenêtre en deux verticalement
resize: redimensionne une fenêtre, la nouvelle taille est <pct> pourcentage de la fenêtre parent
 merge: fusionne la fenêtre avec une autre

Pour splith et splitv, pct est un pourcentage qui représente la taille de la nouvelle fenêtre, calculée par rapport à la taille de la fenêtre courante. Par exemple 25 signifie créer une fenêtre qui a pour taille: taille_courante / 4

Fonctions pour les touches

Fonction Description
return terminer la ligne
tab compléter le mot
tab_previous trouver le mot complété précédent
backspace effacer le caractère précédent
delete effacer le caractère suivant
delete_end_line effacer jusqu'à la fin de la ligne
delete_beginning_line effacer jusqu'au début de la ligne
delete_line effacer la ligne entière
delete_previous_word effacer le mot précédent
delete_next_word effacer le mot suivant
clipboard_paste coller le contenu du presse-papier
transpose_chars inverser les caractères
home aller au début de la ligne
end aller à la fin de la ligne
left se déplacer d'un caractère à gauche
previous_word se déplacer au mot précédent
right se déplacer d'un caractère à droite
next_word se déplacer au mot suivant
up appeler la commande précédente dans l'historique
up_global appeler la commande précédente dans l'historique global
down appeler la commande suivante dans l'historique
down_global appeler la commande suivante dans l'historique global
page_up faire défiler d'une page vers le haut
page_down faire défiler d'une page vers le bas
scroll_up faire défiler de quelques lignes vers le haut
scroll_down faire défiler de quelques lignes vers le bas
scroll_top faire défiler jusqu'au début du tampon
scroll_bottom faire défiler jusqu'à la fin du tampon
scroll_topic_left faire défiler le titre vers la gauche
scroll_topic_right faire défiler le titre vers la droite
nick_beginning afficher le début de la liste des pseudos
nick_end afficher la fin de la liste des pseudos
nick_page_up faire défiler la liste des pseudos d'une page vers le haut
nick_page_down faire défiler la liste des pseudos d'une page vers le bas
jump_smart sauter au tampon avec de l'activité
jump_dcc sauter au tampon DCC
jump_raw_data sauter au tampon IRC brut
jump_last_buffer sauter au dernier tampon
jump_previous_buffer sauter au tampon précédent
jump_server sauter au tampon du serveur
jump_next_server sauter au prochain serveur
switch_server bascule de serveur actif sur le tampon des serveurs
scroll_previous_highlight faire défiler jusqu'au highlight précédent du tampon
scroll_next_highlight faire défiler jusqu'au highlight suivant du tampon
scroll_unread faire défiler jusqu'à la première ligne non lue du tampon
set_unread positionner le marqueur de données non lues sur tous les tampons
hotlist_clear effacer la liste d'activité
infobar_clear effacer la barre d'infos
refresh rafraîchir l'écran
grab_key capturer une touche
insert insérer une chaîne dans la ligne de commande
search_text recherche de texte dans l'historique du tampon

Commandes IRC

admin [cible]

trouver les informations sur l'administrateur du serveur

cible: serveur

ame message

envoyer une action CTCP à tous les canaux de tous les serveurs connectés

message: message à envoyer

amsg texte

envoyer un message à tous les canaux de tous les serveurs connectés

texte: texte à envoyer

away [-all] [message]

basculer le statut absent

   -all: basculer le statut absent sur tous les serveurs connectés
message: message pour l'absence (si pas de message donné, le statut d'absence est supprimé)

ban [canal] [pseudo [pseudo ...]]

bannit des pseudos ou hôtes

 canal: nom du canal pour le bannissement
pseudo: pseudo ou hôte pour le bannissement

ctcp cible type [arguments]

envoyer un message CTCP (Client-To-Client Protocol)

    cible: pseudo à qui envoyer le CTCP
     type: type de CTCP (exemples: "version", "ping", etc...)
arguments: arguments pour le CTCP

cycle [canal[,canal]] [message_de_fin]

quitter et rejoindre un canal

         canal: canal pour le cycle
message_de_fin: message de fin (affiché aux autres utilisateurs)

dehalfop [pseudo [pseudo]]

retire le statut de demi-opérateur du canal à/aux pseudo(s)

deop [pseudo [pseudo]]

retire le statut d'opérateur du canal à/aux pseudo(s)

devoice [pseudo [pseudo]]

retire la voix du/des pseudo(s)

die

arrêter le serveur

halfop [pseudo [pseudo]]

donner le statut de demi-opérateur à un/des pseudo(s)

info [cible]

voir les informations décrivant le serveur

cible: nom du serveur

invite pseudo canal

inviter un pseudo sur un canal

 pseudo: pseudo à inviter
channel: canal pour l'invitation

ison pseudo [pseudo ...]

vérifier si un pseudo est actuellement sur IRC

pseudo: pseudo

join canal[,canal] [clé[,clé]]

joindre un canal

canal: nom du canal à rejoindre
  clé: clé pour rejoindre le canal

kick [canal] pseudo [commentaire]

retirer par la force un utilisateur d'un canal

      canal: canal où l'utilisateur se trouve
     pseudo: pseudo à éliminer
commentaire: commentaire pour l'élimination

kickban [canal] pseudo [commentaire]

retirer par la force un pseudo d'un canal et le bannir

      canal: canal où l'utilisateur se trouve
     pseudo: pseudo à éliminer et bannir
commentaire: commentaire pour l'élimination

kill pseudo commentaire

fermer la connexion client-serveur

     pseudo: pseudo
commentaire: commentaire pour la mort

links [[serveur] masque_serveur]

lister tous les noms de serveurs connus du serveur qui répondent à la requête

       serveur: ce serveur doit répondre à la requête
masque_serveur: liste des serveurs correspondant au masque

list [canal[,canal] [serveur]]

lister les canaux et leur sujet

canal: canal à lister (une expression régulière est acceptée)
serveur: nom du serveur

lusers [masque [cible]]

obtenir des statistiques sur la taille du réseau IRC

masque: serveurs qui correspondent au masque seulement
 cible: serveur pour faire suivre la requête

me message

envoyer une action CTCP au canal courant

message: message à envoyer

mode { canal {[+|-]|o|p|s|i|t|n|b|v} [limite] [utilisateur] [masque de banissement] } | { pseudo {[+|-]|i|w|s|o} }

changer le mode du canal ou de l'utilisateur

modes de canaux :
  canal: nom du canal à modifier
  o: donner/reprendre le statut privilégié d'opérateur
  p: indicateur de canal privé
  s: indicateur de canal secret
  i: indicateur de canal avec invitation seulement
  t: le titre est modifiable seulement par un opérateur du canal
  n: aucun message au canal depuis l'extérieur
  m: canal modéré
  l: fixer la limite d'utilisateurs pour le canal
  b: paramétrer un masque de banissement pour garder des utilisateurs dehors
  e: paramétrer un masque d'exception
  v: donner/reprendre la possibilité de parler sur un canal modéré
  k: définir une clé (mot de passe) pour accéder au canal
modes utilisateur :
  pseudo: pseudo à modifier
  i: marquer un utilisateur comme invisible
  s: marquer un utilisateur pour recevoir les notices du serveur
  w: l'utilisateur reçoit les wallops
  o: drapeau opérateur

motd [cible]

obtenir le message du jour

cible: nom du serveur

msg cible[,cible] texte

envoyer un message à un pseudo ou canal

cible: pseudo ou canal (peut-être un masque, '*' = canal courant)
texte: texte à envoyer

names [canal[,canal]]

lister les pseudos sur des canaux

canal: nom du canal

nick [-all] pseudo

changer le pseudo courant

  -all: définir le nouveau pseudo sur tous les serveurs connectés
pseudo: nouveau pseudo

notice pseudo texte

envoyer un message notice à un utilisateur

pseudo: pseudo cible pour la notice
 texte: texte à envoyer

op pseudo [pseudo]

donner le statut opérateur à un/des pseudo(s)

oper utilisateur mot_de_passe

obtenir le statut d'opérateur

utilisateur/mot_de_passe: utilisé pour obtenir les privilèges sur le serveur IRC courant

part [canal[,canal]] [message_de_fin]

quitter un canal

         canal: canal à quitter
message_de_fin: message de fin (affiché aux autres utilisateurs)

ping serveur1 [serveur2]

pinguer un serveur

serveur1: serveur à pinguer
serveur2: faire suivre le ping à ce serveur

pong démon [démon2]

répondre à un message ping

 démon: démon qui a répondu au message Ping
démon2: faire suivre le message à ce démon

query pseudo [texte]

envoyer un message privé à un pseudo

pseudo: pseudo pour la conversation privée
 texte: texte à envoyer

quit [message_de_fin]

fermer toutes les connexions et quitter

message_de_fin: message de fin (affiché aux autres utilisateurs)

quote données

envoyer des données brutes au serveur sans analyse

données: données brutes à envoyer

rehash

demander au serveur de recharger son fichier de configuration

restart

demander au serveur de redémarrer

service pseudo réservé distribution type réservé info

enregister un nouveau service

distribution: visibilité du service
        type: réservé pour une utilisation future

servlist [masque [type]]

lister les services actuellement connectés au réseau

masque: lister seulement les services qui correspondent à ce masque
  type: lister seulement les services de ce type

squery service texte

envoyer un message à un service

service: nom du service
texte: texte à envoyer

squit serveur commentaire

déconnecter les liens vers un serveur

serveur: nom du serveur
commentaire: commentaire pour quitter

stats [requête [serveur]]

demander des statistiques sur le serveur

requête: c/h/i/k/l/m/o/y/u (voir la RFC1459)
serveur: nom du serveur

summon utilisateur [cible [canal]]

envoyer aux utilisateurs d'un serveur IRC un message leur demandant de rejoindre IRC

utilisateur: nom d'utilisateur
      cible: nom du serveur
      canal: nom du canal

time [cible]

demander l'heure locale de serveur

cible: demander l'heure de ce serveur

topic [canal] [titre]

recevoir/définir le titre du canal

canal: nom du canal
titre: nouveau titre pour le canal (si le titre est "-delete" alors le titre est supprimé)

trace [cible]

trouver le chemin jusqu'à un serveur spécifique

cible: serveur

unban [canal] pseudo [pseudo ...]

supprime le bannissement sur des pseudos ou hôtes

 canal: nom du canal pour supprimer le bannissement
pseudo: pseudo ou hôte pour supprimer le bannissement

userhost pseudo [pseudo ...]

retourne une liste d'informations sur des pseudos

pseudo: pseudo

users [cible]

liste des utilisateurs connectés au serveur

cible: serveur

version [serveur | pseudo]

retourne la version du pseudo ou du serveur (courant ou spécifié)

serveur: nom du serveur
 pseudo: pseudo

voice [pseudo [pseudo]]

donne la voix à/aux pseudo(s)

wallops texte

envoyer un message à tous les utilisateurs connectés qui ont activé le mode utilisateur 'w' pour eux-mêmes

texte à envoyer

who [masque ["o"]]

génère une requête qui retourne une liste d'information

masque: information qui correspond à ce masque uniquement
     o: seul les opérateurs sont retournés correspondant au masque fourni

whois [serveur] pseudo[,pseudo]

demande les informations sur le(s) utilisateur(s)

serveur: nom du serveur
 pseudo: pseudo (peut être un masque)

whowas pseudo [,pseudo [,pseudo ...]] [nombre [cible]]

demander de l'information sur un pseudo qui n'existe plus

pseudo: pseudo à chercher
nombre: nombre de réponses à retourner (recherche complète si nombre négatif)
 cible: la réponse doit correspondre à ce masque

Fichier de configuration

Liste des options du fichier de configuration :

Option Type Valeurs Défaut Description
look_save_on_exit booléen 'on' ou 'off' 'on' Sauvegarder la configuration en quittant
look_set_title booléen 'on' ou 'off' 'on' Définit le titre de la fenêtre (terminal pour l'interface Curses) avec le nom et la version
look_startup_logo booléen 'on' ou 'off' 'on' Afficher le logo WeeChat au démarrage
look_startup_version booléen 'on' ou 'off' 'on' Afficher la version de WeeChat au démarrage
look_weechat_slogan chaîne toute chaîne 'the geekest IRC client!' Slogan WeeChat (si vide, le slogan ne sera pas utilisé)
look_one_server_buffer booléen 'on' ou 'off' 'off' Utiliser le même tampon pour tous les serveurs
look_open_near_server booléen 'on' ou 'off' 'off' Ouvrir les nouveaux canaux/privés près du serveur
look_scroll_amount entier entre 1 et 2147483647 3 Nombre de lignes pour le défilement avec scroll_up et scroll_down
look_buffer_timestamp chaîne toute chaîne '[%H:%M:%S]' Format de date/heure pour les tampons
look_color_nicks_number entier entre 1 et 10 10 Nombre de couleurs à utiliser pour les couleurs des pseudos
look_color_actions booléen 'on' ou 'off' 'on' Afficher les actions avec différentes couleurs
look_nicklist booléen 'on' ou 'off' 'on' Afficher la fenêtre des pseudos (pour les fenêtres de canaux)
look_nicklist_position chaîne 'left', 'right', 'top', 'bottom' 'right' Position de la fenêtre des pseudos (haut (top), gauche (left), droite (right, par défaut), bas (bottom))
look_nicklist_min_size entier entre 0 et 100 0 Taille minimum pour la fenêtre des pseudos (largeur ou hauteur, selon look_nicklist_position (0 = pas de taille minimum))
look_nicklist_max_size entier entre 0 et 100 0 Taille maximum pour la fenêtre des pseudos (largeur ou hauteur, selon look_nicklist_position (0 = pas de taille maximum; si min = max et > 0, alors la taille est fixe))
look_nicklist_separator booléen 'on' ou 'off' 'on' Séparateur entre la discussion et la liste de pseudos
look_no_nickname chaîne toute chaîne '-cmd-' Texte à afficher en lieu et place du pseudo lorsque la connexion n'est pas active
look_nickmode booléen 'on' ou 'off' 'on' Afficher le mode du pseudo ((half)op/voice) devant chaque utilisateur
look_nickmode_empty booléen 'on' ou 'off' 'off' Afficher un espace si le mode du pseudo n'est pas (half)op/voice
look_nick_prefix chaîne toute chaîne '' Texte à afficher avant le pseudo dans la fenêtre de discussion
look_nick_suffix chaîne toute chaîne ' |' Texte à afficher après le pseudo dans la fenêtre de discussion
look_align_nick chaîne 'none', 'left', 'right' 'right' Alignement des pseudos (taille fixe pour les pseudos dans la fenêtre de discussion (none, left, right))
look_align_other booléen 'on' ou 'off' 'on' Alignement pour les autres messages (ne commençant pas par un pseudo)
look_align_size entier entre 8 et 64 14 Taille pour l'alignement des pseudos et autres messages
look_align_size_max entier entre 8 et 64 20 Taille maximum pour l'alignement des pseudos et autres messages (doit être >= à look_align_size)
look_align_text_offset entier entre -1 et 64 -1 Décalage pour aligner les lignes des messages (exceptées les premières lignes), par défaut -1 (aligner après le pseudo), une valeur nulle ou positive est le décalage après le début de la ligne
look_nick_completor chaîne toute chaîne ':' La chaîne affichée après la complétion des pseudos
look_nick_completion_ignore chaîne toute chaîne '[]-^' Caractères à ignorer pour la complétion des pseudos
look_nick_completion_smart booléen 'on' ou 'off' 'on' Complétion intelligente pour les pseudos (complète d'abord avec les personnes qui ont parlé récemment)
look_nick_complete_first booléen 'on' ou 'off' 'off' Compléter seulement avec le premier pseudo trouvé
look_infobar booléen 'on' ou 'off' 'on' Active la barre d'infos
look_infobar_timestamp chaîne toute chaîne '%B, %A %d %Y' Format de date/heure dans la barre d'infos
look_infobar_seconds booléen 'on' ou 'off' 'on' Afficher les secondes pour l'heure dans la barre d'infos
look_infobar_delay_highlight entier entre 0 et 2147483647 7 Délai (en secondes) pour la notification des messages dans la barre d'infos (0 = désactiver les notifications dans la barre d'infos)
look_hotlist_names_count entier entre 0 et 32 3 Nombre maximum de noms dans la liste d'activité (0 = pas de nom affiché, seulement les numéros de tampons)
look_hotlist_names_level entier entre 1 et 15 12 Niveau pour l'affichage des noms dans la liste d'activité (combinaison de: 1=join/part, 2=message, 4=privé, 8=highlight, par exemple: 12=privé+highlight)
look_hotlist_names_length entier entre 0 et 32 0 Nombre maximum des noms dans la liste d'activité (0 = pas de limite)
look_hotlist_sort chaîne 'group_time_asc', 'group_time_desc', 'group_number_asc', 'group_number_desc', 'number_asc', 'number_desc' 'group_time_asc' Type de tri pour la liste d'activité (group_time_asc (par défaut), group_time_desc, group_number_asc, group_number_desc, number_asc, number_desc)
look_day_change booléen 'on' ou 'off' 'on' Affiche un message quand le jour change
look_day_change_timestamp chaîne toute chaîne '%a, %d %b %Y' Format de date pour la date affichée quand le jour a changé
look_read_marker caractère tout caractère ' ' Utiliser un marqueur sur les serveurs/canaux pour montrer la première ligne non lue
look_input_format chaîne toute chaîne '[%n(%m)] ' Format pour l'invite de la zone de saisie ('%c' est remplacé par le canal ou serveur, '%n' par le pseudo et '%m' par les modes du pseudo)
look_paste_max_lines entier entre 0 et 2147483647 3 Nombre maximum de lignes pour la détection de collage sans demander à l'utilisateur (0 = désactiver cette fonctionnalité)
col_real_white booléen 'on' ou 'off' 'off' Si activé, utilise la vraie couleur blanche, désactivé par défaut pour les terminaux avec un fond blanc (si vous n'utilisez jamais de fond blanc, vous devriez activer cette option pour voir du vrai blanc au lieu de la couleur d'avant plan par défaut du terminal)
col_separator couleur couleur Curses ou Gtk 'blue' Couleur pour les séparateurs de fenêtres (quand divisé)
col_title couleur couleur Curses ou Gtk 'default' Couleur pour la barre de titre
col_title_more couleur couleur Curses ou Gtk 'lightmagenta' Couleur pour les '+' lors du défilement du titre
col_title_bg couleur couleur Curses ou Gtk 'blue' Couleur de fond pour la barre de titre
col_chat couleur couleur Curses ou Gtk 'default' Couleur pour le texte de discussion
col_chat_time couleur couleur Curses ou Gtk 'default' Couleur pour l'heure dans la fenêtre de discussion
col_chat_time_sep couleur couleur Curses ou Gtk 'brown' Couleur pour la séparation de l'heure (fenêtre de discussion)
col_chat_prefix1 couleur couleur Curses ou Gtk 'lightcyan' Couleur pour le 1er et le 3ème caractère du préfixe
col_chat_prefix2 couleur couleur Curses ou Gtk 'white' Couleur pour le caractère du milieu du préfixe
col_chat_server couleur couleur Curses ou Gtk 'brown' Couleur pour le nom du serveur
col_chat_join couleur couleur Curses ou Gtk 'lightgreen' Couleur pour la flèche du join (préfixe)
col_chat_part couleur couleur Curses ou Gtk 'lightred' Couleur pour la flèche du part/quit (préfixe)
col_chat_nick couleur couleur Curses ou Gtk 'lightcyan' Couleur pour les pseudos dans les actions (fenêtre de discussion)
col_chat_host couleur couleur Curses ou Gtk 'cyan' Couleur pour les hôtes (fenêtre de discussion)
col_chat_channel couleur couleur Curses ou Gtk 'white' Couleur pour les canaux dans les actions (fenêtre de discussion)
col_chat_dark couleur couleur Curses ou Gtk 'green' Couleur pour les séparateurs sombres (fenêtre de discussion)
col_chat_highlight couleur couleur Curses ou Gtk 'yellow' Couleur pour le pseudo surligné (fenêtre de discussion)
col_chat_bg couleur couleur Curses ou Gtk 'default' Couleur de fond pour la fenêtre de discussion
col_chat_read_marker couleur couleur Curses ou Gtk 'yellow' Couleur pour le marqueur de données non lues
col_chat_read_marker_bg couleur couleur Curses ou Gtk 'magenta' Couleur de fond pour le marqueur de données non lues
col_status couleur couleur Curses ou Gtk 'default' Couleur pour la barre de statut
col_status_delimiters couleur couleur Curses ou Gtk 'cyan' Couleur pour les délimiteurs de la barre de statut
col_status_channel couleur couleur Curses ou Gtk 'white' Couleur pour le canal courant dans la barre de statut
col_status_data_msg couleur couleur Curses ou Gtk 'yellow' Couleur pour une fenêtre avec de nouvelles infos (barre de statut)
col_status_private couleur couleur Curses ou Gtk 'lightmagenta' Couleur pour une fenêtre avec un message privé (barre de statut)
col_status_highlight couleur couleur Curses ou Gtk 'lightred' Couleur pour une fenêtre avec un highlight (barre de statut)
col_status_data_other couleur couleur Curses ou Gtk 'default' Couleur pour une fenêtre avec des nouvelles données (pas des infos) (barre de statut)
col_status_more couleur couleur Curses ou Gtk 'white' Couleur pour une fenêtre avec des nouvelles données (barre de statut)
col_status_bg couleur couleur Curses ou Gtk 'blue' Couleur de fond pour la fenêtre de statut
col_infobar couleur couleur Curses ou Gtk 'black' Couleur pour la barre d'infos
col_infobar_delimiters couleur couleur Curses ou Gtk 'blue' Couleur pour les délimiteurs de la barre d'infos
col_infobar_highlight couleur couleur Curses ou Gtk 'white' Couleur pour la notification dans la barre d'infos
col_infobar_bg couleur couleur Curses ou Gtk 'cyan' Couleur de fond pour la fenêtre de barre d'infos
col_input couleur couleur Curses ou Gtk 'default' Couleur pour le texte saisi
col_input_server couleur couleur Curses ou Gtk 'brown' Couleur pour le texte saisi (nom du serveur)
col_input_channel couleur couleur Curses ou Gtk 'white' Couleur pour le texte saisi (nom du canal)
col_input_nick couleur couleur Curses ou Gtk 'lightcyan' Couleur pour le texte saisi (pseudo)
col_input_delimiters couleur couleur Curses ou Gtk 'cyan' Couleur pour le texte saisi (délimiteurs)
col_input_text_not_found couleur couleur Curses ou Gtk 'red' Couleur pour le texte non trouvé
col_input_actions couleur couleur Curses ou Gtk 'lightgreen' Couleur pour les actions dans la fenêtre de saisie
col_input_bg couleur couleur Curses ou Gtk 'default' Couleur de fond pour la fenêtre de saisie
col_nick couleur couleur Curses ou Gtk 'default' Couleur pour les pseudos
col_nick_away couleur couleur Curses ou Gtk 'cyan' Couleur pour les pseudos absents
col_nick_chanowner couleur couleur Curses ou Gtk 'lightgreen' Couleur pour le symbole propriétaire du canal (spécifique à unrealircd)
col_nick_chanadmin couleur couleur Curses ou Gtk 'lightgreen' Couleur pour le symbole administrateur du canal (spécifique à unrealircd)
col_nick_op couleur couleur Curses ou Gtk 'lightgreen' Couleur pour le symbole opérateur
col_nick_halfop couleur couleur Curses ou Gtk 'lightmagenta' Couleur pour le symbole demi-opérateur
col_nick_voice couleur couleur Curses ou Gtk 'yellow' Couleur pour le symbole voix
col_nick_user couleur couleur Curses ou Gtk 'blue' Couleur pour le symbole utilisateur
col_nick_more couleur couleur Curses ou Gtk 'lightmagenta' Couleur pour les '+' lors du défilement des pseudos
col_nick_sep couleur couleur Curses ou Gtk 'blue' Couleur pour le séparateur de pseudos
col_nick_self couleur couleur Curses ou Gtk 'white' Couleur pour le pseudo local
col_nick_color1 couleur couleur Curses ou Gtk 'cyan' Couleur pour le pseudo
col_nick_color2 couleur couleur Curses ou Gtk 'magenta' Couleur pour le pseudo
col_nick_color3 couleur couleur Curses ou Gtk 'green' Couleur pour le pseudo
col_nick_color4 couleur couleur Curses ou Gtk 'brown' Couleur pour le pseudo
col_nick_color5 couleur couleur Curses ou Gtk 'lightblue' Couleur pour le pseudo
col_nick_color6 couleur couleur Curses ou Gtk 'default' Couleur pour le pseudo
col_nick_color7 couleur couleur Curses ou Gtk 'lightcyan' Couleur pour le pseudo
col_nick_color8 couleur couleur Curses ou Gtk 'lightmagenta' Couleur pour le pseudo
col_nick_color9 couleur couleur Curses ou Gtk 'lightgreen' Couleur pour le pseudo
col_nick_color10 couleur couleur Curses ou Gtk 'blue' Couleur pour le pseudo
col_nick_private couleur couleur Curses ou Gtk 'default' Couleur pour l'autre pseudo dans la fenêtre privée
col_nick_bg couleur couleur Curses ou Gtk 'default' Couleur de fond pour les pseudos
col_chat_dcc_selected couleur couleur Curses ou Gtk 'white' Couleur pour le DCC sélectionné (fenêtre de discussion)
col_dcc_waiting couleur couleur Curses ou Gtk 'lightcyan' Couleur pour le statut dcc "attente"
col_dcc_connecting couleur couleur Curses ou Gtk 'yellow' Couleur pour le statut dcc "connexion"
col_dcc_active couleur couleur Curses ou Gtk 'lightblue' Couleur pour le statut dcc "actif"
col_dcc_done couleur couleur Curses ou Gtk 'lightgreen' Couleur pour le statut dcc "terminé"
col_dcc_failed couleur couleur Curses ou Gtk 'lightred' Couleur pour le statut dcc "échoué"
col_dcc_aborted couleur couleur Curses ou Gtk 'lightred' Couleur pour le statut dcc "interrompu"
history_max_lines entier entre 0 et 2147483647 4096 Nombre maximum de lignes dans l'historique pour un serveur/fenêtre/fenêtre privée (0 = sans limite)
history_max_commands entier entre 0 et 2147483647 100 Nombre maximum de commandes utilisateur dans l'historique (0 = sans limite)
history_display_default entier entre 0 et 2147483647 5 Nombre maximum de commandes à afficher par défaut dans le listing d'historique (0 = sans limite)
log_auto_server booléen 'on' ou 'off' 'off' Enregistrer automatiquement les messages du serveur
log_auto_channel booléen 'on' ou 'off' 'off' Enregistrer automatiquement les conversations des canaux
log_auto_private booléen 'on' ou 'off' 'off' Enregistrer automatiquement les conversations privées
log_plugin_msg booléen 'on' ou 'off' 'off' Enregistrer les messages des plugins (scripts)
log_path chaîne toute chaîne '%h/logs/' Chemin pour les conversations sauvegardées par WeeChat ('%h' sera remplacé par le répertoire de base WeeChat, par défaut: ~/.weechat)
log_timestamp chaîne toute chaîne '%Y %b %d %H:%M:%S' Format de date/heure pour les conversations sauvegardées (voir strftime(3) pour le format de date/heure)
log_hide_nickserv_pwd booléen 'on' ou 'off' 'on' Masquer le mot de passe affiché par nickserv
irc_display_away chaîne 'off', 'local', 'channel' 'off' Affiche un message pour l'absence/le retour
irc_show_away_once booléen 'on' ou 'off' 'on' Voir le message d'absence distant une seule fois en privé
irc_default_msg_part chaîne toute chaîne 'WeeChat %v' Message par défaut pour le part (quitte un canal) ('%v' sera remplacé par la version de WeeChat dans la chaîne)
irc_default_msg_quit chaîne toute chaîne 'WeeChat %v' Message de fin par défaut ('%v' sera remplacé par la version de WeeChat dans la chaîne)
irc_notice_as_pv booléen 'on' ou 'off' 'off' Afficher les notices comme des messages privés
irc_away_check entier entre 0 et 2147483647 0 Intervalle entre deux vérifications des absences (en minutes, 0 = ne jamais vérifier)
irc_away_check_max_nicks entier entre 0 et 2147483647 0 Ne pas vérifier les pseudos absents lorsqu'il y a un nombre important de pseudos (0 = pas de limite)
irc_lag_check entier entre 30 et 2147483647 60 Intervalle entre deux mesures de lag (en secondes)
irc_lag_min_show entier entre 0 et 2147483647 1 Lag minimum à afficher (en secondes)
irc_lag_disconnect entier entre 0 et 2147483647 5 Déconnexion après un lag important (en minutes, 0 = ne jamais se déconnecter)
irc_anti_flood entier entre 0 et 5 2 Anti-flood: nombre de secondes entre deux messages utilisateur (0 = pas d'anti-flood)
irc_fifo_pipe booléen 'on' ou 'off' 'off' Créer un tube FIFO pour le contrôle à distance
irc_highlight chaîne toute chaîne '' Liste des mots pour la notification (séparés par des virgules, la comparaison ne tient pas compte de la casse, les mots peuvent commencer ou se terminer par "*" pour une comparaison partielle)
irc_colors_receive booléen 'on' ou 'off' 'on' Si désactivé, les codes couleurs des messages entrants sont ignorés
irc_colors_send booléen 'on' ou 'off' 'on' Autorise l'utilisateur à envoyer des couleurs avec des codes spéciaux (^Cb=gras, ^Cxx=couleur, ^Ccxx,yy=couleur+fond, ^Cu=souligné, ^Cr=inversé)
irc_send_unknown_commands booléen 'on' ou 'off' 'off' Envoie les commandes inconnues au serveur IRC
dcc_auto_accept_files booléen 'on' ou 'off' 'off' Accepte automatiquement les fichiers dcc entrants
dcc_auto_accept_chats booléen 'on' ou 'off' 'off' Accepte automatiquement les demandes de discussion dcc (à utiliser avec précaution !)
dcc_timeout entier entre 5 et 2147483647 300 Délai d'attente pour les requêtes dcc (en secondes)
dcc_blocksize entier entre 1024 et 102400 65536 Taille de bloc pour les paquets dcc en octets (défaut: 65536)
dcc_fast_send booléen 'on' ou 'off' 'on' N'attend pas les accusés de réception lors de l'envoi de fichier
dcc_port_range chaîne toute chaîne '' Restreint le dcc sortant à utiliser des ports dans la plage donnée (pratique pour le NAT) (syntaxe: un port simple, par exemple 5000, une plage de ports, par exemple 5000-5015, si non renseigné tout port peut être utilisé)
dcc_own_ip chaîne toute chaîne '' Adresse IP ou DNS utilisée pour le dcc sortant (si non renseigné, l'interface IP locale est utilisée)
dcc_download_path chaîne toute chaîne '%h/dcc' Chemin pour écrire les fichiers reçus par dcc (par défaut: répertoire de l'utilisateur)
dcc_upload_path chaîne toute chaîne '~' Chemin pour lire les fichiers lorsqu'ils sont envoyés par dcc (quand aucun chemin n'est spécifié)
dcc_convert_spaces booléen 'on' ou 'off' 'on' Convertir les espaces en underscores lors d'envoi de fichiers
dcc_auto_rename booléen 'on' ou 'off' 'on' Renommer les fichiers reçus s'ils existent déjà (ajoute '.1', '.2', ...)
dcc_auto_resume booléen 'on' ou 'off' 'on' Continuer automatiquement les transferts dcc si la connexion avec l'hôte a été perdue
proxy_use booléen 'on' ou 'off' 'off' Utiliser un proxy pour se connecter au serveur irc
proxy_type chaîne 'http', 'socks4', 'socks5' 'http' Type de proxy (http (défaut), socks4, socks5)
proxy_ipv6 booléen 'on' ou 'off' 'off' Se connecter au proxy en ipv6
proxy_address chaîne toute chaîne '' Adresse du serveur proxy (IP ou nom de machine)
proxy_port entier entre 0 et 65535 3128 Port pour se connecter au serveur proxy
proxy_username chaîne toute chaîne '' Nom d'utilisateur pour le serveur proxy
proxy_password chaîne toute chaîne '' Mot de passe pour le serveur proxy
plugins_path chaîne toute chaîne '%h/plugins' Chemin de recherche des extensions ('%h' sera remplacé par le répertoire de base WeeChat, par défaut: ~/.weechat)
plugins_autoload chaîne toute chaîne '*' Liste des extensions à charger automatiquement au démarrage, "*" signifie toutes (séparées par des virgules, les noms peuvent être partiels, par exemple "perl" est ok pour "libperl.so")
plugins_extension chaîne toute chaîne '.so' Extension standard des extensions dans le nom de fichier, pour le chargement automatique (si vide, alors tous les fichiers sont chargés si autoload vaut "*")
server_name chaîne toute chaîne '' Nom associé au serveur IRC (pour affichage seulement)
server_autoconnect booléen 'on' ou 'off' 'on' Connexion automatique au serveur quand WeeChat démarre
server_autoreconnect booléen 'on' ou 'off' 'on' Reconnexion automatique au serveur après une déconnexion
server_autoreconnect_delay entier entre 0 et 65535 30 Délai (en secondes) avant de tenter une reconnexion au serveur
server_address chaîne toute chaîne '' Adresse IP ou nom du serveur IRC
server_port entier entre 0 et 65535 6667 Port pour se connecter au serveur
server_ipv6 booléen 'on' ou 'off' 'off' Utiliser le protocole IPv6 pour la communication avec le serveur
server_ssl booléen 'on' ou 'off' 'off' Utiliser SSL pour la communication avec le serveur
server_password chaîne toute chaîne '' Mot de passe pour le serveur IRC
server_nick1 chaîne toute chaîne '' Pseudo à utiliser sur le serveur IRC
server_nick2 chaîne toute chaîne '' Pseudo alternatif pour le serveur IRC (si le pseudo est déjà utilisé)
server_nick3 chaîne toute chaîne '' 2ème pseudo alternatif pour le serveur IRC (si le pseudo alternatif est déjà utilisé)
server_username chaîne toute chaîne '' Nom d'utilisateur pour le serveur IRC
server_realname chaîne toute chaîne '' Nom réel pour le serveur IRC
server_hostname chaîne toute chaîne '' Nom de machine/IP personnalisé pour le serveur (optionnel, si non renseigné, le nom de machine local est utilisé)
server_command chaîne toute chaîne '' Commande(s) à exécuter lorsque connecté au serveur (plusieurs commandes doivent être séparées par ';', utilisez '\;' pour un point-virgule, les variables spéciales $nick, $channel et $server sont remplacées par leur valeur)
server_command_delay entier entre 0 et 3600 0 Délai (en secondes) après exécution de la commande (exemple: donner du temps pour l'authentification)
server_autojoin chaîne toute chaîne '' Liste des canaux (séparés par des virgules) à rejoindre lorsque connecté au serveur (exemple: "#chan1,#chan2,#chan3 key1,key2")
server_autorejoin booléen 'on' ou 'off' 'on' Rejoindre automatiquement les canaux quand mis dehors
server_notify_levels chaîne toute chaîne '' Liste des niveaux de notifications (séparés par des virgules) pour les canaux de ce serveur (format: #canal:1,..), un nom de canal '*' est réservé pour la notification par défaut du serveur

Les couleurs pour l'interface Curses sont :

Mot clé Couleur
default couleur par défaut (transparent pour le fond)
black noir
red rouge foncé
lightred rouge clair
green vert foncé
lightgreen vert clair
brown marron
yellow jaune
blue bleu foncé
lightblue bleu clair
magenta violet foncé
lightmagenta violet clair
cyan cyan foncé
lightcyan cyan clair
white blanc

Tube FIFO

Vous pouvez contrôler WeeChat à distance, en envoyant des commandes ou du texte dans un tube FIFO (l'option "irc_fifo_pipe" doit être activée, elle est désactivée par défaut).

Le tube FIFO est dans le répertoire "~/.weechat/" et s'appelle "weechat_fifo_xxxxx" (où xxxxx est l'ID du processus (PID) du WeeChat qui tourne). Donc si plusieurs WeeChat tournent, il y a plusieurs tubes FIFO, un pour chaque session.

La syntaxe pour envoyer des commandes ou du texte dans le tube FIFO est la suivante :

serveur,canal *texte ou commande ici

où le serveur et le canal sont facultatifs, mais si le canal est là, le serveur doit l'être aussi.

Quelques exemples :

  • changement du pseudo sur freenode en "pseudo|absent" :

    $ echo 'freenode */nick pseudo|absent' >~/.weechat/weechat_fifo_12345

  • affichage de texte sur le canal #weechat :

    $ echo 'freenode,#weechat *bonjour tout le monde !' >~/.weechat/weechat_fifo_12345

  • affichage de texte sur le canal courant (le tampon affiché par WeeChat) :

    $ echo '*bonjour !' >~/.weechat/weechat_fifo_12345

    Attention : ceci est dangereux et vous ne devriez pas le faire sauf si vous savez ce que vous faites !

  • envoyer deux commandes pour décharger/recharger les scripts Perl (vous devez les séparer par "\n") :

    $ echo -e "freenode */perl unload\nfreenode */perl autoload" >~/.weechat/weechat_fifo_12345

Vous pouvez écrire un script qui envoie les commandes à tous les WeeChat qui tournent en même temps, par exemple :

#!/bin/sh
if [ $# -eq 1 ]; then
    for fifo in ~/.weechat/weechat_fifo_*
    do
        echo -e "$1" >$fifo
    done
fi

Si le script s'appelle "auto_weechat_command", vous pouvez le lancer ainsi :

$ ./auto_weechat_command "freenode,#weechat *bonjour"

Chapitre 4. Extensions

Ce chapitre décrit l'interface des extensions (API) et les extensions pour scripts (Perl, Python, Ruby, Lua), fournies avec WeeChat.

Les extensions dans WeeChat

Une extension ("plugin" en anglais) est un programme écrit en C qui peut appeler des fonctions de WeeChat définies dans une interface.

Ce programme C n'a pas besoin des sources WeeChat pour être compilé et peut être chargé/déchargé dynamiquement dans WeeChat via la commande /plugin.

L'extension doit être au format bibliothèque, chargeable dynamiquement par le système d'exploitation. Sous GNU/Linux, il s'agit d'un fichier ayant pour extension ".so", sous Windows ".dll".

Ecrire une extension

L'extension doit inclure le fichier "weechat-plugin.h" (disponible dans les sources de WeeChat). Ce fichier définit les structures et types dont l'extension aura besoin pour communiquer avec WeeChat.

L'extension doit comporter certaines variables et fonctions obligatoires (sans quoi l'extension ne peut être chargée) :

Variable Description
char plugin_name[] le nom de l'extension
char plugin_version[] la version de l'extension
char plugin_description[] une courte description de l'extension

Fonction Description
int weechat_plugin_init (t_weechat_plugin *plugin) fonction appelée au chargement de l'extension qui doit renvoyer PLUGIN_RC_OK en cas de succès, PLUGIN_RC_KO en cas d'erreur (si erreur, l'extension ne sera PAS chargée)
void weechat_plugin_end (t_weechat_plugin *plugin) fonction appelée au déchargement de l'extension

Fonctions de l'interface (API)

set_charset

Prototype : void set_charset (t_weechat_plugin *plugin, char *charset)

Change le jeu de caractères de l'extension.

Paramètres :

  • plugin : pointeur vers la structure de l'extension

  • charset : nouveau jeu de caractères à utiliser

Exemple :

plugin->set_charset (plugin, "ISO-8859-1");

iconv_to_internal

Prototype : void iconv_to_internal (t_weechat_plugin *plugin, char *charset, char *string)

Convertit une chaîne de caractères vers le jeu de caractères interne WeeChat (UTF-8).

Paramètres :

  • plugin : pointeur vers la structure de l'extension

  • charset : le jeu de caractères de départ

  • string : la chaîne à convertir

Valeur renvoyée : la chaîne convertie.

Note : le résultat doit être libéré par un appel à la fonction "free" après utilisation.

Exemple :

char *str = plugin->iconv_to_internal (plugin, "ISO-8859-1", "chaine iso: é à");

iconv_from_internal

Prototype : void iconv_from_internal (t_weechat_plugin *plugin, char *charset, char *string)

Convertit une chaîne de caractères depuis le jeu de caractères interne WeeChat (UTF-8) vers un autre.

Paramètres :

  • plugin : pointeur vers la structure de l'extension

  • charset : le jeu de caractères voulu

  • string : la chaîne à convertir

Valeur renvoyée : la chaîne convertie.

Note : le résultat doit être libéré par un appel à la fonction "free" après utilisation.

Exemple :

char *str = plugin->iconv_from_internal (plugin, "ISO-8859-1", "chaine utf-8: é à");

ascii_strcasecmp

Prototype : int ascii_strcasecmp (t_weechat_plugin *plugin, char *chaine1, char *chaine2)

Effectue une comparaison entre deux chaînes, sans tenir compte des majuscules/minuscules ni de la locale.

Paramètres :

  • plugin : pointeur vers la structure de l'extension

  • chaine1 : la première chaîne à comparer

  • chaine2 : la deuxième chaîne à comparer

Valeur renvoyée : la différence entre les deux chaînes : négatif si chaine1 < chaine2, zéro si chaine1 == chaine2, positif si chaine1 > chaine2

Exemple :

if (plugin->ascii_strcasecmp (plugin, "abc", "def") != 0) ...

ascii_strncasecmp

Prototype : int ascii_strncasecmp (t_weechat_plugin *plugin, char *chaine1, char *chaine2, int max)

Effectue une comparaison entre deux chaînes, sans tenir compte des majuscules/minuscules ni de la locale, en comparant au plus "max" caractères.

Paramètres :

  • plugin : pointeur vers la structure de l'extension

  • chaine1 : la première chaîne à comparer

  • chaine2 : la deuxième chaîne à comparer

  • max : nombre de caractères max à comparer

Valeur renvoyée : la différence entre les deux chaînes : négatif si chaine1 < chaine2, zéro si chaine1 == chaine 2, positif si chaine1 > chaine2

Exemple :

if (plugin->ascii_strncasecmp (plugin, "abc", "def", 2) != 0) ...

explode_string

Prototype : char **explode_string (t_weechat_plugin *plugin, char *chaine, char *separateurs, int num_items_max, int *num_items)

Explose une chaîne en plusieurs selon un/des délimiteur(s).

Paramètres :

  • plugin : pointeur vers la structure de l'extension

  • chaine : la chaîne à exploser

  • separateurs : les délimiteurs utilisés pour exploser la chaîne

  • num_items_max : nombre maximum de sous-chaînes créées (0 = pas de limite)

  • num_items : pointeur vers un entier qui contiendra le nombre de sous-chaînes créées en retour

Valeur renvoyée : un tableau de chaînes, ou NULL si un problème a été rencontré.

Note : le résultat doit être libéré par un appel à la fonction "free_exploded_string" après utilisation.

Exemple :

char **argv;
int argc;
argv = plugin->explode_string (plugin, chaine, " ", 0, &argc);
...
if (argv != NULL)
    plugin->free_exploded_string (plugin, argv);

free_exploded_string

Prototype : char **free_exploded_string (t_weechat_plugin *plugin, char **chaine)

Libère la mémoire utilisée pour une explosion de chaîne.

Paramètres :

  • plugin : pointeur vers la structure de l'extension

  • chaine : la chaîne explosée par la fonction "explode_string"

Valeur renvoyée : aucune.

Exemple :

char *argv;
int argc;
argv = plugin->explode_string (plugin, chaine, " ", 0, &argc);
...
if (argv != NULL)
    plugin->free_exploded_string (plugin, argv);

mkdir_home

Prototype : int mkdir_home (t_weechat_plugin *plugin, char *repertoire)

Créé un répertoire dans le répertoire de base de WeeChat.

Paramètres :

  • plugin : pointeur vers la structure de l'extension

  • repertoire : répertoire à créer

Valeur renvoyée : 1 si le répertoire a été créé avec succès, 0 si une erreur s'est produite.

Example:

if (!plugin->mkdir_home (plugin, "temp"))
    plugin->print_server(plugin, "Impossible de créer le répertoire 'temp' dans la base WeeChat.");

exec_on_files

Prototype : void exec_on_files (t_weechat_plugin *plugin, char *repertoire, int (*callback)(t_weechat_plugin *, char *))

Exécute une fonction sur tous les fichiers d'un répertoire.

Paramètres :

  • plugin : pointeur vers la structure de l'extension

  • repertoire : le répertoire où les fichiers sont recherchés

  • callback : une fonction appelée pour chaque fichier trouvé

Valeur renvoyée : aucune.

Exemple :

int callback (t_weechat_plugin *plugin, char *fichier)
{
    plugin->print_server (plugin, "fichier: %s", fichier);
    return 1;
}
...
plugin->exec_on_files (plugin, "/tmp", &callback);

print

Prototype : void print (t_weechat_plugin *plugin, char *serveur, char *canal, char *message, ...)

Affiche un message sur un tampon WeeChat, identifié par le serveur et le canal (tous deux pouvant être NULL pour le tampon courant).

Paramètres :

  • plugin : pointeur vers la structure de l'extension

  • serveur : nom interne du serveur pour trouver le tampon dans lequel afficher (peut être NULL)

  • canal : nom du canal pour trouver le tampon dans lequel afficher (peut être NULL)

  • message : message à afficher

Pour afficher du texte en couleur, il faut utiliser l