summaryrefslogtreecommitdiff
path: root/doc/fr/weechat_user.fr.asciidoc
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2014-05-25 12:25:58 +0200
committerSébastien Helleu <flashcode@flashtux.org>2014-05-25 12:47:24 +0200
commitdc0229617ada67fd02815bbc94b245871248b9db (patch)
tree0af7418d7f3ebf8082408fa2ee9e73f5a572360f /doc/fr/weechat_user.fr.asciidoc
parent76a066c9cca620e1204815f63abbfa8b09f162c6 (diff)
downloadweechat-dc0229617ada67fd02815bbc94b245871248b9db.zip
doc: use .asciidoc extension instead of .txt for doc files
Diffstat (limited to 'doc/fr/weechat_user.fr.asciidoc')
-rw-r--r--doc/fr/weechat_user.fr.asciidoc3504
1 files changed, 3504 insertions, 0 deletions
diff --git a/doc/fr/weechat_user.fr.asciidoc b/doc/fr/weechat_user.fr.asciidoc
new file mode 100644
index 000000000..ae18a616f
--- /dev/null
+++ b/doc/fr/weechat_user.fr.asciidoc
@@ -0,0 +1,3504 @@
+= Guide utilisateur WeeChat
+:author: Sébastien Helleu
+:email: flashcode@flashtux.org
+:lang: fr
+:toc:
+:toclevels: 4
+
+
+Ce manuel documente le client de messagerie instantanée WeeChat, il fait
+partie de WeeChat.
+
+La dernière version de ce document peut être téléchargée sur cette page :
+http://weechat.org/doc
+
+
+[[introduction]]
+== Introduction
+
+WeeChat (Wee Enhanced Environment for Chat) est un client de discussion libre,
+rapide et léger, conçu pour différents systèmes d'exploitation.
+
+[[features]]
+=== Fonctionnalités
+
+Ses principales fonctionnalités sont les suivantes :
+
+* multi-protocoles : IRC et Jabber (avec le script jabber.py ou bitlbee/minbif)
+* connexion multi-serveurs (avec SSL, IPv6, proxy)
+* petit, rapide et léger
+* paramétrable et extensible avec des extensions et des scripts
+* conforme aux RFCs IRC http://tools.ietf.org/html/rfc1459[1459],
+ http://tools.ietf.org/html/rfc2810[2810],
+ http://tools.ietf.org/html/rfc2811[2811],
+ http://tools.ietf.org/html/rfc2812[2812] et
+ http://tools.ietf.org/html/rfc2813[2813]
+* multi plates-formes (GNU/Linux, *BSD, MacOS X, Windows et d'autres systèmes)
+* 100% GPL, logiciel libre
+
+La page d'accueil de WeeChat est ici : http://weechat.org/
+
+[[prerequisites]]
+=== 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), ou un système compatible
+* droits "root" (pour installer WeeChat dans un répertoire système)
+* la bibliothèque ncurses
+
+[[install]]
+== Installation
+
+[[binary_packages]]
+=== Paquets binaires
+
+Les paquets binaires sont disponibles pour beaucoup de distributions, dont :
+
+* Debian (ou toute distribution compatible Debian) :
+ `apt-get install weechat-curses`
+* Mandriva/RedHat (ou toute distribution compatible avec les RPM) :
+ `rpm -i /path/to/weechat-x.y.z-1.i386.rpm`
+* Gentoo : `emerge weechat`
+* Arch Linux : `pacman -S weechat`
+* Fedora Core : `yum install weechat`
+* Sourcemage : `cast weechat`
+
+Des paquets additionnels peuvent être utiles également, comme weechat-plugins.
+
+Pour les autres distributions supportées, merci de vous référer au manuel de
+la distribution pour la méthode d'installation.
+
+[[source_package]]
+=== Paquet source
+
+WeeChat peut être compilé avec cmake ou les autotools (cmake est la méthode
+recommandée).
+
+[[dependencies]]
+==== Dépendances
+
+Le tableau suivant liste les paquets qui sont requis ou optionnels pour
+compiler WeeChat.
+
+[width="100%",cols="5,^3,^3,13",options="header"]
+|===
+| Paquet ^(1)^ | Version | Requis | Fonctionnalité
+| cmake | | *oui* | Construction (autotools toujours possible, mais cmake est recommandé)
+| libncursesw5-dev ^(2)^ | | *oui* | Interface ncurses
+| libcurl4-gnutls-dev | | *oui* | Transfert d'URL
+| zlib1g-dev | | *oui* | Compression des paquets dans l'extension relay (protocole weechat), extension script
+| libgcrypt11-dev | | *oui* | Données sécurisées, authentification IRC SASL (DH-BLOWFISH/DH-AES), extension script
+| libgnutls-dev | ≥ 2.2.0 | | Connexion SSL au serveur IRC, support SSL dans l'extension relay
+| gettext | | | Internationalisation (traduction des messages; la langue de base est l'anglais)
+| ca-certificates | | | Certificats pour les connexions SSL
+| libaspell-dev ou libenchant-dev | | | Extension aspell
+| python-dev | ≥ 2.5 ^(3)^ | | Extension python
+| libperl-dev | | | Extension perl
+| ruby1.9.1-dev | ≥ 1.8 | | Extension ruby
+| liblua5.1-0-dev | | | Extension lua
+| tcl-dev | ≥ 8.5 | | Extension tcl
+| guile-2.0-dev | ≥ 2.0 | | Extension guile (scheme)
+| asciidoc | ≥ 8.5.0 | | Construction de la page man et de la documentation
+| source-highlight | | | Coloration des sources dans la documentation
+| xsltproc,
+ docbook-xml, docbook-xsl | | | Construction de la page de manuel
+|===
+
+[NOTE]
+^(1)^ Le nom provient de la distribution GNU/Linux Debian, la version dans le
+nom du paquet peut être différente. +
+^(2)^ WeeChat peut compiler avec libncurses5-dev, mais ce n'est *PAS* recommandé
+(vous aurez des bugs d'affichage avec les caractères larges). +
+^(3)^ La version recommandée de Python est 2.7 (tous les scripts tournent bien
+avec la version 2.7, mais pas avec les versions ≤ 2.6 ou ≥ 3.0).
+
+[[compile_with_cmake]]
+==== Compilation avec cmake
+
+* Installation dans les répertoires systèmes (nécessite les droits 'root') :
+
+----
+$ mkdir build
+$ cd build
+$ cmake ..
+$ make
+% make install (en root)
+----
+
+* Installation dans un répertoire spécifique :
+
+----
+$ mkdir build
+$ cd build
+$ cmake .. -DPREFIX=/chemin/vers/répertoire
+$ make
+$ make install
+----
+
+Des options peuvent être utilisées pour cmake, avec le format: "-DOPTION=VALUE".
+
+Liste des options couramment utilisées :
+
+[width="100%",cols="2m,2,5m,12",options="header"]
+|===
+| Option | Valeurs | Valeur par défaut | Description
+
+| CMAKE_BUILD_TYPE | `Debug`, `Release`, `RelWithDebInfo`, `MinSizeRel` | |
+ Type de construction: `Debug` (ou `RelWithDebInfo`) est recommandé si vous
+ utilisez une version de développement de WeeChat.
+
+| PREFIX | répertoire | /usr/local |
+ Le répertoire dans lequel WeeChat sera installé.
+
+| WEECHAT_HOME | répertoire | ~/.weechat |
+ Le répertoire "maison" par défaut lors du lancement de WeeChat.
+
+| CA_FILE | fichier | /etc/ssl/certs/ca-certificates.crt |
+ Fichier contenant les autorités de certification.
+ C'est la valeur par défaut de l'option
+ <<option_weechat.network.gnutls_ca_file,weechat.network.gnutls_ca_file>>.
+
+| ENABLE_ALIAS | `ON`, `OFF` | ON |
+ Compiler <<alias_plugin,l'extension Alias>>.
+
+| ENABLE_ASPELL | `ON`, `OFF` | ON |
+ Compiler <<aspell_plugin,l'extension Aspell>>.
+
+| ENABLE_CHARSET | `ON`, `OFF` | ON |
+ Compiler <<charset_plugin,l'extension Charset>>.
+
+| ENABLE_MAN | `ON`, `OFF` | OFF |
+ Compiler la page man.
+
+| ENABLE_DOC | `ON`, `OFF` | OFF |
+ Compiler la documentation (cela prend beaucoup de temps, recommandé
+ seulement si vous construisez un paquet binaire intégrant la documentation ou
+ si vous ne pouvez pas consulter la documentation en ligne).
+
+| ENABLE_ENCHANT | `ON`, `OFF` | OFF |
+ Compiler <<aspell_plugin,l'extension Aspell>> avec Enchant.
+
+| ENABLE_EXEC | `ON`, `OFF` | ON |
+ Compiler <<exec_plugin,l'extension Exec>>.
+
+| ENABLE_FIFO | `ON`, `OFF` | ON |
+ Compiler <<fifo_plugin,l'extension Fifo>>.
+
+| ENABLE_GNUTLS | `ON`, `OFF` | ON |
+ Activer Gnutls (pour SSL).
+
+| ENABLE_GUILE | `ON`, `OFF` | ON |
+ Compiler <<scripts_plugins,l'extension Guile>> (Scheme).
+
+| ENABLE_IRC | `ON`, `OFF` | ON |
+ Compiler <<irc_plugin,l'extension IRC>>.
+
+| ENABLE_LARGEFILE | `ON`, `OFF` | ON |
+ Support des gros fichiers.
+
+| ENABLE_LOGGER | `ON`, `OFF` | ON |
+ Compiler <<logger_plugin,l'extension Logger>>.
+
+| ENABLE_LUA | `ON`, `OFF` | ON |
+ Compiler <<scripts_plugins,l'extension Lua>>.
+
+| ENABLE_NCURSES | `ON`, `OFF` | ON |
+ Compiler l'interface Ncurses.
+
+| ENABLE_NLS | `ON`, `OFF` | ON |
+ Activer NLS (traductions).
+
+| ENABLE_PERL | `ON`, `OFF` | ON |
+ Compiler <<scripts_plugins,l'extension Perl>>.
+
+| ENABLE_PYTHON | `ON`, `OFF` | ON |
+ Compiler <<scripts_plugins,l'extension Python>>.
+
+| ENABLE_PYTHON3 | `ON`, `OFF` | OFF |
+ Compiler <<scripts_plugins,l'extension Python>> en utilisant Python 3 (*NON*
+ recommandé car beaucoup de scripts ne sont pas compatibles avec Python 3).
+
+| ENABLE_RELAY | `ON`, `OFF` | ON |
+ Compiler <<relay_plugin,l'extension Relay>>.
+
+| ENABLE_RUBY | `ON`, `OFF` | ON |
+ Compiler <<scripts_plugins,l'extension Ruby>>.
+
+| ENABLE_SCRIPT | `ON`, `OFF` | ON |
+ Compiler <<scripts_plugins,l'extension Script>>.
+
+| ENABLE_SCRIPTS | `ON`, `OFF` | ON |
+ Compiler <<scripts_plugins,les extensions de script>> (Python, Perl, Ruby,
+ Lua, Tcl, Guile).
+
+| ENABLE_TCL | `ON`, `OFF` | ON |
+ Compiler <<scripts_plugins,l'extension Tcl>>.
+
+| ENABLE_TRIGGER | `ON`, `OFF` | ON |
+ Compiler <<trigger_plugin,l'extension Trigger>>.
+
+| ENABLE_XFER | `ON`, `OFF` | ON |
+ Compiler <<xfer_plugin,l'extension Xfer>>.
+|===
+
+Les autres options peuvent être affichées avec cette commande :
+
+----
+$ cmake -LA
+----
+
+Ou avec l'interface Curses :
+
+----
+$ ccmake ..
+----
+
+[[compile_with_autotools]]
+==== Compilation avec autotools
+
+[WARNING]
+Seulement cmake est officiellement supporté pour construire WeeChat. Vous ne
+devriez utiliser les autotools que si vous n'avez pas la possibilité d'utiliser
+cmake. +
+La compilation avec les autotools requiert plus de dépendances et est plus lente
+qu'avec cmake.
+
+* Installation dans les répertoires systèmes (nécessite les droits 'root') :
+
+----
+$ ./autogen.sh
+$ mkdir build
+$ cd build
+$ ../configure
+$ make
+% make install (en root)
+----
+
+* Installation dans un répertoire spécifique :
+
+----
+$ ./autogen.sh
+$ mkdir build
+$ cd build
+$ ../configure --prefix=/chemin/vers/répertoire
+$ make
+$ make install
+----
+
+Des options peuvent être utilisées pour le script 'configure', elles peuvent
+être affichées avec cette commande :
+
+----
+$ ./configure --help
+----
+
+[[git_sources]]
+=== 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 https://github.com/weechat/weechat.git
+----
+
+Suivez alors les instructions du paquet source (voir
+<<source_package,paquet source>>).
+
+[[report_crashes]]
+=== Rapporter les plantages
+
+Si vous avez eu des plantages, ou si vous souhaitez rapporter tout plantage
+futur de WeeChat, vous devez :
+
+* compiler avec les infos de debug (ou installer un paquet binaire avec les
+ infos de debug)
+* activer les fichiers 'core' sur votre système
+* installer gdb
+
+[[debug_info]]
+==== Infos de debug
+
+Si vous compilez avec cmake :
+
+----
+$ cmake .. -DCMAKE_BUILD_TYPE=Debug
+----
+
+Si vous compilez avec les autotools, le debug est par défaut (`--with-debug=1`).
+
+Si vous avez installé un paquet binaire, alors installez le paquet
+'weechat-dbg'.
+
+[[core_files]]
+==== Fichiers core
+
+Pour activer les fichiers 'core', vous pouvez utiliser l'option
+<<option_weechat.startup.sys_rlimit,weechat.startup.sys_rlimit>>:
+
+----
+/set weechat.startup.sys_rlimit "core:-1"
+----
+
+Pour WeeChat ≤ 0.3.8 ou si vous voulez activer les fichiers core avant que
+WeeChat ne démarre, vous pouvez utiliser la commande `ulimit`.
+
+Par exemple sous Linux avec le shell 'bash', ajoutez cette ligne dans votre
+`~/.bashrc`:
+
+----
+ulimit -c unlimited
+----
+
+Ou une taille maximum :
+
+----
+ulimit -c 200000
+----
+
+[[gdb_backtrace]]
+==== Obtenir la trace avec gdb
+
+Lorsque WeeChat se plante, votre système génère un fichier 'core' ou
+'core.12345' ('12345' est l'identifiant du processus).
+Ce fichier est créé dans le répertoire où vous avez lancé WeeChat (ce n'est
+*pas* le répertoire où WeeChat est installé !).
+
+Par exemple si 'weechat' est installé dans '/usr/bin/' et que le fichier
+'core' est dans '/home/xxx/', alors lancez gdb avec cette commande :
+
+----
+gdb /usr/bin/weechat /home/xxx/core
+----
+
+[NOTE]
+Si vous avez installé le paquet binaire 'weechat-dbg' (par exemple sous Debian),
+alors vous pouvez utiliser ce chemin pour l'exécutable WeeChat :
+'/usr/lib/debug/usr/bin/weechat'
+
+Puis sous gdb, utilisez la commande `bt full` pour afficher la trace.
+Vous verrez quelque chose comme ceci :
+
+----
+(gdb) set logging file /tmp/crash.txt
+(gdb) set logging on
+Copying output to /tmp/crash.txt.
+(gdb) bt full
+#0 0x00007f9dfb04a465 in raise () from /lib/libc.so.6
+#1 0x00007f9dfb04b8e6 in abort () from /lib/libc.so.6
+#2 0x0000000000437f66 in weechat_shutdown (return_code=1, crash=1)
+ at /some_path/src/core/weechat.c:351
+#3 <signal handler called>
+#4 0x000000000044cb24 in hook_process_timer_cb (arg_hook_process=0x254eb90,
+ remaining_calls=<value optimized out>) at /some_path/src/core/wee-hook.c:1364
+ hook_process = 0x254eb90
+ status = <value optimized out>
+#5 0x000000000044cc7d in hook_timer_exec ()
+ at /some_path/src/core/wee-hook.c:1025
+ tv_time = {tv_sec = 1272693881, tv_usec = 212665}
+ ptr_hook = 0x2811f40
+ next_hook = 0x0
+#6 0x000000000041b5b0 in gui_main_loop ()
+ at /some_path/src/gui/curses/gui-curses-main.c:319
+ hook_fd_keyboard = 0x173b600
+ tv_timeout = {tv_sec = 0, tv_usec = 0}
+ read_fds = {fds_bits = {0 <repeats 16 times>}}
+ write_fds = {fds_bits = {0 <repeats 16 times>}}
+ except_fds = {fds_bits = {0 <repeats 16 times>}}
+ max_fd = <value optimized out>
+----
+
+Vous devez envoyer cette trace aux développeurs, et leur indiquer quelle action
+a été la cause de ce plantage.
+
+Merci pour votre aide !
+
+[[debug_running_weechat]]
+==== Debug de WeeChat qui tourne
+
+Pour déboguer WeeChat qui tourne (par exemple si WeeChat semble bloqué), vous
+pouvez utiliser gdb avec l'identifiant du processus (remplacez '12345' par le
+PID du processus weechat) :
+
+----
+gdb /usr/bin/weechat 12345
+----
+
+Ensuite comme pour un crash, utilisez la commande `bt full` :
+
+----
+(gdb) bt full
+----
+
+[[usage]]
+== Utilisation
+
+[[running_weechat]]
+=== Lancer WeeChat
+
+Paramètres de ligne de commande :
+
+include::cmdline_options.fr.asciidoc[]
+
+Pour lancer WeeChat, tapez cette commande :
+
+----
+$ weechat
+----
+
+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.conf'.
+
+Vous pouvez éditer ce fichier pour configurer WeeChat à votre convenance ou
+vous pouvez modifier les paramètres dans WeeChat avec la commande `/set`
+(voir <<weechat_commands,commandes WeeChat>>).
+
+[[screen_layout]]
+=== Organisation de l'écran
+
+Exemple de terminal avec WeeChat :
+
+....
+ ▼ barre "title"
+┌───────────────────────────────────────────────────────────────────────────┐
+│Bienvenue sur #test, canal de test │
+│12:52:27 --> | Flashy (flashcode@weechat.org) a rejoint #test │@Flashy│
+│12:52:27 -- | Pseudos #test: [@Flashy @joe +weebot peter] │@joe │
+│12:52:27 -- | Canal #test: 4 pseudos (2 ops, 1 voice, 1 normal) │+weebot│
+│12:52:27 -- | Canal créé le Tue Jan 27 06:30:17 2009 │peter │
+│12:54:15 peter | bonjour ! │ │
+│12:55:01 @joe | salut │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│[12:55] [6] [irc/freenode] 3:#test(+n){4}* [H: 4:#abc(2,5), 6] │
+│[@Flashy(i)] salut peter!█ │
+└───────────────────────────────────────────────────────────────────────────┘
+ ▲ barres "status" et "input" barre "nicklist" ▲
+....
+
+L'écran est composé des zones suivantes :
+
+* zone de discussion (milieu de l'écran) avec les lignes de discussion, et
+ pour chaque ligne :
+** heure
+** préfixe (avant "|")
+** message (après "|")
+* barres autour de la zone de discussion, les barres par défaut sont :
+** barre 'title', au dessus de la zone de discussion
+** barre 'status', sous la zone de discussion
+** barre 'input', sous la barre de statut
+** barre 'nicklist', sur la droite
+
+La barre 'status' contient les objets (items) suivants par défaut :
+
+[width="100%",cols="^3,^3,10",options="header"]
+|===
+| Objet (item) | Exemple | Description
+| time | `[12:55]` | Heure
+| buffer_count | `[6]` | Nombre de tampons ouverts
+| buffer_plugin | `[irc/freenode]` | Extension du tampon courant (l'extension irc peut afficher le nom du serveur IRC auquel est rattaché ce tampon)
+| buffer_number | `3` | Numéro du tampon courant
+| buffer_name | `#test` | Nom du tampon courant
+| buffer_modes | `+n` | Modes du canal IRC
+| buffer_nicklist_count | `{4}` | Nombre de pseudos dans la liste des pseudos
+| buffer_zoom | ! | `!` signifie que le tampon mélangé est zoomé, une valeur vide signifie que tous les tampons mélangés sont affichés
+| buffer_filter | `*` | Indicateur de filtrage : `*` signifie que des lignes sont filtrées (cachées), une valeur vide signifie que toutes les lignes sont affichées
+| lag | `[Lag: 2.5]` | Indicateur de "lag" (ralentissements réseau), en secondes (caché si le lag est faible)
+| hotlist | `[H: 4:#abc(2,5), 6]` | Liste des tampons où il y a de l'activité (messages non lus) (dans cet exemple, 2 highlights et 5 messages non lus sur '#abc', un message non lu sur le tampon numéro 6)
+| completion | `abc(2) def(5)` | Liste des mots pour la complétion, avec le nombre de complétions possibles pour chaque mot
+| scroll | `-PLUS(50)-` | Indicateur de scroll, avec le nombre de lignes sous la dernière ligne affichée
+|===
+
+La barre 'input' contient les objets (items) suivants par défaut :
+
+[width="100%",cols="^3,^6,8",options="header"]
+|===
+| Objet (item) | Exemple | Description
+| input_paste | `[Coller 7 lignes ? [ctrl-Y] Oui [ctrl-N] Non]` | Question à l'utilisateur pour coller des lignes
+| input_prompt | `[@Flashy(i)]` | Prompt, pour irc: pseudo et modes (le mode "+i" signifie invisible sur freenode)
+| away | `(absent)` | Indicateur d'absence
+| input_search | `[Recherche (~ str,msg)]` | Indicateur de recherche de texte ("`~`" : insensible à la casse, "`==`" : sensible à la casse, "`str`" : recherche de chaîne, "`regex`" : recherche d'expression régulière, "`msg`" : recherche dans les messages, "`pre`" : recherche dans les préfixes, "`pre\|msg`" : recherche dans les préfixes et messages)
+| input_text | `salut peter !` | Texte entré
+|===
+
+[[buffers_and_windows]]
+=== Tampons et fenêtres
+
+Un tampon ('buffer') est composé d'un numéro, un nom, des lignes affichées
+(ainsi que d'autres données).
+
+Exemples de tampons :
+
+* tampon core (créé par WeeChat au démarrage, ne peut pas être fermé)
+* serveur irc (affiche les messages du serveur)
+* canal irc
+* privé irc
+
+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. Un tampon peut être caché (affiché par
+aucune fenêtre) ou affiché par une ou plusieurs fenêtres.
+
+Exemple de découpage horizontal (`/window splith`) :
+
+....
+ ▼ fenêtre n°2 (tampon n°4)
+┌───────────────────────────────────────────────────────────────────────────┐
+│Bienvenue sur #abc │
+│12:55:12 Max | bonjour │@Flashy│
+│12:55:20 @Flashy | salut Max ! │Max │
+│12:55:32 Max | ça va bien ? │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│[12:55] [6] [irc/freenode] 4:#abc(+n){2} │
+│[@Flashy] │
+│───────────────────────────────────────────────────────────────────────────│
+│Bienvenue sur #test │
+│12:54:15 peter | ohé ! │@Flashy│
+│12:55:01 @joe | salut │@joe │
+│ │+weebot│
+│ │peter │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│[12:55] [6] [irc/freenode] 3:#test(+n){4} │
+│[@Flashy] hi peter!█ │
+└───────────────────────────────────────────────────────────────────────────┘
+ ▲ fenêtre n°1 (tampon n°3)
+....
+
+Exemple de découpage vertical (`/window splitv`) :
+
+....
+┌───────────────────────────────────────────────────────────────────────────┐
+│Bienvenue sur #test │Bienvenue sur #abc │
+│12:54:15 peter | ohé ! │@Flashy│12:55:12 Max | bonjour │@Flashy│
+│12:55:01 @joe | salut │@joe │12:55:20 @Flashy | plop Max │Max │
+│ │+weebot│ │ │
+│ │peter │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│[12:55] [irc/oftc] 3:#test(+n){4} │[12:55] [irc/oftc] 4:#abc(+n){2} │
+│[@Flashy] hi peter!█ │[@Flashy] │
+└───────────────────────────────────────────────────────────────────────────┘
+ ▲ fenêtre n°1 (tampon n°3) ▲ fenêtre n°2 (tampon n°4)
+....
+
+Exemple de découpage vertical + horizontal :
+
+....
+ ▼ fenêtre n°3 (tampon n°5)
+┌───────────────────────────────────────────────────────────────────────────┐
+│Bienvenue sur #test │Bienvenue sur #def │
+│12:54:15 peter | ohé ! │@Flashy│12:55:42 @Flashy | salut │@Flashy│
+│12:55:01 @joe | salut │@joe │12:55:56 alex | salut │alex │
+│ │+weebot│ │ │
+│ │peter │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │[12:55] [irc/oftc] 5:#def(+n){2} │
+│ │ │[@Flashy] │
+│ │ │─────────────────────────────────────│
+│ │ │Bienvenue sur #abc │
+│ │ │12:55:12 Max | bonjour │@Flashy│
+│ │ │12:55:20 @Flashy | salut Max │Max │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│ │ │ │ │
+│[12:55] [irc/oftc] 3:#test(+n){4} │[12:55] [irc/oftc] 4:#abc(+n){2} │
+│[@Flashy] salut peter !█ │[@Flashy] │
+└───────────────────────────────────────────────────────────────────────────┘
+ ▲ fenêtre n°1 (tampon n°3) ▲ fenêtre n°2 (tampon n°4)
+....
+
+[[bars]]
+=== Barres
+
+Une 'barre' est une zone à côté de la discussion qui peut contenir tout type de
+texte.
+
+Les options de barre sont définies avec les options `weechat.bar.nom.option` où
+`nom` et le nom de la barre et `option` l'option pour cette barre.
+
+Liste des options de barre :
+
+[width="100%",cols="2m,2,10",options="header"]
+|===
+| Option | Valeurs | Description
+
+| type | `root`, `window` |
+ Une barre avec le type `root` est affichée exactement une fois à l'écran, en
+ dehors de toutes les fenêtres. Il n'y a pas de barre root par défaut, mais un
+ exemple est la barre 'buffers' créée par le script 'buffers.pl' (barre
+ latérale avec la liste des tampons). +
+ Une barre avec le type `window` est affichée dans chaque fenêtre, par exemple
+ si vous découpez l'écran (avec `/window splith` ou `/window splitv`), vous
+ aurez une barre dans chaque fenêtre. Les quatre barres par défaut ('title',
+ 'status', 'input', 'nicklist') sont de type `window`.
+
+| position | `top`, `bottom`, `left`, `right` |
+ Position de la barre : au dessus/en dessous de la discussion, sur la
+ gauche/droite.
+
+| priority | entier ≥ 0 |
+ Priorité de la barre : elle est utilisée pour ordonner les barres à l'écran,
+ quand plusieurs barres utilisent le même type et position. +
+ Les barres sont affichées depuis le bord de l'écran vers le centre. Une
+ priorité plus haute affichera la barre au début, donc près du bord. +
+ Exemple : la barre 'input' a une priorité de 1000, donc elle est affichée
+ avant la barre 'status', qui a une priorité de 500.
+
+| size | entier ≥ 0 |
+ La taille de la barre : nombre de colonnes pour une position left/right,
+ nombre de lignes pour une position top/bottom. Une taille de `0` signifie
+ automatique, donc la taille sera calculée en fonction du contenu affiché dans
+ la barre.
+
+| size_max | entier ≥ 0 |
+ La taille maximum pour la barre, `0` = pas de limite (cette option est
+ utilisée seulement si `size` = `0`).
+
+| color_bg | couleur |
+ La couleur par défaut du fond de la barre.
+
+| color_fg | couleur |
+ La couleur par défaut du texte dans la barre.
+
+| color_delim | couleur |
+ La couleur des délimiteurs dans la barre.
+
+| hidden | `on`, `off` |
+ Lorsque l'option est `on`, la barre est cachée. +
+ Note : plutôt que de changer cette option, il est préférable d'utiliser la
+ commande `/bar`, par exemple : `/bar toggle nicklist` (voir la commande
+ <<command_weechat_bar,/bar>>).
+
+| separator | `on`, `off` |
+ Lorsque l'option est `on`, un séparateur (ligne) est affiché entre la barre et
+ les autres barres (ou la discussion).
+
+| items | chaîne |
+ Une liste d'objets (voir <<bar_items,objets>> pour plus d'infos).
+
+| filling_left_right | `horizontal`, `vertical`, `columns_horizontal`, `columns_vertical` |
+ Type de remplissage pour la barre lorsqu'elle a une position `left` ou
+ `right` (voir <<bar_filling,remplissage>> pour plus d'infos).
+
+| filling_top_bottom | `horizontal`, `vertical`, `columns_horizontal`, `columns_vertical` |
+ Type de remplissage pour la barre lorsqu'elle a une position `top` ou `bottom`
+ (voir <<bar_filling,remplissage>> pour plus d'infos).
+
+| conditions | chaîne |
+ Les conditions pour afficher la barre (voir <<bar_conditions,conditions>> pour
+ plus d'infos).
+|===
+
+[[bar_items]]
+==== Objets
+
+L'option 'items' est une chaîne avec une liste d'objets de barre, séparés par
+une virgule (espace entre les objets à l'écran) ou un "+" (objets collés).
+
+La liste des objets de barre est affichée avec la commande `/bar listitems`.
+
+Avant ou après l'objet de barre, vous pouvez utiliser des caractères (qui ne
+sont pas alphanumériques, "-" ou "_"). Ils seront affichés avant/après l'objet
+de barre avec la couleur des délimiteurs définie dans la barre (option
+'color_delim').
+
+Exemple de barre avec les objets
+"[time],buffer_number+:+buffer_plugin+.+buffer_name" :
+
+....
+┌───────────────────────────────────────────────────────────────────────────┐
+│[12:55] 3:irc/freenode.#weechat │
+└───────────────────────────────────────────────────────────────────────────┘
+....
+
+Une syntaxe spéciale peut être utilisée pour forcer le tampon utilisé lors de
+l'affichage de l'objet de barre : "@tampon:objet" (où "tampon" est le nom
+complet du tampon et "objet" est le nom d'un objet de barre).
+
+Ceci peut être pratique dans les barres "root", pour afficher un objet de barre
+pour un tampon qui n'est pas affiché dans la fenêtre courante (ou même pas
+affiché du tout).
+
+Exemple : liste de pseudos de bitlbee dans une barre "root" (si la barre
+s'appelle 'bitlist' et si le serveur bitlbee s'appelle 'bitlbee') :
+
+----
+/set weechat.bar.bitlist.items "@irc.bitlbee.&bitlbee:buffer_nicklist"
+----
+
+[[bar_filling]]
+==== Remplissage
+
+Il y a quatre types de remplissage :
+
+* `horizontal` : les objets sont affichés horizontalement, de gauche à droite.
+ S'il y a des retours à la ligne dans les objets, un espace est utilisé pour
+ séparer les lignes.
+* `vertical` : les objets sont affichés de haut en bas. S'il y a des retours à
+ la ligne dans les objets, une nouvelle ligne est utilisée pour séparer les
+ lignes.
+* `columns_horizontal` : les objets sont affichés en utilisant des colonnes, où
+ le texte est aligné à gauche. Le premier objet est en haut à gauche, le second
+ est sur la même ligne, sur la droite.
+* `columns_vertical` : les objets sont affichés en utilisant des colonnes, où
+ le texte est aligné à gauche. Le premier objet est en haut à gauche, le second
+ est sur la ligne en dessous.
+
+Les barres par défaut 'title', 'status' et 'input' ont un remplissage
+'horizontal', et la barre par défaut 'nicklist' a un remplissage 'vertical'.
+
+Quelques exemples de remplissage pour la barre 'nicklist' :
+
+....
+┌──────────────────────────────────────────────────┐
+│Welcome to #test, this is a test channel │
+│12:54:15 peter | hey! │@carl │
+│12:55:01 +Max | hello │@jessika│
+│ │@maddy │
+│ │%Diego │
+│ │%Melody │
+│ │+Max │
+│ │ celia │
+│ │ Eva │
+│ │ freddy │
+│ │ Harold^│
+│ │ henry4 │
+│ │ jimmy17│
+│ │ jodie ▼│
+│[12:55] [6] [irc/freenode] 3:#test(+n){24} │
+│[@carl] █ │
+└──────────────────────────────────────────────────┘
+ filling_left_right = vertical ▲
+
+┌──────────────────────────────────────────────────┐
+│Welcome to #test, this is a test channel │
+│12:54:15 peter | hey! │@carl lee │
+│12:55:01 +Max | hello │@jessika louise │
+│ │@maddy mario │
+│ │%Diego mark │
+│ │%Melody peter │
+│ │+Max Rachel │
+│ │ celia richard│
+│ │ Eva sheryl │
+│ │ freddy Vince │
+│ │ Harold^ warren │
+│ │ henry4 zack │
+│ │ jimmy17 │
+│ │ jodie │
+│[12:55] [6] [irc/freenode] 3:#test(+n){24} │
+│[@carl] █ │
+└──────────────────────────────────────────────────┘
+ filling_left_right = columns_vertical ▲
+
+┌───────────────────────────────────────────────────────────────────────┐
+│@carl %Diego celia Harold^ jodie mario Rachel Vince │
+│@jessika %Melody Eva henry4 lee mark richard warren │
+│@maddy +Max freddy jimmy17 louise peter sheryl zack │
+│───────────────────────────────────────────────────────────────────────│
+│ │
+ filling_top_bottom = columns_vertical ▲
+
+┌───────────────────────────────────────────────────────────────────────┐
+│@carl @jessika @maddy %Diego %Melody +Max celia Eva │
+│ freddy Harold^ henry4 jimmy17 jodie lee louise mario │
+│ mark peter Rachel richard sheryl Vince warren zack │
+│───────────────────────────────────────────────────────────────────────│
+│ │
+ filling_top_bottom = columns_horizontal ▲
+....
+
+[[bar_conditions]]
+==== Conditions
+
+L'option 'conditions' est une chaîne évaluée pour savoir si la barre doit être
+affichée ou non dans la fenêtre (elle est utilisée seulement pour les barres
+avec type 'window').
+
+La chaîne peut être :
+
+* 'active' : la fenêtre doit être active
+* 'inactive' : la fenêtre doit être inactive
+* 'nicklist' : le tampon affiché dans la fenêtre doit avoir une liste de pseudos
+* une expression : elle est évaluée comme booléen (voir la commande
+ <<command_weechat_eval,/eval>>)
+
+Pour une expression, les variables suivantes sont disponibles :
+
+* `${active}` : vrai si la fenêtre est active
+* `${inactive}` : vrai si la fenêtre est inactive
+* `${nicklist}` : vrai si le tampon affiché dans la fenêtre a une liste de
+ pseudos
+
+Les pointeurs suivants sont disponibles :
+
+* `${window}` : la fenêtre où la condition est évaluée
+* `${buffer}` : le tampon de la fenêtre où la condition est évaluée
+
+Exemple pour afficher la liste de pseudos dans tous les tampons possédant une
+liste de pseudos, et seulement si la largeur de fenêtre est supérieurs à 100 :
+
+----
+/set weechat.bar.nicklist.conditions "${nicklist} && ${window.win_width} > 100"
+----
+
+Même condition, mais afficher toujours la liste de pseudos sur le tampon
+'&bitlbee' (même si la fenêtre est petite) :
+
+----
+/set weechat.bar.nicklist.conditions "${nicklist} && (${window.win_width} > 100 || ${buffer.full_name} == irc.bitlbee.&bitlbee)"
+----
+
+[[bare_display]]
+=== Affichage dépouillé
+
+Un affichage spécial, appelé "dépouillé" ('bare display') peut être utilisé pour
+un clic facile sur les URLs longs et la sélection de texte (avec la souris).
+
+L'affichage dépouillé a les caractéristiques suivantes :
+
+* il n'affiche que le contenu du tampon courant : pas de découpage de fenêtres
+ ni de barre (pas de titre, liste de pseudos, statut, ligne de commande, ...)
+* le support souris de WeeChat est désactivé (s'il avait été activé) : vous
+ pouvez utiliser votre souris comme vous le faites dans le terminal pour
+ cliquer sur les URLs et sélectionner du texte
+* ncurses n'est pas utilisé, par conséquent les URLs ne sont pas coupés en fin
+ de ligne.
+
+La touche par défaut pour activer l'affichage dépouillé est key[alt-l], et la
+même touche pour en sortir (ou par défaut tout changement dans la ligne de
+commande sortira de l'affichage dépouillé, voir l'option
+<<option_weechat.look.bare_display_exit_on_input,weechat.look.bare_display_exit_on_input>>).
+
+Le format de l'heure peut être personnalisé avec l'option
+<<option_weechat.look.bare_display_time_format,weechat.look.bare_display_time_format>>.
+
+L'affichage dépouillé peut être activé pour un temps donné en utilisant la
+commande <<command_weechat_window,/window>>.
+
+Si WeeChat ressemble à ceci :
+
+....
+┌───────────────────────────────────────────────────────────────────────────┐
+│Bienvenue sur #test, canal de test │
+│12:52:27 --> | Flashy (flashcode@weechat.org) a rejoint #test │@Flashy│
+│12:52:27 -- | Pseudos #test: [@Flashy @joe +weebot peter] │@joe │
+│12:52:27 -- | Canal #test: 4 pseudos (2 ops, 1 voice, 1 normal) │+weebot│
+│12:52:27 -- | Canal créé le Tue Jan 27 06:30:17 2009 │peter │
+│12:54:15 peter | bonjour ! │ │
+│12:55:01 @joe | peter: hook_process: http://weechat.org/files/doc │ │
+│ | /devel/weechat_plugin_api.en.html#_weechat_hook_p │ │
+│ | rocess │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│ │ │
+│[12:55] [6] [irc/freenode] 3:#test(+n){4}* [H: 4:#abc(2,5), 6] │
+│[@Flashy(i)] salut peter!█ │
+└───────────────────────────────────────────────────────────────────────────┘
+....
+
+L'écran ressemblera à ça en mode dépouillé :
+
+....
+┌───────────────────────────────────────────────────────────────────────────┐
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│12:52 --> Flashy (flashcode@weechat.org) a rejoin #test │
+│12:52 -- Pseudos #test: [@Flashy @joe +weebot peter] │
+│12:52 -- Canal #test: 4 pseudos (2 ops, 1 voice, 1 normal) │
+│12:52 -- Canal créé le Tue Jan 27 06:30:17 2009 │
+│12:54 <peter> bonjour ! │
+│12:55 <@joe> peter: hook_process: http://weechat.org/files/doc/devel/weecha│
+│t_plugin_api.en.html#_weechat_hook_process │
+└───────────────────────────────────────────────────────────────────────────┘
+....
+
+Donc vous pouvez cliquer l'URL de 'joe' sans problème dans votre terminal (bien
+entendu cela suppose que votre terminal permet le clic sur les URLs).
+
+[[notify_levels]]
+=== Niveaux de notification
+
+Quatre niveaux sont possibles dans les messages affichés dans les tampons, du
+moins important au plus important :
+
+* 'low' : message avec faible importance (par exemple un join/part/quit irc)
+* 'message' : message d'un utilisateur
+* 'private' : message dans un tampon privé
+* 'highlight' : message avec highlight
+
+Chaque tampon a un niveau de notification, qui est utilisé pour décider quels
+messages ajouteront le tampon dans la hotlist.
+
+Le niveau de notification par défaut peut être défini avec l'option
+<<option_weechat.look.buffer_notify_default,weechat.look.buffer_notify_default>>,
+la valeur par défaut est 'all'.
+
+[width="50%",cols="3m,10",options="header"]
+|===
+| Niveau de notification | Niveau des messages ajoutés à la hotlist
+| none | (aucun)
+| highlight | 'highlight' + 'private'
+| message | 'highlight' + 'private' + 'message'
+| all | 'highlight' + 'private' + 'message' + 'low'
+|===
+
+Le niveau de notification peut être défini pour un ensemble de tampons, par
+exemple tous les tampons du serveur irc "freenode" :
+
+----
+/set weechat.notify.irc.freenode message
+----
+
+Définir le niveau de notification 'highlight' sur le canal "#weechat" seulement :
+
+----
+/set weechat.notify.irc.freenode.#weechat highlight
+----
+
+Le niveau de notification pour un tampon peut aussi être défini avec la
+commande `/buffer` :
+
+----
+/buffer notify highlight
+----
+
+[[key_bindings]]
+=== Raccourcis clavier par défaut
+
+[[key_bindings_command_line]]
+==== Touches pour la ligne de commande
+
+[width="100%",cols="^.^3,.^10,.^5",options="header"]
+|===
+| Touche | Description | Commande
+| key[←] .2+| Aller au caractère précédent sur la ligne de commande .2+| `/input move_previous_char`
+| key[ctrl-b]
+| key[→] .2+| Aller au caractère suivant sur la ligne de commande .2+| `/input move_next_char`
+| key[ctrl-f]
+| key[ctrl-←] .2+| Aller au mot précédent sur la ligne de commande .2+| `/input move_previous_word`
+| key[alt-b]
+| key[ctrl-→] .2+| Aller au mot suivant sur la ligne de commande .2+| `/input move_next_word`
+| key[alt-f]
+| key[Home] .2+| Aller au début de la ligne de commande .2+| `/input move_beginning_of_line`
+| key[ctrl-a]
+| key[End] .2+| Aller à la fin de la ligne de commande .2+| `/input move_end_of_line`
+| key[ctrl-e]
+| key[ctrl-c,b] | Insérer le code pour mettre le texte en gras | `/input insert \x02`
+| key[ctrl-c,c] | Insérer le code pour écrire en couleur | `/input insert \x03`
+| key[ctrl-c,i] | Insérer le code pour mettre le texte en italique | `/input insert \x1D`
+| key[ctrl-c,o] | Insérer le code pour réinitialiser la couleur | `/input insert \x0F`
+| key[ctrl-c,v] | Insérer le code pour écrire en couleur inversée | `/input insert \x16`
+| key[ctrl-c,_] | Insérer le code pour écrire en souligné | `/input insert \x1F`
+| key[Del] .2+| Effacer le caractère suivant sur la ligne de commande .2+| `/input delete_next_char`
+| key[ctrl-d]
+| key[Backsp.] .2+| Effacer le caractère précédent sur la ligne de commande .2+| `/input delete_previous_char`
+| key[ctrl-h]
+| key[ctrl-k] | Effacer du curseur jusqu'à la fin de la ligne de commande (la chaîne supprimée est copiée dans le presse-papiers) | `/input delete_end_of_line`
+| key[ctrl-r] | Chercher du texte dans l'historique du tampon (voir <<key_bindings_search_context,les touches pour le contexte de recherche>>) | `/input search_text`
+| key[ctrl-t] | Inverser deux caractères | `/input transpose_chars`
+| key[ctrl-u] | Effacer du curseur jusqu'au début de la ligne de commande (la chaîne supprimée est copiée dans le presse-papiers) | `/input delete_beginning_of_line`
+| key[ctrl-w] | Effacer le mot précédent sur la ligne de commande (la chaîne supprimée est copiée dans le presse-papiers) | `/input delete_previous_word`
+| key[ctrl-y] | Coller le contenu du presse-papiers | `/input clipboard_paste`
+| key[ctrl-_] | Défaire la dernière action sur la ligne de commande | `/input undo`
+| key[alt-_] | Refaire la dernière action sur la ligne de commande | `/input redo`
+| key[Tab] | Compléter la commande ou le pseudo (key[Tab] de nouveau : trouver la complétion suivante) | `/input complete_next`
+| key[shift-Tab] | Sans complétion, effectue une complétion partielle. Avec une complétion en cours, complète avec la complétion précédente | `/input complete_previous`
+| key[Enter] .3+| Exécuter la commande ou envoyer le message (en mode recherche : arrêter la recherche) .3+| `/input return`
+| key[ctrl-j]
+| key[ctrl-m]
+| key[↑] | Rappeler la commande précédente (en mode recherche : chercher plus haut) | `/input history_previous`
+| key[↓] | Rappeler la commande suivante (en mode recherche : chercher plus bas) | `/input history_next`
+| key[ctrl-↑] | Rappeler la commande précédente dans l'historique global (commun à tous les tampons) | `/input history_global_previous`
+| key[ctrl-↓] | Rappeler la commande suivante dans l'historique global (commun à tous les tampons) | `/input history_global_next`
+| key[alt-d] | Effacer le mot suivant (la chaîne supprimée est copiée dans le presse-papiers) | `/input delete_next_word`
+| key[alt-k] | Capturer une touche et insérer son code (et la commande associée si la commande existe) sur la ligne de commande | `/input grab_key_command`
+| key[alt-r] | Effacer entièrement la ligne de commande | `/input delete_line`
+| key[alt-s] | Activer/désactiver aspell | `/mute aspell toggle`
+|===
+
+[[key_bindings_buffers_windows]]
+==== Touches pour les tampons / fenêtres
+
+[width="100%",cols="^.^3,.^10,.^5",options="header"]
+|===
+| Touche | Description | Commande
+| key[ctrl-l] | Réafficher toute la fenêtre | `/window refresh`
+| key[ctrl-s,ctrl-u] | Positionner le marqueur de données non lues sur tous les tampons | `/input set_unread`
+| key[ctrl-x] | Changer de tampon courant si plusieurs tampons sont attachés avec le même numéro | `/input switch_active_buffer`
+| key[alt-x] | Zoomer sur le tampon mélangé (key[alt-x] de nouveau : afficher tous les tampons mélangés) | `/input zoom_merged_buffer`
+| key[PgUp] | Monter d'une page dans l'historique du tampon | `/window page_up`
+| key[PgDn] | Descendre d'une page dans l'historique du tampon | `/window page_down`
+| key[alt-PgUp] | Monter de quelques lignes dans l'historique du tampon | `/window scroll_up`
+| key[alt-PgDn] | Descendre de quelques lignes dans l'historique du tampon | `/window scroll_down`
+| key[alt-Home] | Aller au début du tampon | `/window scroll_top`
+| key[alt-End] | Aller à la fin du tampon | `/window scroll_bottom`
+| key[alt-←] .4+| Aller au tampon précédent .4+| `/buffer -1`
+| key[alt-↑]
+| key[ctrl-p]
+| key[F5]
+| key[alt-→] .4+| Aller au tampon suivant .4+| `/buffer +1`
+| key[alt-↓]
+| key[ctrl-n]
+| key[F6]
+| key[F7] | Aller à la fenêtre précédente | `/window -1`
+| key[F8] | Aller à la fenêtre suivante | `/window +1`
+| key[F9] | Faire défiler le titre du tampon vers la gauche | `/bar scroll title * -30%`
+| key[F10] | Faire défiler le titre du tampon vers la droite | `/bar scroll title * +30%`
+| key[F11] | Monter d'une page dans la liste des pseudos | `/bar scroll nicklist * -100%`
+| key[F12] | Descendre d'une page dans la liste des pseudos | `/bar scroll nicklist * +100%`
+| key[alt-F11] | Aller au début de la liste des pseudos | `/bar scroll nicklist * b`
+| key[alt-F12] | Aller à la fin de la liste des pseudos | `/bar scroll nicklist * e`
+| key[alt-a] | Sauter au prochain tampon avec activité (avec priorité : highlight, message, autre) | `/input jump_smart`
+| key[alt-h] | Vider la hotlist (notification d'activité sur les autres tampons) | `/input hotlist_clear`
+| key[alt-j,alt-f] | Sauter au premier tampon | `/buffer -`
+| key[alt-j,alt-l] | Sauter au dernier tampon | `/buffer +`
+| key[alt-j,alt-r] | Sauter au tampon IRC de données brutes | `/server raw`
+| key[alt-j,alt-s] | Sauter au tampon IRC du serveur | `/server jump`
+| key[alt-0...9] | Sauter au tampon qui porte ce numéro (0 = 10) | `/buffer *N`
+| key[alt-j,01...99] | Sauter au tampon qui porte ce numéro | `/buffer NN`
+| key[alt-l] | Activer/désactiver le mode d'affichage dépouillé | `/window bare`
+| key[alt-m] | Activer/désactiver la souris | `/mouse toggle`
+| key[alt-n] | Se positionner sur le highlight suivant | `/window scroll_next_highlight`
+| key[alt-p] | Se positionner sur le highlight précédent | `/window scroll_previous_highlight`
+| key[alt-u] | Se positionner sur la première ligne non lue du tampon | `/window scroll_unread`
+| key[alt-w,alt-↑] | Sauter à la fenêtre au dessus | `/window up`
+| key[alt-w,alt-↓] | Sauter à la fenêtre en dessous | `/window down`
+| key[alt-w,alt-←] | Sauter à la fenêtre de gauche | `/window left`
+| key[alt-w,alt-→] | Sauter à la fenêtre de droite | `/window right`
+| key[alt-w,alt-b] | Équilibrer la taille de toutes les fenêtres | `/window balance`
+| key[alt-w,alt-s] | Échanger les tampons de deux fenêtres | `/window swap`
+| key[alt-z] | Zoomer sur la fenêtre courante (key[alt-z] de nouveau : restaurer l'état initial des fenêtres, avant le zoom) | `/window zoom`
+| key[alt-]key[<] | Sauter au tampon précédent dans la liste des tampons visités | `/input jump_previously_visited_buffer`
+| key[alt-]key[>] | Sauter au tampon suivant dans la liste des tampons visités | `/input jump_next_visited_buffer`
+| key[alt-/] | Sauter au dernier tampon affiché (avant le dernier saut vers un tampon) | `/input jump_last_buffer_displayed`
+| key[alt-=] | Activer/désactiver les filtres | `/filter toggle`
+| key[alt--] | Activer/désactiver les filtres dans le tampon courant | `/filter toggle @`
+|===
+
+[[key_bindings_search_context]]
+==== Touches pour le contexte "search"
+
+Ces touches sont utilisées dans le contexte "search" (lorsque key[ctrl-r] est
+pressé pour chercher du texte dans le tampon).
+
+[width="100%",cols="^.^3,.^10,.^5",options="header"]
+|===
+| Touche | Description | Commande
+| key[ctrl-r] | Basculer le type de recherche : chaîne (par défaut), expression régulière | `/input search_switch_regex`
+| key[alt-c] | Basculer la casse exacte pour la recherche | `/input search_switch_case`
+| key[Tab] | Basculer la recherche dans : les messages (par défaut), les préfixes, les préfixes + messages | `/input search_switch_where`
+| key[↑] | Chercher la ligne précédente | `/input search_previous`
+| key[↓] | Chercher la ligne suivante | `/input search_next`
+| key[Enter] .3+| Arrêter la recherche .3+| `/input search_stop`
+| key[ctrl-j]
+| key[ctrl-m]
+|===
+
+[[key_bindings_cursor_context]]
+==== Touches pour le contexte "cursor"
+
+Ces touches sont utilisées dans le contexte "cursor" (mouvement libre du curseur
+à l'écran).
+
+[width="100%",cols="^.^3,^.^3,.^10,.^8",options="header"]
+|===
+| Touche | Zone | Description | Commande
+| key[↑] | - | Déplacer le curseur d'une ligne vers le haut | `/cursor move up`
+| key[↓] | - | Déplacer le curseur d'une ligne vers le bas | `/cursor move down`
+| key[←] | - | Déplacer le curseur d'une colonne vers la gauche | `/cursor move left`
+| key[→] | - | Déplacer le curseur d'une colonne vers la droite | `/cursor move right`
+| key[alt-↑] | - | Déplacer le curseur vers la zone au dessus | `/cursor move area_up`
+| key[alt-↓] | - | Déplacer le curseur vers la zone en dessous | `/cursor move area_down`
+| key[alt-←] | - | Déplacer le curseur vers la zone sur la gauche | `/cursor move area_left`
+| key[alt-→] | - | Déplacer le curseur vers la zone sur la droite | `/cursor move area_right`
+| key[m] | chat | Citer le message | `hsignal:chat_quote_message;/cursor stop`
+| key[q] | chat | Citer le préfixe + le message | `hsignal:chat_quote_prefix_message;/cursor stop`
+| key[Q] | chat | Citer l'heure + le préfixe + le message | `hsignal:chat_quote_time_prefix_message;/cursor stop`
+| key[b] | liste des pseudos | Bannir le pseudo | `/window ${_window_number};/ban ${nick}`
+| key[k] | liste des pseudos | Retirer par la force le pseudo | `/window ${_window_number};/kick ${nick}`
+| key[K] | liste des pseudos | Retirer par la force et bannir le pseudo | `/window ${_window_number};/kickban ${nick}`
+| key[q] | liste des pseudos | Ouvrir une discussion avec le pseudo | `/window ${_window_number};/query ${nick};/cursor stop`
+| key[w] | liste des pseudos | Effectuer un whois sur le pseudo | `/window ${_window_number};/whois ${nick}`
+| key[Enter] .3+| - .3+| Arrêter le mode curseur ("cursor") .3+| `/cursor stop`
+| key[ctrl-j]
+| key[ctrl-m]
+|===
+
+[[key_bindings_mouse_context]]
+==== Touches pour le contexte "mouse"
+
+Ces touches sont utilisées dans le contexte "mouse", c'est-à-dire lorsqu'un
+évènement de la souris se produit.
+
+[width="100%",cols="^.^3,^.^3,^.^3,.^10,.^8",options="header"]
+|===
+| Bouton ^(1)^ | Geste | Zone | Description | Commande
+| ◾◽◽ | - | chat | Aller à la fenêtre | `/window ${_window_number}`
+| ◾◽◽ | left | chat | Aller au tampon précédent | `/window ${_window_number};/buffer +1`
+| ◾◽◽ | right | chat | Aller au tampon suivant | `/window ${_window_number};/buffer +1`
+| ◾◽◽ | left (long) | chat | Aller au premier tampon | `/window ${_window_number};/buffer 1`
+| ◾◽◽ | right (long) | chat | Aller au dernier tampon | `/window ${_window_number};/input jump_last_buffer`
+| ◾◽◽ | - | chat (tampon script) | Sélectionner la ligne dans le tampon script | `/script go ${_chat_line_y}`
+| ◽◽◾ | - | chat (tampon script) | Installer/supprimer un script | `/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}`
+| ⇑ | - | chat | Monter de quelques lignes dans l'historique du tampon | `/window scroll_up -window ${_window_number}`
+| ⇓ | - | chat | Descendre de quelques lignes dans l'historique du tampon | `/window scroll_down -window ${_window_number}`
+| ⇑ | - | chat (tampon script) | Monter de 5 lignes dans le tampon script | `/script up 5`
+| ⇓ | - | chat (tampon script) | Descendre de 5 lignes dans le tampon script | `/script down 5`
+| key[ctrl-]⇑ | - | chat | Faire défiler horizontalement vers la gauche | `/window scroll_horiz -window ${_window_number} -10%`
+| key[ctrl-]⇓ | - | chat | Faire défiler horizontalement vers la droite | `/window scroll_horiz -window ${_window_number} +10%`
+| ◾◽◽ | up | liste des pseudos | Monter d'une page dans la liste des pseudos | `/bar scroll nicklist ${_window_number} -100%`
+| ◾◽◽ | down | liste des pseudos | Descendre d'une page dans la liste des pseudos | `/bar scroll nicklist ${_window_number} +100%`
+| ◾◽◽ | up (long) | liste des pseudos | Aller au début de la liste des pseudos | `/bar scroll nicklist ${_window_number} b`
+| ◾◽◽ | down (long) | liste des pseudos | Aller à la fin de la liste des pseudos | `/bar scroll nicklist ${_window_number} e`
+| ◾◽◽ | - | liste des pseudos | Ouvrir une discussion avec le pseudo | `/window ${_window_number};/query ${nick}`
+| ◽◽◾ | - | liste des pseudos | Effectuer un whois sur le pseudo | `/window ${_window_number};/whois ${nick}`
+| ◾◽◽ | left | liste des pseudos | Retirer par la force le pseudo | `/window ${_window_number};/kick ${nick}`
+| ◾◽◽ | left (long) | liste des pseudos | Retirer par la force et bannir le pseudo | `/window ${_window_number};/kickban ${nick}`
+| ◽◽◾ | left | liste des pseudos | Bannir le pseudo | `/window ${_window_number};/ban ${nick}`
+| ◽◽◾ | - | ligne de commande | Capturer un évènement de la souris et insérer son code sur la ligne de commande | `/input grab_mouse_area`
+| ⇑ | - | toute barre | Faire défiler la barre de -20% | `/bar scroll ${_bar_name} ${_window_number} -20%`
+| ⇓ | - | toute barre | Faire défiler la barre de +20% | `/bar scroll ${_bar_name} ${_window_number} +20%`
+| ◽◾◽ | - | n'importe où | Démarrer le mode curseur ("cursor") à ce point | `/cursor go ${_x},${_y}`
+|===
+
+[NOTE]
+^(1)^ "⇑" et "⇓" sont la roulette vers le haut et le bas.
+
+[[mouse]]
+=== Support souris
+
+WeeChat supporte les clics et mouvements avec la souris. Cela fonctionne avec un
+terminal local, et à distance via une connexion ssh, avec ou sans screen/tmux.
+
+[[mouse_enable]]
+==== Activer la souris
+
+Pour activer la souris au démarrage :
+
+----
+/set weechat.look.mouse on
+----
+
+Pour activer la souris maintenant, appuyez sur key[alt-m] ou lancez la commande
+suivante :
+
+----
+/mouse enable
+----
+
+Il est possible de désactiver temporairement la souris, et associer ça à une
+touche. Par exemple la touche key[alt-x] pour désactiver la souris pendant 10
+secondes :
+
+----
+/key bind meta-x /mouse toggle 10
+----
+
+Lorsque la souris est activée dans WeeChat, vous pouvez utiliser la touche
+key[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 key[alt] au
+lieu de key[shift]).
+
+[NOTE]
+Pour tout problème avec la souris, merci de consulter la 'FAQ WeeChat'.
+
+[[mouse_bind_events]]
+==== Associer des évènements souris à des commandes
+
+De nombreux évènements souris sont déjà définis par WeeChat (voir
+<<key_bindings_mouse_context,les touches pour le contexte "mouse">>).
+
+Vous pouvez modifier ou ajouter des associations avec la commande `/key` en
+utilisant le contexte "mouse" (pour la syntaxe voir la commande
+<<command_weechat_key,/key>>).
+
+Un nom d'évènement consiste en un modificateur (facultatif), un bouton/roulette
+et un geste (facultatif). Les différents éléments sont séparés par "-".
+
+Liste des modificateurs :
+
+[width="50%",cols="3m,4",options="header"]
+|===
+| Modificateur | Description
+| ctrl | Touche key[ctrl]
+| alt | Touche key[alt]
+| ctrl-alt | Touches key[ctrl-]key[alt]
+|===
+
+Liste des boutons/roulette :
+
+[width="50%",cols="3m,4",options="header"]
+|===
+| Bouton/roulette | Description
+| button1 | Clic sur le bouton gauche
+| button2 | Clic sur le bouton droit
+| button3 | Clic sur le bouton du milieu (souvent clic sur la roulette)
+| button4 ... button9 | Clic sur un bouton additionnel
+| wheelup | Roulette (haut)
+| wheeldown | Roulette (bas)
+|===
+
+Liste des gestes (seulement pour les boutons, pas la roulette) :
+
+[width="50%",cols="3m,4",options="header"]
+|===
+| Geste | Distance
+| gesture-up | 3 ... 19
+| gesture-up-long | ≥ 20
+| gesture-down | 3 ... 19
+| gesture-down-long | ≥ 20
+| gesture-left | 3 ... 39
+| gesture-left-long | ≥ 40
+| gesture-right | 3 ... 39
+| gesture-right-long | ≥ 40
+|===
+
+Liste des évènements incomplets (seulement pour les boutons, pratique pour les
+extensions/scripts) :
+
+[width="50%",cols="3m,4",options="header"]
+|===
+| Évènement | Description
+| event-down | Le bouton a été pressé mais pas encore relâché
+| event-drag | La souris a bougé avec le bouton pressé
+|===
+
+Exemples d'évènements :
+
+* `button1`
+* `ctrl-button1`
+* `button1-gesture-right`
+* `button1-event-down`
+* `button1-event-drag`
+* `alt-button2-gesture-down-long`
+* `wheelup`
+* `ctrl-alt-wheeldown`
+* ...
+
+[TIP]
+Lors de l'association d'une touche dans le contexte "mouse", il est possible
+d'adresser plusieurs évènements en utilisant `*` au début ou la fin du nom,
+par exemple `button1-gesture-*` qui correspond à n'importe quel geste effectué
+avec le bouton gauche.
+
+[TIP]
+Vous pouvez trouver le nom de l'évènement avec la commande `/input grab_mouse`
+puis en faisant l'action avec la souris. Cela insérera le nom de l'évènement
+sur la ligne de commande.
+
+[[command_line]]
+=== Ligne de commande
+
+La ligne de commande WeeChat (située en bas de la fenêtre) permet d'exécuter
+des commandes ou d'envoyer du texte vers le tampon.
+
+[[command_line_syntax]]
+==== Syntaxe
+
+Les commandes débutent par un caractère "/", suivi du nom de la
+commande. Par exemple pour afficher la liste de toutes les options :
+
+----
+/set
+----
+
+Le texte envoyé à un tampon est tout texte ne commençant pas par le
+caractère "/", par exemple pour envoyer 'bonjour' sur le tampon courant :
+
+----
+bonjour
+----
+
+Il est cependant possible de faire débuter un texte par "/" en le
+doublant. Par exemple pour envoyer le texte '/set' sur le tampon courant :
+
+----
+//set
+----
+
+[[command_line_colors]]
+==== Codes couleurs
+
+Pour certaines extensions comme IRC, il est possible d'utiliser des codes
+couleur et attributs comme suit (appuyer sur key[ctrl-c] puis sur la lettre qui
+suit et éventuellement une valeur) :
+
+key[ctrl-c,b]::
+ texte gras
+
+key[ctrl-c,c], key[xx]::
+ couleur du texte `xx` (voir la liste des couleurs ci-dessous)
+
+key[ctrl-c,c], key[xx]key[,]key[yy]::
+ couleur du texte `xx` et du fond `yy` (voir la liste des couleurs
+ ci-dessous)
+
+key[ctrl-c,i]::
+ texte en italique
+
+key[ctrl-c,o]::
+ désactiver la couleur et tous les attributs
+
+key[ctrl-c,v]::
+ vidéo inverse (inversion de la couleur d'écriture et du fond)
+
+key[ctrl-c,_]::
+ texte souligné
+
+[NOTE]
+Le même code (sans le numéro pour key[ctrl-c,c]) peut être utilisé pour
+stopper l'attribut défini.
+
+Les codes couleur pour key[ctrl-c,c] sont :
+
+[width="50%",cols="^1m,3,3",options="header"]
+|===
+| Code | IRC | WeeChat (curses)
+| 00 | blanc | white
+| 01 | noir | black
+| 02 | bleu foncé | blue
+| 03 | vert foncé | green
+| 04 | rouge clair | lightred
+| 05 | rouge foncé | red
+| 06 | violet | magenta
+| 07 | orange | brown
+| 08 | jaune | yellow
+| 09 | vert clair | lightgreen
+| 10 | cyan | cyan
+| 11 | cyan clair | lightcyan
+| 12 | bleu clair | lightblue
+| 13 | violet clair | lightmagenta
+| 14 | gris | darkgray
+| 15 | gris clair | gray
+|===
+
+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^Cutout le monde^Cu^Cc !
+----
+
+[NOTE]
+Dans l'extension irc, vous pouvez réassigner les couleurs en utilisant l'option
+<<option_irc.color.mirc_remap,irc.color.mirc_remap>>.
+
+[[colors]]
+=== Couleurs
+
+WeeChat peut utiliser jusqu'à 256 paires de couleur pour afficher le texte dans
+les barres et la zone de discussion (votre terminal doit supporter 256 couleurs
+pour pouvoir les utiliser dans WeeChat).
+
+Selon la valeur de la variable d'environnement 'TERM', vous pouvez avoir les
+limites suivantes pour les couleurs dans WeeChat :
+
+[width="50%",cols="8,>2,>2",options="header"]
+|===
+| $TERM | Couleurs | Paires ^(1)^
+| "rxvt-unicode", "xterm", ... | 88 | 256
+| "rxvt-256color", "xterm-256color", ... | 256 | 32767
+| "screen" | 8 | 64
+| "screen-256color" | 256 | 32767
+|===
+
+[NOTE]
+^(1)^ Même si votre terminal supporte plus de 256 paires, seules 256 paires
+peuvent être utilisées dans WeeChat, en raison d'une limitation de ncurses.
+
+Vous pouvez lancer `weechat --colors` ou utiliser la commande `/color`
+dans WeeChat pour afficher les limites de votre environnement.
+
+Quelques valeurs recommandées pour 'TERM' si vous voulez 256 couleurs :
+
+* sous screen : 'screen-256color'
+* en dehors de screen : 'xterm-256color', 'rxvt-256color', 'putty-256color', ...
+
+Si vous utilisez screen, vous pouvez ajouter cette ligne dans votre '~/.screenrc':
+
+[NOTE]
+Vous devrez peut-être installer le paquet "ncurses-term" pour utiliser ces
+valeurs dans la variable 'TERM'.
+
+----
+term screen-256color
+----
+
+Si votre variable 'TERM' a une valeur erronée et que WeeChat est déjà lancé,
+ne paniquez pas ! Vous pouvez la changer sans redémarrer, grâce au script
+'shell.py' :
+
+----
+/shell setenv TERM=screen-256color
+/upgrade
+----
+
+[[colors_basic]]
+==== Couleurs de base
+
+Les couleurs de base dans WeeChat sont :
+
+[width="50%",cols="^3m,8",options="header"]
+|===
+| Nom | Couleur
+| default | Couleur par défaut du terminal (transparent pour le fond)
+| black | Noir
+| darkgray | Gris foncé
+| 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
+| gray | Gris
+| white | Blanc
+|===
+
+[[colors_extended]]
+==== Couleurs étendues
+
+WeeChat alloue dynamiquement les paires de couleurs quand elles sont utilisées
+sur l'écran (pour afficher les tampons et les barres).
+
+En plus des couleurs de base, vous pouvez utiliser un numéro de couleur entre 1
+et la limite de votre terminal.
+
+Utilisez la commande `/color` pour voir les couleurs et les limites. Avec la
+touche key[alt-c], vous pouvez basculer temporairement vers les couleurs du
+terminal pour choisir une couleur.
+
+Par exemple si vous souhaitez afficher l'heure en orange dans le tampon,
+faites :
+
+----
+/set weechat.color.chat_time 214
+----
+
+Ou si vous voulez un fond vert très foncé pour la barre de statut :
+
+----
+/set weechat.bar.status.color_bg 22
+----
+
+[[colors_aliases]]
+==== Alias
+
+Vous pouvez ajouter des alias de couleur avec la commande `/color alias` puis
+utiliser cet alias dans n'importe quelle option de couleur.
+
+Par exemple :
+
+----
+/color alias 214 orange
+/set weechat.color.chat_delimiters orange
+----
+
+[[colors_attributes]]
+==== Attributs
+
+Il est possible d'utiliser des attributs pour les couleurs. Un ou plusieurs
+attributs peuvent être ajoutés avant le nom ou le numéro de la couleur :
+
+* `*` : texte gras
+* `!` : mode vidéo inverse
+* `/` : italique
+* `_` : texte souligné
+* `|` : garder les attributs : ne pas réinitialiser gras/inverse/souligné lors
+ du changement de couleur
+
+Par exemple si vous voulez votre pseudo en blanc souligné, faites :
+
+----
+/set weechat.color.chat_nick_self _white
+----
+
+Ou si vous voulez l'heure dans la barre de statut en orange souligné avec gras :
+
+----
+/set weechat.color.status_time *_214
+----
+
+Pour utiliser un attribut avec la couleur par défaut du terminal (-1), vous
+devez utiliser un nombre supérieur à la dernière couleur du terminal, par
+exemple la couleur maximum de WeeChat : 99999.
+
+Exemple de gras avec la couleur de texte du terminal :
+
+----
+/set weechat.color.status_time *99999
+----
+
+[[secured_data]]
+=== Données sécurisées
+
+[[secured_data_storage]]
+==== Stockage
+
+WeeChat peut chiffrer les mots de passe ou les données sensibles en utilisant
+des données sécurisées, stockées dans le fichier 'sec.conf'.
+
+Ce fichier de configuration est lu avant tout autre fichier, et les valeurs
+ici stockées peuvent être utilisées dans diverses options de WeeChat ou des
+extensions/scripts.
+
+Vous pouvez définir une phrase secrète pour chiffrer les données dans le fichier
+'sec.conf'. Ce n'est pas obligatoire, mais fortement recommandé, sinon les
+données sont stockées sous forme de texte en clair dans le fichier.
+
+----
+/secure passphrase ceci est ma phrase secrète
+----
+
+Lorsqu'une phrase secrète est définie, WeeChat vous demandera de la saisir lors
+du démarrage (mais pas sur `/upgrade`).
+
+Vous pouvez modifier ce comportement et utiliser un fichier avec la phrase
+secrète (voir l'option
+<<option_sec.crypt.passphrase_file,sec.crypt.passphrase_file>>).
+
+[[secured_data_encryption]]
+===== Chiffrement
+
+Le chiffrement des données se fait en 3 étapes :
+
+. Dériver une clé de la phrase secrète (avec du salage en option).
+. Calculer la somme de contrôle des données à chiffrer.
+. Chiffrer la seomme de contrôle + les données (la sortie est : sel + somme de
+ contrôle et données chiffrées).
+
+[NOTE]
+Le mode de chiffrement par bloc est 'CFB'.
+
+Le résultat est stocké sous forme d'une chaîne hexadécimale dans le fichier
+'sec.conf', par exemple :
+
+----
+[data]
+__passphrase__ = on
+freenode = "53B1C86FCDA28FC122A95B0456ABD79B5AB74654F21C3D099A6CCA8173239EEA59533A1D83011251F96778AC3F5166A394"
+----
+
+[[secured_data_decryption]]
+===== Déchiffrement
+
+Le déchiffrement des données se fait en 3 étapes :
+
+. Dériver une clé en utilisant le sel et la phrase secrète.
+. Déchiffrer la somme de contrôle et les données.
+. Vérifier que la somme de contrôle déchiffrée correspond à la somme de contrôle
+ des données.
+
+[[secured_data_manage]]
+==== Gérer les données sécurisées
+
+Pour ajouter une donnée sécurisée, utilisez la commande `/secure set`, par
+exemple un mot de passe pour le serveur IRC 'freenode' :
+
+----
+/secure set freenode motdepasse
+----
+
+Pour plus de confort, les données sécurisées peuvent être affichées dans un
+tampon dédié (touche key[alt-v] sur le tampon pour voir les valeurs), faites
+simplement :
+
+----
+/secure
+----
+
+Les données sécurisées peuvent être utilisées dans quelques options qui peuvent
+contenir des données sensibles comme un mot de passe, en utilisant ce format :
+"${sec.data.xxx}" où "xxx" est le nom de la donnée sécurisée (utilisé dans la
+commande `/secure set xxx ...`). +
+Pour une liste complète des options supportées, voir `/help secure`.
+
+Pour utiliser le mot de passe 'freenode', par exemple avec
+<<irc_sasl_authentication,l'authentification SASL>>:
+
+----
+/set irc.server.freenode.sasl_password "${sec.data.freenode}"
+----
+
+[[options_and_commands]]
+=== Options et commandes
+
+[[sec_options]]
+==== Options des données sécurisées (sec.conf)
+
+Sections :
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| crypt | /set sec.crypt.* | Options pour le chiffrement
+| data | <<command_weechat_secure,/secure>> | Données sécurisées
+|===
+
+Options :
+
+include::autogen/user/sec_options.asciidoc[]
+
+[[weechat_options]]
+==== Options WeeChat (weechat.conf)
+
+Sections :
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| debug | <<command_weechat_debug,/debug set>> +
+ /set weechat.debug.* | Niveau de debug, pour le cœur et les extensions (les options peuvent être ajoutées/supprimées dans la section)
+| startup | /set weechat.startup.* | Options de démarrage
+| look | /set weechat.look.* | Aspect/présentation
+| palette | <<command_weechat_color,/color alias>> +
+ /set weechat.palette.* | Alias de couleurs (les options peuvent être ajoutées/supprimées dans la section)
+| color | /set weechat.color.* | Couleurs
+| completion | /set weechat.completion.* | Options de complétion
+| history | /set weechat.history.* | Options d'historique (commandes et tampons)
+| proxy | <<command_weechat_proxy,/proxy>> +
+ /set weechat.proxy.* | Options des proxies
+| network | /set weechat.network.* | Options réseau/SSL
+| bar | <<command_weechat_bar,/bar>> +
+ /set weechat.bar.* | Options des barres
+| layout | <<command_weechat_layout,/layout>> | Dispositions
+| notify | <<command_weechat_buffer,/buffer notify>> | Niveaux de notification des tampons (les options peuvent être ajoutées/supprimées dans la section)
+| filter | <<command_weechat_filter,/filter>> | Filtres
+| key | <<command_weechat_key,/key>> | Touches pour le contexte "default"
+| key_search | <<command_weechat_key,/key>> | Touches pour le contexte "search"
+| key_cursor | <<command_weechat_key,/key>> | Touches pour le contexte "cursor"
+| key_mouse | <<command_weechat_key,/key>> | Touches pour le contexte "mouse"
+|===
+
+Options :
+
+include::autogen/user/weechat_options.asciidoc[]
+
+[[weechat_commands]]
+==== Commandes WeeChat
+
+include::autogen/user/weechat_commands.asciidoc[]
+
+[[plugins]]
+== Extensions
+
+Une extension est une bibliothèque dynamique, écrite en C et compilée, qui est
+chargée par WeeChat.
+Sous GNU/Linux, ce fichier a une extension ".so", et ".dll" sous Windows.
+
+Les extensions trouvées sont automatiquement chargées par WeeChat lorsqu'il
+démarre, et il est possible de charger et décharger des extensions pendant que
+WeeChat tourne.
+
+Il est important de bien faire la différence entre une 'extension' et un
+'script' : une 'extension' est un fichier binaire compilé et chargé avec la
+commande `/plugin`, tandis qu'un 'script' est un fichier texte chargé par une
+extension comme 'python' par la commande `/python`.
+
+Vous pouvez utiliser la commande `/plugin` pour charger/décharger une
+extension, ou afficher les extensions chargées.
+Quand une extension est déchargée, tous les tampons créés par cette
+extension sont automatiquement fermés.
+
+Exemples pour charger, décharger et afficher les extensions :
+
+----
+/plugin load irc
+/plugin unload irc
+/plugin list
+----
+
+Les extensions par défaut sont :
+
+[width="50%",cols="^1,5",options="header"]
+|===
+| Extension | Description
+| alias | Définir des alias pour les commandes
+| aspell | Vérification orthographique de la ligne de commande
+| charset | Encodage/encodage avec jeu de caractère sur les tampons
+| exec | Exécution de commandes externes dans WeeChat
+| fifo | Tube FIFO pour envoyer des commandes à distance vers WeeChat
+| irc | Discussion avec le protocole IRC
+| logger | Enregistrement des tampons dans des fichiers
+| relay | Relai de données via le réseau
+| script | Gestionnaire de scripts
+| python | Interface (API) pour scripts Python
+| perl | Interface (API) pour scripts Perl
+| ruby | Interface (API) pour scripts Ruby
+| lua | Interface (API) pour scripts Lua
+| tcl | Interface (API) pour scripts Tcl
+| guile | Interface (API) pour scripts Guile (scheme)
+| trigger | Remplacement de texte et exécution de commande sur des évènements de WeeChat ou des extensions
+| xfer | Transfert de fichier et discussion directe
+|===
+
+Pour en apprendre plus sur le développement d'extension ou de script (via
+l'API), merci de consulter la 'Référence API Extension WeeChat' ou le 'Guide
+pour Scripts WeeChat'.
+
+[[alias_plugin]]
+=== Extension Alias
+
+L'extension Alias permet de définir des alias pour des commandes (WeeChat ou
+d'autres extensions).
+
+[[alias_commands]]
+==== Commandes
+
+include::autogen/user/alias_commands.asciidoc[]
+
+[[aspell_plugin]]
+=== Extension Aspell
+
+L'extension Aspell permet de vérifier l'orthographe de la ligne de commande.
+Il est possible d'utiliser plusieurs langages par tampon.
+
+[[aspell_options]]
+==== Options (aspell.conf)
+
+Sections :
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| color | /set aspell.color.* | Couleurs
+| check | /set aspell.check.* | Options pour contrôler la vérification orthographique
+| dict | <<command_aspell_aspell,/aspell setdict>> +
+ /set aspell.dict.* | Dictionnaires utilisés par tampon (les options peuvent être ajoutées/supprimées dans la section)
+| option | /set aspell.option.* | <<aspell_speller_options,Options du vérificateur d'orthographe>> (les options peuvent être ajoutées/supprimées dans la section)
+|===
+
+Options :
+
+include::autogen/user/aspell_options.asciidoc[]
+
+[[aspell_commands]]
+==== Commandes
+
+include::autogen/user/aspell_commands.asciidoc[]
+
+[[aspell_speller_options]]
+==== Options du vérificateur d'orthographe
+
+Les options du vérificateur d'orthographe peuvent être définies en ajoutant des
+options dans la section "option" de la configuration aspell.
+
+Le nom de l'option est une option de configuration aspell. La liste des options
+peut être trouvée par la commande suivante sous le shell :
+
+----
+$ aspell config
+----
+
+Par exemple, pour activer l'option "ignore-case":
+
+----
+/set aspell.option.ignore-case "true"
+----
+
+[[aspell_suggestions]]
+==== Suggestions
+
+Les suggestions sont affichées dans un objet de barre appelé "aspell_suggest".
+Le nombre de suggestions est défini dans l'option 'aspell.check.suggestions'.
+
+Pour activer les suggestions, vous devez modifier l'option
+'aspell.check.suggestions' avec un entier ≥ 0 et ajouter l'objet de barre
+"aspell_suggest" à une barre, par exemple 'status'.
+
+Exemple de suggestions avec un dictionnaire anglais (`en`) :
+
+....
+│[12:55] [6] [irc/freenode] 3:#test(+n){4} [print,prone,prune] │
+│[@Flashy] prinr █ │
+└─────────────────────────────────────────────────────────────────────────────────┘
+....
+
+Exemple de suggestions avec des dictionnaires anglais et français (`en,fr`) :
+
+....
+│[12:55] [6] [irc/freenode] 3:#test(+n){4} [print,prone,prune/prime,primer,primé] │
+│[@Flashy] prinr █ │
+└─────────────────────────────────────────────────────────────────────────────────┘
+....
+
+[[charset_plugin]]
+=== Extension Charset
+
+L'extension Charset vous permet de décoder et encoder les données en utilisant
+un jeu de caractères.
+
+Il y a un jeu de caractère par défaut pour le décodage/encodage, et un
+spécifique pour les tampons (ou groupes de tampons).
+
+Cette extension est facultative, mais recommandée : si elle n'est pas chargée,
+WeeChat pourra uniquement lire/écrire des données UTF-8.
+
+L'extension Charset devrait être automatiquement chargée par WeeChat au
+démarrage. Pour s'assurer que l'extension est bien chargée, essayez :
+
+----
+/charset
+----
+
+Si la commande n'est pas trouvée, alors chargez l'extension avec la commande :
+
+----
+/plugin load charset
+----
+
+Si l'extension n'est pas trouvée, alors vous devriez recompiler WeeChat avec
+les extensions et le support de Charset.
+
+Lorsque l'extension Charset démarre, elle affiche le jeu de caractères du
+terminal et l'interne.
+Le jeu de caractères du terminal dépend de votre locale, et l'interne est
+UTF-8.
+
+Par exemple :
+
+....
+charset: terminal: ISO-8859-15, interne: UTF-8
+....
+
+[[charset_options]]
+==== Options (charset.conf)
+
+Sections :
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| default | /set charset.default.* | Jeu de caractère d'encodage/décodage par défaut
+| decode | <<command_charset_charset,/charset decode>> +
+ /set charset.decode.* | Jeu de caractère d'encodage par tampon (les options peuvent être ajoutées/supprimées dans la section)
+| encode | <<command_charset_charset,/charset encode>> +
+ /set charset.encode.* | Jeu de caractère de décodage par tampon (les options peuvent être ajoutées/supprimées dans la section)
+|===
+
+Options :
+
+include::autogen/user/charset_options.asciidoc[]
+
+[[charset_commands]]
+==== Commandes
+
+include::autogen/user/charset_commands.asciidoc[]
+
+[[charset_set]]
+==== Définir le jeu de caractère
+
+Pour modifier les jeux de caractères de décodage et d'encodage
+globaux, utilisez la commande `/set`.
+
+Par exemple :
+
+----
+/set charset.default.decode ISO-8859-15
+/set charset.default.encode ISO-8859-15
+----
+
+Si le jeu de caractères de décodage global n'est pas renseigné (par exemple
+pendant le premier chargement de Charset), il sera renseigné automatiquement
+avec le jeu de caractères du terminal (s'il est différent de UTF-8) ou par
+défaut à 'ISO-8859-1'.
+
+La valeur d'encodage par défaut est vide, donc WeeChat envoie par défaut avec
+le jeu de caractères interne (UTF-8).
+
+Pour modifier le jeu de caractères d'un serveur IRC, utilisez la commande
+`/charset` sur le tampon serveur.
+Si vous donnez seulement le jeu de caractères, alors vous
+modifiez en même temps les valeurs de décodage et d'encodage.
+
+Par exemple :
+
+----
+/charset ISO-8859-15
+----
+
+Ce qui est équivalent à :
+
+----
+/charset decode ISO-8859-15
+/charset encode ISO-8859-15
+----
+
+Pour modifier le jeu de caractères d'un canal IRC (ou d'une conversation
+privée), utilisez la même commande que pour le serveur, mais sur le tampon du
+canal (ou du privé).
+
+Pour définir le jeu de caractères pour tous les canaux/privés d'un serveur IRC :
+
+----
+/set charset.encode.irc.freenode ISO-8859-15
+----
+
+Pour voir tous les jeux de caractères utilisés, utilisez la commande suivante :
+
+----
+/set charset.*
+----
+
+[[charset_troubleshooting]]
+==== En cas de problème
+
+Pour tout problème avec les jeux de caractères, merci de consulter la
+'FAQ WeeChat'.
+
+[[exec_plugin]]
+=== Extension Exec
+
+La commande `/exec` vous permet de lancer des commandes externes dans WeeChat et
+d'afficher la sortie localement, ou de l'envoyer à un tampon.
+
+[[exec_options]]
+==== Options (exec.conf)
+
+Sections :
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| command | /set exec.command.* | Options for commands
+| color | /set exec.color.* | Colors
+|===
+
+Options :
+
+include::autogen/user/exec_options.asciidoc[]
+
+[[exec_commands]]
+==== Commandes
+
+include::autogen/user/exec_commands.asciidoc[]
+
+[[fifo_plugin]]
+=== Extension Fifo
+
+Vous pouvez contrôler WeeChat à distance, en envoyant des commandes ou du
+texte dans un tube FIFO (si l'option 'plugins.var.fifo.fifo' est activée,
+elle l'est par défaut).
+
+Le tube FIFO est dans le répertoire '~/.weechat/' et s'appelle
+'weechat_fifo_xxxx' (où 'xxxx' est l'ID du processus (PID) du WeeChat qui
+tourne).
+
+La syntaxe pour envoyer des commandes ou du texte dans le tube FIFO est une
+des suivantes :
+
+....
+ plugin.buffer *texte ou commande ici
+ *texte ou commande ici
+....
+
+Quelques exemples :
+
+* changement du pseudo sur freenode en "autrepseudo" :
+
+----
+$ echo 'irc.server.freenode */nick autrepseudo' >~/.weechat/weechat_fifo_12345
+----
+
+* affichage de texte sur le canal IRC #weechat :
+
+----
+$ echo 'irc.freenode.#weechat *bonjour !' >~/.weechat/weechat_fifo_12345
+----
+
+* affichage de texte sur le tampon courant :
+
+----
+$ echo '*bonjour !' >~/.weechat/weechat_fifo_12345
+----
+
+* envoyer deux commandes pour décharger/recharger les scripts Python (vous devez
+ les séparer par "\n") :
+
+----
+$ printf '%b' '*/python unload\n*/python autoload\n' >~/.weechat/weechat_fifo_12345
+----
+
+Vous pouvez écrire un script qui envoie les commandes à tous les WeeChat qui
+tournent en même temps, par exemple :
+
+[source,shell]
+----
+#!/bin/sh
+if [ $# -eq 1 ]; then
+ for fifo in ~/.weechat/weechat_fifo_*
+ do
+ printf '%b\n' "$1" >"$fifo"
+ done
+fi
+----
+
+Si le script s'appelle "auto_weechat_command", vous pouvez le lancer ainsi :
+
+----
+$ ./auto_weechat_command 'irc.freenode.#weechat *bonjour'
+----
+
+[[irc_plugin]]
+=== Extension IRC
+
+L'extension IRC permet de dialoguer avec d'autres personnes via le
+protocole IRC.
+
+Elle est multi-serveurs, et offre toutes les commandes IRC supportées, y
+compris la discussion directe (DCC chat) et le transfert de fichier DCC
+(via l'extension xfer, voir <<xfer_plugin,extension Xfer>>).
+
+[[irc_command_line_options]]
+==== Options de ligne de commande
+
+Il est possible de passer une URL pour un ou plusieurs serveurs, comme suit :
+
+----
+irc[6][s]://[pseudo[:mot_passe]@]irc.example.org[:port][/canal][,canal[...]]
+----
+
+Exemple pour rejoindre '#weechat' et '#toto' sur le serveur 'irc.freenode.net',
+port par défaut (6667), avec le pseudo 'nono' :
+
+----
+$ weechat irc://nono@irc.freenode.net/#weechat,#toto
+----
+
+[[irc_options]]
+==== Options (irc.conf)
+
+Sections :
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| look | /set irc.look.* | Aspect/présentation
+| color | /set irc.color.* | Couleurs
+| network | /set irc.network.* | Options réseau
+| msgbuffer | /set irc.msgbuffer.* | <<irc_target_buffer,Tampon cible pour les messages IRC>> (les options peuvent être ajoutées/supprimées dans la section)
+| ctcp | /set irc.ctcp.* | <<irc_ctcp_replies,Réponses CTCP>> (les options peuvent être ajoutées/supprimées dans la section)
+| ignore | <<command_irc_ignore,/ignore>> | Personnes ignorées
+| server_default | /set irc.server_default.* | Valeurs par défaut pour serveurs (les options peuvent être ajoutées/supprimées dans la section)
+| server | <<command_irc_server,/server>> +
+ /set irc.server.* | Serveurs
+|===
+
+Options :
+
+include::autogen/user/irc_options.asciidoc[]
+
+[[irc_commands]]
+==== Commandes
+
+include::autogen/user/irc_commands.asciidoc[]
+
+[[irc_ssl_certificates]]
+==== Certificats SSL
+
+Lors de la connexion à un serveur IRC avec SSL, WeeChat vérifie par défaut que
+la connexion est entièrement de confiance.
+
+Quelques options sont utilisées pour contrôler la connexion SSL :
+
+weechat.network.gnutls_ca_file::
+ chemin vers le fichier avec les certificats de confiance (par défaut :
+ "%h/ssl/CAs.pem")
+
+irc.server.xxx.ssl_cert::
+ fichier de certificat SSL utilisé pour authentifier automatiquement votre
+ pseudo (par exemple CertFP sur oftc, voir ci-dessous)
+
+irc.server.xxx.ssl_dhkey_size::
+ taille de clé utilisée pour l'échange de clé Diffie-Hellman (par défaut :
+ 2048)
+
+irc.server.xxx.ssl_verify::
+ vérifier que la connexion SSL est entièrement de confiance (activé par
+ défaut)
+
+[NOTE]
+L'option "ssl_verify" est activée par défaut, donc la vérification est stricte
+et peut échouer, même si cela pouvait être OK dans les versions inférieures à
+0.3.1.
+
+[[irc_connect_oftc_with_certificate]]
+===== Premier exemple : se connecter à oftc en vérifiant le certificat
+
+* Importer le certificat sous le shell :
+
+----
+$ mkdir -p ~/.weechat/ssl
+$ wget -O ~/.weechat/ssl/CAs.pem http://www.spi-inc.org/ca/spi-cacert.crt
+----
+
+Note: il est possible de concaténer plusieurs certificats dans une le fichier
+CAs.pem.
+
+* Sous WeeChat, avec le serveur "oftc" déjà créé :
+
+----
+/connect oftc
+----
+
+[[irc_connect_oftc_with_certfp]]
+===== Second exemple : se connecter à oftc en utilisant CertFP
+
+* Créer le certificat sous le shell :
+
+----
+$ mkdir -p ~/.weechat/ssl
+$ cd ~/.weechat/ssl
+$ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem
+----
+
+* Sous WeeChat, avec le serveur "oftc" déjà créé :
+
+----
+/set irc.server.oftc.ssl_cert "%h/ssl/nick.pem"
+/connect oftc
+/msg nickserv cert add
+----
+
+Pour plus d'informations, consulter http://www.oftc.net/oftc/NickServ/CertFP
+
+[[irc_sasl_authentication]]
+==== Authentification avec SASL
+
+WeeChat supporte l'authentification avec SASL, en utilisant différents
+mécanismes :
+
+* 'plain' : mot de passe en clair
+* 'dh-blowfish' : mot de passe chiffré avec blowfish
+* 'dh-aes' : mot de passe chiffré avec AES
+* 'external' : certificat SSL côté client
+
+Les options dans le serveur sont :
+
+* 'sasl_mechanism' : mécanisme à utiliser (voir ci-dessus)
+* 'sasl_timeout' : délai d'attente maximum (en secondes) pour l'authentification
+* 'sasl_username' : nom d'utilisateur (pseudo)
+* 'sasl_password' : mot de passe
+
+Si vous voulez utiliser "dh-blowfish" par défaut pour tous les serveurs :
+
+----
+/set irc.server_default.sasl_mechanism dh-blowfish
+----
+
+[NOTE]
+La librairie "gcrypt" est requise lors de la compilation de WeeChat pour
+utiliser le mécanisme "dh-blowfish" (voir <<dependencies,les dépendances>>).
+
+[[irc_tor_freenode]]
+==== Connexion à Freenode avec TOR/SASL
+
+En plus du SSL, les serveurs Freenode supportent les connexions avec TOR
+(https://www.torproject.org/), un réseau de tunnels virtuels qui permet aux
+personnes et groupes d'améliorer leur vie privée et sécurité sur Internet.
+
+Premièrement, assurez-vous d'avoir compilé WeeChat avec
+<<dependencies,libgcrypt11-dev>> (si construit depuis les sources); ce n'est
+pas obligatoire, mais "dh-blowfish" assure une meilleure sécurité comparé à
+l'authentification "plain" avec SASL.
+
+En premier lieu, installez TOR. Pour Debian (et dérivés) :
+
+----
+$ sudo apt-get install tor
+----
+
+Sous WeeChat vous devez créer un proxy socks5 pour le service TOR (le nom/IP
+et port dépend de votre configuration de TOR) :
+
+----
+/proxy add tor socks5 127.0.0.1 9050
+----
+
+Maintenant, créez un nouveau serveur, par exemple :
+
+----
+/server add freenode-tor p4fsi4ockecnea7l.onion
+----
+
+Définissez le proxy pour TOR :
+
+----
+/set irc.server.freenode-tor.proxy "tor"
+----
+
+Définissez l'authentification SASL :
+
+----
+/set irc.server.freenode-tor.sasl_mechanism dh-blowfish
+/set irc.server.freenode-tor.sasl_username "votre_pseudo"
+/set irc.server.freenode-tor.sasl_password "votre_mot_de_passe"
+----
+
+Et enfin, la connexion au serveur :
+
+----
+/connect freenode-tor
+----
+
+Pour plus d'informations à propos de Freenode et TOR :
+http://freenode.net/irc_servers.shtml#tor
+
+[[irc_smart_filter_join_part_quit]]
+==== Filtre intelligent pour les messages join/part/quit
+
+Un filtre intelligent est disponible pour filtrer les messages join/part/quit
+lorsque le pseudo n'a rien dit durant les X dernières minutes sur le canal.
+
+Le filtre intelligent est activé par défaut, mais vous devez ajouter un filtre
+pour cacher les lignes sur les tampons, par exemple :
+
+----
+/filter add irc_smart * irc_smart_filter *
+----
+
+Il est possible de créer un filtre pour un canal seulement ou plusieurs canaux
+commençant par le même nom (voir `/help filter`) :
+
+----
+/filter add irc_smart_weechat irc.freenode.#weechat irc_smart_filter *
+/filter add irc_smart_weechats irc.freenode.#weechat* irc_smart_filter *
+----
+
+Vous pouvez cacher seulement les join ou part/quit avec les options suivantes :
+
+----
+/set irc.look.smart_filter_join on
+/set irc.look.smart_filter_quit on
+----
+
+Vous pouvez modifier le délai (en minutes) :
+
+----
+/set irc.look.smart_filter_delay 5
+----
+
+Si le pseudo n'a pas parlé durant les 5 dernières minutes, ses join et/ou
+part/quit seront cachés sur le canal.
+
+[[irc_ctcp_replies]]
+==== Réponses CTCP
+
+Il est possible de personnaliser les réponses CTCP, ou de bloquer certaines
+demandes CTCP (ne pas y répondre).
+
+Par exemple, pour personnaliser la réponse au CTCP "VERSION", utilisez la
+commande suivante :
+
+----
+/set irc.ctcp.version "Je suis sous WeeChat $version, ça déchire !"
+----
+
+Si vous voulez bloquer le CTCP "VERSION" (ne pas répondre à une demande), alors
+affectez une chaîne vide :
+
+----
+/set irc.ctcp.version ""
+----
+
+Même un CTCP inconnu peut être personnalisé, par exemple vous pouvez répondre
+au CTCP "BLABLA" :
+
+----
+/set irc.ctcp.blabla "C'est ma réponse au CTCP BLABLA"
+----
+
+Il est possible de personnaliser le CTCP pour un seul serveur, en utilisant son
+nom interne avant le nom du CTCP :
+
+----
+/set irc.ctcp.freenode.version "WeeChat $version (pour freenode)"
+----
+
+Si vous voulez restaurer la réponse CTCP standard, alors supprimez l'option :
+
+----
+/unset irc.ctcp.version
+----
+
+Les codes suivants peuvent être utilisés dans les chaînes et sont
+automatiquement remplacées par WeeChat lors de la réponse au CTCP :
+
+[width="100%",cols="^2l,4,8",options="header"]
+|===
+| Code | Description | Valeur / exemple
+| $clientinfo | Liste des CTCP supportés | `ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION`
+| $version | Version de WeeChat | `0.4.0-dev`
+| $versiongit | Version de WeeChat + version git ^(1)^ | `0.4.0-dev (git: v0.3.9-104-g7eb5cc4)`
+| $git | Version git ^(1)^ | `v0.3.9-104-g7eb5cc4`
+| $compilation | Date de compilation WeeChat | `Dec 16 2012`
+| $osinfo | Information sur l'OS | `Linux 2.6.32-5-amd64 / x86_64`
+| $site | Site WeeChat | `http://www.weechat.org/`
+| $download | Site WeeChat, page téléchargement | `http://www.weechat.org/download`
+| $time | Date/heure courante | `Sun, 16 Dec 2012 10:40:48 +0100`
+| $username | Nom d'utilisateur sur le serveur | `nom`
+| $realname | Nom réel sur le serveur | `John Doe`
+|===
+
+[NOTE]
+^(1)^ La version git est la sortie de la commande `git describe`. Elle est
+connue seulement si WeeChat a été compilé dans le dépôt git et si git était
+installé.
+
+Si les options CTCP ne sont pas définies (par défaut), les réponses CTCP sont :
+
+[width="100%",cols="^2,4,8",options="header"]
+|===
+| CTCP | Format de réponse | Exemple
+| CLIENTINFO | `$clientinfo` | `ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION`
+| FINGER | `WeeChat $versiongit` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4)`
+| SOURCE | `$download` | `http://www.weechat.org/download`
+| TIME | `$time` | `Sun, 16 Dec 2012 10:40:48 +0100`
+| USERINFO | `$username ($realname)` | `nom (John Doe)`
+| VERSION | `WeeChat $versiongit ($compilation)` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4) (Dec 16 2012)`
+|===
+
+[[irc_target_buffer]]
+==== Tampon cible pour les messages IRC
+
+Il est possible de personnaliser le tampon cible pour les messages IRC (le
+tampon utilisé pour afficher le message) avec les options `irc.msgbuffer.*`.
+
+Pour certains messages IRC (voir la liste ci-dessous), vous pouvez utiliser
+la valeur :
+
+current::
+ tampon courant (si c'est un tampon IRC, sinon sur le tampon du serveur)
+
+private::
+ tampon privé pour le pseudo, ou le tampon courant s'il n'est pas trouvé
+ (selon l'option 'irc.look.msgbuffer_fallback')
+
+server::
+ tampon du serveur
+
+weechat::
+ tampon "core" WeeChat
+
+Lorsque l'option n'est pas définie (par défaut), WeeChat choisira
+le tampon approprié, généralement le tampon du serveur ou du canal.
+
+Liste non exhaustive des messages ou alias que vous pouvez paramétrer :
+
+[width="60%",cols="^1m,^3m,8",options="header"]
+|===
+| message | alias | description
+| error | | erreur
+| invite | | invité sur un canal
+| join | | join
+| kick | | kick
+| kill | | kill
+| mode | | mode
+| notice | | notice
+| part | | part
+| quit | | quit
+| topic | | topic
+| wallops | | wallops
+| | ctcp | ctcp (envoyé ou reçu, dans un message privmsg ou notice)
+| 221 | | chaîne de mode utilisateur
+| 275 | whois | whois (connexion sécurisée)
+| 301 | whois | whois (absent)
+| 303 | | ison
+| 305 | unaway | non absent
+| 306 | away | absent
+| 307 | whois | whois (pseudo enregistré)
+| 310 | whois | whois (mode aide)
+| 311 | whois | whois (utilisateur)
+| 312 | whois | whois (serveur)
+| 313 | whois | whois (opérateur)
+| 314 | whowas | whowas
+| 315 | who | who (fin)
+| 317 | whois | whois (inactivité)
+| 318 | whois | whois (fin)
+| 319 | whois | whois (canaux)
+| 320 | whois | whois (utilisateur identifié)
+| 321 | list | list (début)
+| 322 | list | list (canal)
+| 323 | list | list (fin)
+| 326 | whois | whois (a les privilèges oper)
+| 327 | whois | whois (machine)
+| 328 | | URL du canal
+| 329 | | date de création du canal
+| 330 | whois | whois (identifié comme)
+| 331 | | pas de titre ("topic") pour le canal
+| 332 | | titre du canal ("topic")
+| 333 | | infos sur le titre ("topic")
+| 335 | whois | whois (est un robot sur)
+| 338 | whois | whois (machine)
+| 341 | | invitation
+| 343 | whois | whois (est opéré comme)
+| 344 | reop | reop canal
+| 345 | reop | reop canal (fin)
+| 346 | invitelist | liste des invitations
+| 347 | invitelist | liste des invitations (fin)
+| 348 | exceptionlist | liste des exceptions
+| 349 | exceptionlist | liste des exceptions (fin)
+| 351 | | version du serveur
+| 352 | who | who
+| 353 | names | liste des utilisateurs sur le canal
+| 366 | names | fin de la liste /names
+| 367 | banlist | liste de bannissement
+| 368 | banlist | fin de la liste de bannissement
+| 369 | whowas | whowas (fin)
+| 378 | whois | whois (connexion depuis)
+| 379 | whois | whois (utilise les modes)
+| 401 | whois | pas de tel pseudo/canal
+| 402 | whois | pas de tel serveur
+| 432 | | pseudo erroné
+| 433 | | pseudo déjà en cours d'utilisation
+| 438 | | pas autorisé à changer de pseudo
+| 671 | whois | whois (connexion sécurisée)
+| 728 | quietlist | liste des "quiet"
+| 729 | quietlist | fin de la liste des "quiet"
+| 732 | monitor | liste des pseudos surveillés
+| 733 | monitor | liste des pseudos surveillés (fin)
+| 901 | | vous êtes maintenant identifié
+|===
+
+Les autres messages numériques peuvent être paramétrés de la même manière.
+
+Le message peut être préfixé par le nom du serveur pour être spécifique à un
+serveur IRC (par exemple: `freenode.whois`).
+
+Quelques exemples:
+
+* afficher le résultat de `/whois` sur le tampon privé:
+
+----
+/set irc.msgbuffer.whois private
+----
+
+* restaurer le tampon par défaut pour whois (tampon du serveur):
+
+----
+/unset irc.msgbuffer.whois
+----
+
+* afficher une invitation sur le tampon courant, pour le serveur "freenode"
+seulement :
+
+----
+/set irc.msgbuffer.freenode.invite current
+----
+
+* afficher le message "303" (ison) sur le tampon "core" WeeChat:
+
+----
+/set irc.msgbuffer.303 weechat
+----
+
+[[logger_plugin]]
+=== Extension Logger
+
+L'extension Logger permet de sauvegarder le contenu des tampons dans des
+fichiers, avec des options sur comment et quoi sauvegarder.
+
+[[logger_options]]
+==== Options (logger.conf)
+
+Sections :
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| look | /set logger.look.* | Aspect/présentation
+| color | /set logger.color.* | Couleurs
+| file | /set logger.file.* | Options pour les fichiers de log
+| level | /set logger.level.* | Niveau de log par tampon (les options peuvent être ajoutées/supprimées dans la section)
+| mask | /set logger.mask.* | Masque de nom de fichier par tampon (les options peuvent être ajoutées/supprimées dans la section)
+|===
+
+Options :
+
+include::autogen/user/logger_options.asciidoc[]
+
+[[logger_commands]]
+==== Commandes
+
+include::autogen/user/logger_commands.asciidoc[]
+
+[[logger_log_levels]]
+==== Niveaux d'enregistrement
+
+L'enregistrement est fait selon un niveau pour chaque tampon. Le niveau par
+défaut est 9 (enregistrer tous les messages affichés dans le tampon).
+Vous pouvez changer ce niveau pour un tampon, ou un groupe de tampons.
+
+Les niveaux possibles vont de 0 à 9. Zéro signifie "ne rien enregistrer" et 9
+signifie "enregistrer tous les messages".
+
+Les extensions utilisent différent niveaux pour les messages affichés.
+L'extension IRC utilise les niveaux suivants :
+
+* niveau 1 : message d'un utilisateur (sur un canal ou en privé)
+* niveau 2 : changement de pseudo (vous ou quelqu'un d'autre)
+* niveau 3 : tout message du serveur (sauf join/part/quit)
+* niveau 4 : message join/part/quit du serveur
+
+Donc si vous affectez le niveau 3 pour un canal IRC, WeeChat enregistrera
+tous les messages sauf les join/part/quit.
+
+Quelques exemples :
+
+* affecter le niveau 3 pour le canal IRC #weechat :
+
+----
+/set logger.level.irc.freenode.#weechat 3
+----
+
+* affecter le niveau 3 pour le tampon serveur freenode :
+
+----
+/set logger.level.irc.server.freenode 3
+----
+
+* affecter le niveau 3 pour tous les canaux sur le serveur freenode :
+
+----
+/set logger.level.irc.freenode 3
+----
+
+* affecter le niveau 2 pour tous les tampons IRC :
+
+----
+/set logger.level.irc 2
+----
+
+[[logger_filenames_masks]]
+==== Masques de noms de fichiers
+
+Il est possible de définir un masque de nom de fichier pour chaque tampon, et
+d'utiliser les variables locales du tampon pour construire le nom de fichier.
+Pour voir les variables du tampon courant :
+
+----
+/buffer localvar
+----
+
+Par exemple, sur le tampon "irc.freenode.#weechat", WeeChat cherchera un masque
+avec le nom de l'option, dans cet ordre :
+
+----
+logger.mask.irc.freenode.#weechat
+logger.mask.irc.freenode
+logger.mask.irc
+logger.file.mask
+----
+
+Cela signifie que vous pouvez avoir un masque spécifique pour certaines
+serveurs IRC ("logger.mask.irc.freenode") ou pour une extension
+("logger.mask.irc").
+
+[[logger_files_by_date]]
+===== Fichiers de log par date
+
+Pour avoir des fichiers de log par date, vous pouvez utiliser des marqueurs
+dans le masque (voir `man strftime` pour le format), par exemple :
+
+----
+/set logger.file.mask "%Y/%m/$plugin.$name.weechatlog"
+----
+
+Vous obtiendrez les fichiers suivants :
+
+....
+~/.weechat/
+ |--- logs/
+ |--- 2010/
+ |--- 11/
+ | irc.server.freenode.weechatlog
+ | irc.freenode.#weechat.weechatlog
+ |--- 2010/
+ |--- 12/
+ | irc.server.freenode.weechatlog
+ | irc.freenode.#weechat.weechatlog
+....
+
+[[logger_irc_files_by_server_channel]]
+===== Fichiers de log IRC par serveur et canal
+
+Si vous voulez un répertoire par serveur IRC et un fichier par canal dedans :
+
+----
+/set logger.mask.irc "irc/$server/$channel.weechatlog"
+----
+
+Vous obtiendrez les fichiers suivants :
+
+....
+~/.weechat/
+ |--- logs/
+ |--- irc/
+ |--- freenode/
+ | freenode.weechatlog
+ | #weechat.weechatlog
+ | #mychan.weechatlog
+ |--- oftc/
+ | oftc.weechatlog
+ | #chan1.weechatlog
+ | #chan2.weechatlog
+....
+
+[[relay_plugin]]
+=== Extension Relay
+
+L'extension Relay est utilisée pour relayer des données via le réseau, en
+utilisant divers protocoles :
+
+* 'irc' : proxy IRC : utilisé pour partager la connexions aux serveurs IRC avec
+ un ou plusieurs autres clients IRC
+* 'weechat' : protocole utilisé par les interfaces distantes (par exemple
+ QWeeChat ou weechat-android).
+
+[[relay_options]]
+==== Options (relay.conf)
+
+Sections :
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| look | /set relay.look.* | Aspect/présentation
+| color | /set relay.color.* | Couleurs
+| network | /set relay.network.* | Options réseau
+| irc | /set relay.irc.* | Options spécifiques au protocole irc (proxy irc)
+| port | <<command_relay_relay,/relay add>> +
+ /set relay.port.* | Ports utilisés pour le relai (protocoles irc et weechat) (les options peuvent être ajoutées/supprimées dans la section)
+|===
+
+Options :
+
+include::autogen/user/relay_options.asciidoc[]
+
+[[relay_commands]]
+==== Commandes
+
+include::autogen/user/relay_commands.asciidoc[]
+
+[[relay_password]]
+==== Mot de passe
+
+Il est fortement recommandé de définir un mot de passe pour le relai, avec la
+commande :
+
+----
+/set relay.network.password "motdepasse"
+----
+
+Ce mot de passe sera utilisé pour les protocoles 'irc' et 'weechat'.
+
+[[relay_ssl]]
+==== SSL
+
+Vous pouvez utiliser SSL en créant un certificat et clé privée et en utilisant
+le préfixe "ssl." dans le nom du protocole.
+
+Le fichier par défaut pour le certificat/clé est '~/.weechat/ssl/relay.pem'
+(option <<option_relay.network.ssl_cert_key,relay.network.ssl_cert_key>>).
+
+Vous pouvez créer le certificat et la clé privée avec les commandes suivantes :
+
+----
+$ mkdir -p ~/.weechat/ssl
+$ cd ~/.weechat/ssl
+$ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem
+----
+
+Si WeeChat tourne déjà, vous pouvez recharger le certificat et clé privée avec la
+commande :
+
+----
+/relay sslcertkey
+----
+
+[[relay_irc_proxy]]
+==== IRC proxy
+
+L'extension Relay peut agir comme un proxy IRC : elle simulera un serveur IRC,
+et vous pourrez vous connecter sur WeeChat avec n'importe quel autre client IRC
+(y compris WeeChat lui-même).
+
+Vous pouvez définir un port par serveur IRC, ou bien un port générique pour tous
+les serveurs.
+
+Lors de l'utilisation d'un port pour tous les serveurs, le client doit envoyer
+le nom interne du serveur dans la commande IRC "PASS", avec le format :
+
+----
+PASS serveur:motdepasse
+----
+
+Exemple : proxy IRC avec SSL pour tout serveur (le client choisira) :
+
+----
+/relay add ssl.irc 8000
+----
+
+Exemple : proxy IRC sans SSL seulement pour le serveur "freenode" :
+
+----
+/relay add irc.freenode 8000
+----
+
+Maintenant vous pouvez vous connecter sur le port 8000 avec n'importe quel
+client IRC en utilisant le mot de passe "motdepasse" (ou "freenode:motdepasse"
+si aucun serveur n'a été spécifié dans le relai).
+
+[[relay_weechat_protocol]]
+==== Protocole WeeChat
+
+L'extension Relay peut envoyer les données à une interface distante en
+utilisant le protocole WeeChat.
+
+Vous pouvez vous connecter avec une interface distante, voir la liste sur la
+page de téléchargement : http://weechat.org/download
+
+[IMPORTANT]
+WeeChat lui-même ne peut PAS se connecter sur un autre WeeChat avec ce
+protocole.
+
+Par exemple :
+
+----
+/relay add weechat 9000
+----
+
+Maintenant vous pouvez vous connecter sur le port 9000 avec une interface
+distante en utilisant le mot de passe "motdepasse".
+
+[[relay_websocket]]
+==== WebSocket
+
+Le protocole WebSocket (http://tools.ietf.org/html/rfc6455[RFC 6455]) est
+supporté dans l'extension Relay pour tous les protocoles.
+
+La poignée de main ("handshake") WebSocket est automatiquement détectée et le
+socket devient prêt pour WebSocket si les en-tête requis sont trouvés dans la
+poignée de main et si l'origine est autorisée (voir l'option
+<<option_relay.network.websocket_allowed_origins,relay.network.websocket_allowed_origins>>).
+
+Un WebSocket peut être ouvert dans une page HTML5 avec une seule ligne de
+JavaScript :
+
+[source,js]
+----
+websocket = new WebSocket("ws://server.com:9000/weechat");
+----
+
+Le port (9000 dans l'exemple) est le port défini dans l'extension Relay.
+L'URI doit toujours se terminer par "/weechat" (pour les protocoles 'irc' et
+'weechat').
+
+[[scripts_plugins]]
+=== Extensions Scripts
+
+WeeChat fournit 6 extensions pour scripts : Python, Perl, Ruby, Lua, Tcl et
+Guile (scheme).
+Ces extensions peuvent charger, exécuter et décharger des scripts pour ces
+langages.
+
+Une autre extension appelée "script" est un gestionnaire de scripts et est
+utilisé pour charger/décharger des scripts pour n'importe quel langage, et
+installer/supprimer des scripts du dépôt WeeChat, qui sont visibles à cette URL:
+http://weechat.org/scripts
+
+Pour plus d'informations sur comment écrire des scripts, ou sur l'API
+WeeChat pour les scripts, merci de lire le 'Le Guide pour Scripts WeeChat'.
+
+[[script_options]]
+==== Options Script (script.conf)
+
+Sections :
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| look | /set script.look.* | Aspect/présentation
+| color | /set script.color.* | Couleurs
+| scripts | /set script.scripts.* | Options pour le téléchargement des scripts
+|===
+
+Options :
+
+include::autogen/user/script_options.asciidoc[]
+
+[[script_commands]]
+==== Commandes Script
+
+include::autogen/user/script_commands.asciidoc[]
+
+[[python_commands]]
+==== Commandes Python
+
+include::autogen/user/python_commands.asciidoc[]
+
+[[perl_commands]]
+==== Commandes Perl
+
+include::autogen/user/perl_commands.asciidoc[]
+
+[[ruby_commands]]
+==== Commandes Ruby
+
+include::autogen/user/ruby_commands.asciidoc[]
+
+[[lua_commands]]
+==== Commandes Lua
+
+include::autogen/user/lua_commands.asciidoc[]
+
+[[tcl_commands]]
+==== Commandes Tcl
+
+include::autogen/user/tcl_commands.asciidoc[]
+
+[[guile_commands]]
+==== Commandes Guile
+
+include::autogen/user/guile_commands.asciidoc[]
+
+[[trigger_plugin]]
+=== Extension Trigger
+
+Trigger est le couteau suisse de WeeChat : il peut accrocher différentes choses
+(signal, modificateur, print, ...), changer le contenu des données, et exécuter
+une ou plusieurs commandes. Une condition peut être utilisée pour empêcher le
+trigger de s'exécuter dans certaines circonstances.
+
+Utiliser les triggers nécessite de connaître le fonctionnement des signaux,
+modificateurs, etc... Il peut être utile de lire le chapitre sur les 'Hooks'
+dans la 'Référence API Extension WeeChat'.
+
+[[trigger_options]]
+==== Options (trigger.conf)
+
+Sections:
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| look | /set trigger.look.* | Aspect/présentation
+| color | /set trigger.color.* | Couleurs
+| trigger | <<command_trigger_trigger,/trigger add>> +
+ <<command_trigger_trigger,/trigger set>> +
+ /set trigger.trigger.* | Options des triggers
+|===
+
+Options:
+
+include::autogen/user/trigger_options.asciidoc[]
+
+[[trigger_commands]]
+==== Commandes
+
+include::autogen/user/trigger_commands.asciidoc[]
+
+[[trigger_anatomy]]
+==== Anatomie d'un trigger
+
+Un trigger a les options suivantes (les noms sont
+`trigger.trigger.<nom>.<option>`):
+
+[width="100%",cols="2m,2,10",options="header"]
+|===
+| Option | Valeurs | Description
+
+| enabled | `on`, `off` |
+ Lorsque l'option est `off`, le trigger est désactivé et les actions ne sont
+ plus exécutées.
+
+| hook | `signal`, `hsignal`, `modifier`, `print`, `command`, `command_run`,
+ `timer`, `config`, `focus` |
+ Le "hook" utilisé dans le trigger. Pour plus d'information, voir le chapitre
+ 'Hooks' dans la 'Référence API Extension WeeChat'.
+
+| arguments | chaîne |
+ Les paramètres pour le "hook", ils dépendent du type de hook utilisé.
+
+| conditions | chaîne |
+ Conditions pour exécuter le trigger : elles sont évaluées (voir la commande
+ <<command_weechat_eval,/eval>>).
+
+| regex | chaîne |
+ Une ou plusieurs expressions régulières POSIX étendues, pour modifier les
+ données reçues dans le callback du "hook" (et d'autres choses ajoutées par
+ l'extension trigger), voir <<trigger_regex,expression régulière>>.
+
+| command | chaîne |
+ Commande à exécuter (plusieurs commandes peuvent être séparées par des
+ points-virgules); elle est évaluée (voir la commande
+ <<command_weechat_eval,/eval>>).
+
+| return_code | `ok`, `ok_eat`, `error` |
+ Le code retour du callback (`ok` par défaut, qui devrait être utilisé dans
+ quasiment tous les triggers, les autres valeurs sont rarement utilisées).
+|===
+
+Par exemple, le trigger 'beep' par défaut a les options suivantes :
+
+----
+trigger.trigger.beep.enabled = on
+trigger.trigger.beep.hook = print
+trigger.trigger.beep.arguments = ""
+trigger.trigger.beep.conditions = "${tg_highlight} || ${tg_msg_pv}"
+trigger.trigger.beep.regex = ""
+trigger.trigger.beep.command = "/print -beep"
+trigger.trigger.beep.return_code = ok
+----
+
+[[trigger_execution]]
+==== Exécution
+
+Lorsque le callback d'un trigger est appelé, les actions suivantes sont
+exécutées, dans cet ordre, si les triggers sont globalement activés et si le
+trigger lui-même est activé :
+
+. vérifier les conditions du trigger: si faux, sortir
+. remplacer du texte dans le trigger en utilisant des expressions régulières
+. exécuter la/les commande(s)
+. sortir avec un code retour (sauf pour les "hooks" 'modifier' et 'focus').
+
+[[trigger_hook_arguments]]
+==== Paramètres du hook
+
+Les paramètres dépendent du type de "hook" utilisé. Ils sont séparés par des
+points-virgules.
+
+[width="100%",cols="2,6,7",options="header"]
+|===
+| Hook | Paramètres | Exemples
+
+| signal |
+ 1. nom de signal (priorité autorisée) (obligatoire) +
+ 2. nom de signal (priorité autorisée) +
+ 3. ... |
+ `*,irc_in_privmsg` +
+ `*,irc_in_privmsg;*,irc_in_notice` +
+ `signal_sigwinch`
+
+| hsignal |
+ 1. nom de signal (priorité autorisée) (obligatoire) +
+ 2. nom de signal (priorité autorisée) +
+ 3. ... |
+ `nicklist_nick_added`
+
+| modifier |
+ 1. nom de modificateur (priorité autorisée) (obligatoire) +
+ 2. nom de modificateur (priorité autorisée) +
+ 3. ... |
+ `weechat_print` +
+ `5000\|input_text_display;5000\|history_add`
+
+| print |
+ 1. nom de tampon +
+ 2. étiquettes +
+ 3. message +
+ 4. suppression des couleurs (0/1) |
+ `irc.freenode.*` +
+ `irc.freenode.#weechat` +
+ `irc.freenode.#weechat;irc_notice` +
+ `*;;;1`
+
+| command |
+ 1. nom de commande (priorité autorisée) (obligatoire) +
+ 2. description +
+ 3. paramètres +
+ 4. description des paramètres +
+ 5. complétion |
+ `test` +
+ `5000\|test`
+
+| command_run |
+ 1. commande (priorité autorisée) (obligatoire) +
+ 2. commande (priorité autorisée) +
+ 3. ... |
+ `/cmd paramètres`
+
+| timer |
+ 1. intervalle, en millisecondes (obligatoire) +
+ 2. alignement sur la seconde (par défaut : 0) +
+ 3. nombre maximum d'appels (par défaut : 0, qui signifie "sans fin") |
+ `3600000` +
+ `60000;0;5`
+
+| config |
+ 1. nom d'option (priorité autorisée) (obligatoire) +
+ 2. nom d'option (priorité autorisée) +
+ 3. ... |
+ `weechat.look.*`
+
+| focus |
+ 1. nom d'aire (priorité autorisée) (obligatoire) +
+ 2. nom d'aire (priorité autorisée) +
+ 3. ... |
+ `buffer_nicklist`
+|===
+
+[[trigger_conditions]]
+==== Conditions
+
+Les conditions sont utilisées pour continuer l'exécution du trigger, ou tout
+stopper.
+
+Elles sont évaluées, et les données disponibles dans le callback peuvent être
+utilisées (voir <<trigger_callback_data,données dans les callbacks>> et la
+commande <<command_weechat_eval,/eval>>).
+
+Exemple : le trigger 'beep' par défaut utilise cette condition pour faire un
+beep seulement sur un highlight ou un message privé :
+
+----
+${tg_highlight} || ${tg_msg_pv}
+----
+
+[[trigger_regex]]
+==== Expression régulière
+
+L'expression régulière est utilisée pour modifier des variables dans la table de
+hachage du callback.
+
+Le format est : "/regex/remplacement" ou "/regex/remplacement/var" (où 'var' est
+une variable de la table de hachage). +
+Si 'var' n'est pas spécifiée, la variable par défaut est utilisée, elle dépend
+du type de hook :
+
+[width="50%",cols="4,5m",options="header"]
+|===
+| Hook | Variable par défaut
+| signal | tg_signal_data
+| hsignal |
+| modifier | tg_string
+| print | tg_message
+| command | tg_argv_eol1
+| command_run | tg_command
+| timer | tg_remaining_calls
+| config | tg_value
+| focus |
+|===
+
+Plusieurs expressions régulières peuvent être séparées par un espace, par
+exemple : "/regex1/remplacement1/var1 /regex2/remplacement2/var2".
+
+Le caractère "/" peut être remplacé par tout caractère (un ou plusieurs
+caractères identiques).
+
+Les groupes de correspondance peuvent être utilisés dans le "remplacement" :
+
+* `$0` à `$99` : `$0` est la correspondance complète, `$1` à `$99` sont les
+ groupes capturés
+* `$+` : la dernière correspondance (avec le numéro le plus élevé)
+* `$.cN` : la correspondance "N" avec tous les caractères remplacés par "c"
+ (exemple : `$.*2` est le groupe n°2 avec tous les caractères remplacés par
+ `*`).
+
+Exemple : utiliser du gras pour les mots entre "*" :
+
+----
+/\*(\S+)\*/*${color:bold}$1${color:-bold}*/
+----
+
+Exemple : le trigger par défaut 'server_pass' utilise cette expression régulière
+pour cacher le mot de passe dans les commandes `/server` et `/connect` (les
+caractères des mots de passe sont remplacés par `*`) :
+
+----
+==^(/(server|connect) .*-(sasl_)?password=)(\S+)(.*)==$1$.*4$5
+----
+
+[NOTE]
+Dans cet exemple, le séparateur utilisé est "==" car il y a "/" dans
+l'expression régulière.
+
+[[trigger_command]]
+==== Commande
+
+La commande est exécutée après le remplacement du texte avec l'expression
+régulière.
+Plusieurs commandes peuvent être séparées par des points-virgules.
+
+Elle est évaluée (voir la commande <<command_weechat_eval,/eval>>) et le texte
+remplacé avec l'expression régulière peut être utilisé dans la commande.
+
+Exemple : le trigger par défaut 'beep' utilise cette commande pour produire un
+beep (BEL) :
+
+----
+/print -beep
+----
+
+[[trigger_callback_data]]
+==== Données dans les callbacks
+
+Les données reçues dans les callbacks sont stockées dans des tables de hachage
+(pointeurs et chaînes) et peuvent être utilisées dans les options suivantes :
+
+* 'conditions'
+* 'regex'
+* 'command'
+
+Le contenu des tables de hachage dépend du type de hook.
+
+Une manière pratique de voir les données dans le trigger est d'ouvrir le tampon
+moniteur des triggers :
+
+----
+/trigger monitor
+----
+
+[[trigger_data_signal]]
+===== Signal
+
+Le callback "signal" définit les variables suivantes dans la table de hachage :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| tg_signal | chaîne | Nom du signal
+| tg_signal_data | chaîne | Données envoyées avec le signal
+|===
+
+Si le signal contient un message IRC, le message est analysé et les données
+suivantes sont ajoutées dans la table de hachage :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| server | chaîne | Nom du serveur (exemple : "freenode")
+| tags | chaîne | Étiquettes dans le message (rarement utilisées)
+| message_without_tags | chaîne | Message sans les étiquettes
+| nick | chaîne | Pseudo
+| host | chaîne | Nom d'hôte
+| command | chaîne | Commane IRC (exemple : "PRIVMSG", "NOTICE", ...)
+| channel | chaîne | Canal IRC
+| arguments | chaîne | Paramètres de la commande (inclut la valeur de 'channel')
+|===
+
+[[trigger_data_hsignal]]
+===== Hsignal
+
+Le callback "hsignal" définit les variables suivantes dans la table de hachage :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| tg_signal | chaîne | Nom du signal
+|===
+
+La table de hachage contient toutes les clés/valeurs de la table de hachage
+reçue (type : chaîne/chaîne).
+
+[[trigger_data_modifier]]
+===== Modifier
+
+Le callback "modifier" définit les variables suivantes dans la table de hachage :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| tg_modifier | chaîne | Nom du modificateur
+| tg_modifier_data | chaîne | Données envoyées avec le modificateur
+| tg_string | chaîne | La chaîne qui peut être modifiée
+| tg_string_nocolor | chaîne | La chaîne sans les codes couleur
+|===
+
+Pour le modificateur 'weechat_print', les variables en utilisant les étiquettes
+du message sont ajoutées (voir le <<trigger_data_print,hook print>> ci-dessous),
+ainsi que les variables suivantes :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| buffer | pointeur | Tampon où le message est affiché
+| tg_plugin | chaîne | Extension du tampon où le message est affiché
+| tg_buffer | chaîne | Nom complet du tampon où le message est affiché
+| tg_prefix | chaîne | Préfixe du message affiché
+| tg_prefix_nocolor | chaîne | Préfixe sans les codes couleur
+| tg_message | chaîne | Message affiché
+| tg_message_nocolor | chaîne | Message sans les codes couleur
+|===
+
+Si le modificateur contient un message IRC, le message est analysé et des
+données supplémentaires sont ajoutées dans la table de hachage (voir le
+<<trigger_data_signal,"hook" signal>>).
+
+[[trigger_data_print]]
+===== Print
+
+Le callback "print" définit les variables suivantes dans la table de hachage :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| buffer | pointeur | Buffer
+| tg_date | chaîne | Date/heure du message (format : `YYYY-MM-DD hh:mm:ss`)
+| tg_displayed | chaîne | "1" si affiché, "0" si ligne filtrée
+| tg_highlight | chaîne | "1" si highlight, sinon "0"
+| tg_prefix | chaîne | Préfixe
+| tg_prefix_nocolor | chaîne | Préfixe sans les codes couleur
+| tg_message | chaîne | Message
+| tg_message_nocolor | chaîne | Message sans les codes couleur
+|===
+
+Variables définies avec les étiquettes du message (elles sont définies aussi
+pour le modificateur 'weechat_print') :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| tg_tags | chaîne | Étiquettes du message (avec une virgule en début/fin de chaîne)
+| tg_tags_count | chaîne | Nombre d'étiquettes dans le message
+| tg_tag_nick | chaîne | Pseudo (depuis l'étiquette "nick_xxx")
+| tg_tag_prefix_nick | chaîne | Couleur du pseudo dans le préfixe (depuis l'étiquette "prefix_nick_ccc")
+| tg_tag_host | chaîne | Nom d'utilisateur et hôte, format: utilisateur@hôte (depuis l'étiquette "host_xxx")
+| tg_tag_notify | chaîne | Niveau de notification ('none', 'message', 'private', 'highlight')
+| tg_notify | chaîne | Niveau de notification, si différent de 'none'
+| tg_msg_pv | chaîne | "1" pour un message privé, sinon "0"
+|===
+
+[[trigger_data_command]]
+===== Command
+
+Le callback "command" définit les variables suivantes dans la table de hachage :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| buffer | pointeur | Tampon
+| tg_argvN | chaîne | Paramètre n°N
+| tg_argv_eolN | chaîne | Depuis le paramètre n°N jusqu'à la fin des paramètres
+|===
+
+[[trigger_data_command_run]]
+===== Command_run
+
+Le callback "command_run" définit les variables suivantes dans la table de
+hachage :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| buffer | pointeur | Tampon
+| tg_command | chaîne | Commande exécutée
+|===
+
+[[trigger_data_timer]]
+===== Timer
+
+Le callback "timer" définit les variables suivantes dans la table de hachage :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| tg_remaining_calls | chaîne | Nombre d'appels restants
+| tg_date | chaîne | Date/heure courante (format : `YYYY-MM-DD hh:mm:ss`)
+|===
+
+[[trigger_data_config]]
+===== Config
+
+Le callback "config" définit les variables suivantes dans la table de hachage :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| tg_option | chaîne | Option
+| tg_value | chaîne | Valeur
+|===
+
+[[trigger_data_focus]]
+===== Focus
+
+Le callback "focus" définit les variables suivantes dans la table de hachage :
+
+[width="100%",cols="3m,2,14",options="header"]
+|===
+| Variable | Type | Description
+| window | pointeur | Fenêtre
+| buffer | pointeur | Tampon
+|===
+
+La table de hachage contient toutes les clés/valeurs de la table de hachage
+reçue (type : chaîne/chaîne).
+
+[[trigger_examples]]
+==== Exemples
+
+[[trigger_example_url_color]]
+===== Couleur pour les URLs
+
+Afficher les URLs en vert :
+
+----
+/trigger add url_color modifier weechat_print "${tg_notify}" "==\S+://\S+==${color:green}$0${color:reset}=="
+----
+
+[NOTE]
+La simple expression régulière utilisée pour détecter l'URL peut ne pas capturer
+correctement toutes les URLs, mais elle est plus rapide qu'une expression
+régulière complexe.
+
+[[trigger_example_auto_pong]]
+===== Pong auto sur les requêtes ping
+
+Lorsque quelqu'un envoie un "ping" dans un tampon privé, le trigger répondra
+automatiquement avec un `pong` :
+
+----
+/trigger add pong print "" "${type} == private && ${tg_message} == ping" "" "pong"
+----
+
+[[trigger_example_responsive_layout]]
+===== Disposition réceptive
+
+Les triggers suivants peuvent être utilisées pour personnaliser l'affichage
+lorsque la taille du terminal change :
+
+----
+/trigger add resize_small signal signal_sigwinch "${info:term_width} < 100" "" "/bar hide nicklist"
+/trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
+----
+
+Les triggers attrapent le signal "signal_sigwinch", qui et envoyé par WeeChat
+lorsque le signal SIGWINCH est reçu (lorsque la taille du terminal a changé).
+
+La condition avec `${info:term_width}` vérifie la largeur du terminal (vous
+pouvez aussi utiliser `${info:term_height}` si besoin).
+
+Dans l'exemple, si le terminal devient petit, la liste de pseudos est cachée.
+Et la barre est restaurée lorsque la largeur du terminal est supérieure ou
+égale à 100 caractères.
+
+[[trigger_example_config_save]]
+===== Sauvegarde automatique de la configuration
+
+Vous pouvez sauvegarder automatiquement les fichiers de configuration
+(`*.conf`), par example chaque heure :
+
+----
+/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
+----
+
+Les paramètres pour le minuteur sont :
+
+* '3600000' : 3600 * 1000 millisecondes, le callback est appelé toutes les
+ heures
+* '0' : alignement sur la seconde (pas d'alignement ici)
+* '0' : nombre maximum d'appels (0 = pas de fin pour le minuteur)
+
+La commande `/mute /save` sauvegarde silencieusement les fichiers de
+configuration (rien n'est affiché sur le tampon "core").
+
+[[xfer_plugin]]
+=== Extension Xfer
+
+L'extension Xfer permet :
+
+* la discussion directe (entre deux machines, sans serveur), par exemple le
+ "DCC Chat" via l'extension IRC
+* le transfert de fichiers, par exemple le "DCC" via l'extension IRC
+
+[[xfer_options]]
+==== Options (xfer.conf)
+
+Sections :
+
+[width="100%",cols="3m,6m,16",options="header"]
+|===
+| Section | Commande de contrôle | Description
+| look | /set xfer.look.* | Aspect/présentation
+| color | /set xfer.color.* | Couleurs
+| network | /set xfer.network.* | Options réseau
+| file | /set xfer.file.* | Options pour les fichiers envoyés/reçus
+|===
+
+Options :
+
+include::autogen/user/xfer_options.asciidoc[]
+
+[[xfer_commands]]
+==== Commandes
+
+include::autogen/user/xfer_commands.asciidoc[]
+
+[[support]]
+== Support
+
+Avant de faire appel au support, merci de lire la documentation et la FAQ de
+WeeChat (la documentation est le document que vous êtes en train de lire, si
+vous n'avez pas tout lu jusqu'ici, il est encore temps de recommencer !).
+
+Moyens d'obtenir du support :
+
+* IRC : serveur 'irc.freenode.net', canaux '#weechat' (anglais) et
+ '#weechat-fr' (français)
+* Liste de diffusion :
+** inscription : http://mail.nongnu.org/mailman/listinfo/weechat-support
+** envoi d'un mail à weechat-support@nongnu.org
+** archives : http://mail.nongnu.org/archive/html/weechat-support