diff options
author | Sébastien Helleu <flashcode@flashtux.org> | 2014-05-25 12:25:58 +0200 |
---|---|---|
committer | Sébastien Helleu <flashcode@flashtux.org> | 2014-05-25 12:47:24 +0200 |
commit | dc0229617ada67fd02815bbc94b245871248b9db (patch) | |
tree | 0af7418d7f3ebf8082408fa2ee9e73f5a572360f /doc/fr/weechat_user.fr.asciidoc | |
parent | 76a066c9cca620e1204815f63abbfa8b09f162c6 (diff) | |
download | weechat-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.asciidoc | 3504 |
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 |