This is a workaround (disabled by default) to join and chat on ISO encoded channels (or another charset different from UTF-8). This option may be removed in future if a better solution is implemented.
3621 lines
135 KiB
Plaintext
3621 lines
135 KiB
Plaintext
= Guide utilisateur WeeChat
|
|
:author: Sébastien Helleu
|
|
:email: flashcode@flashtux.org
|
|
:lang: fr
|
|
:toc2:
|
|
:toclevels: 3
|
|
:max-width: 100%
|
|
|
|
|
|
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 :
|
|
https://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]
|
|
* proxy IRC et relai pour interfaces distantes
|
|
* 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 : https://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)
|
|
* quelques bibliothèques (voir les <<dependencies,dépendances>>).
|
|
|
|
[[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`
|
|
* Cygwin (Windows) : sélectionnez les paquets WeeChat dans setup.exe
|
|
|
|
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).
|
|
|
|
[NOTE]
|
|
Sous OS X, vous pouvez utiliser http://brew.sh/[Homebrew] :
|
|
`brew install weechat --with-python --with-perl`
|
|
(pour l'aide : `brew info weechat`).
|
|
|
|
[[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é)
|
|
|
|
| pkg-config | | *oui* |
|
|
Détection des bibliothèques installées
|
|
|
|
| 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
|
|
|
|
| libgcrypt20-dev | | *oui* |
|
|
Données sécurisées, authentification IRC SASL (DH-BLOWFISH/DH-AES),
|
|
extension script
|
|
|
|
| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | |
|
|
Connexion SSL au serveur IRC, support SSL dans l'extension relay,
|
|
authentification IRC SASL (ECDSA-NIST256P-CHALLENGE)
|
|
|
|
| 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 ^(4)^ | |
|
|
Extension python
|
|
|
|
| libperl-dev | | |
|
|
Extension perl
|
|
|
|
| ruby2.1-dev | ≥ 1.8 | |
|
|
Extension ruby
|
|
|
|
| liblua5.2-dev | | |
|
|
Extension lua
|
|
|
|
| tcl-dev | ≥ 8.5 | |
|
|
Extension tcl
|
|
|
|
| guile-2.0-dev | ≥ 2.0 | |
|
|
Extension guile (scheme)
|
|
|
|
| libv8-dev | ≤ 3.24.3 | |
|
|
Extension javascript
|
|
|
|
| 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
|
|
|
|
| libcpputest-dev | ≥ 3.4 | |
|
|
Lancement des tests
|
|
|
|
| C++ compiler | | |
|
|
Lancement des tests, extension javascript
|
|
|===
|
|
|
|
[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)^ Gnutls ≥ 3.0.21 est requis pour l'authentification SASL avec le mécanisme
|
|
ECDSA-NIST256P-CHALLENGE. +
|
|
^(4)^ 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 .. -DCMAKE_INSTALL_PREFIX=/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.
|
|
|
|
| CMAKE_INSTALL_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_JAVASCRIPT | `ON`, `OFF` | ON |
|
|
Compiler <<scripts_plugins,l'extension Javascript>>.
|
|
|
|
| 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, Javascript).
|
|
|
|
| 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>>.
|
|
|
|
| ENABLE_TESTS | `ON`, `OFF` | OFF |
|
|
Compiler les tests.
|
|
|===
|
|
|
|
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
|
|
----
|
|
|
|
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,^4,10",options="header"]
|
|
|===
|
|
| Objet (item) | Exemple | Description
|
|
| time | `[12:55]` | Heure
|
|
| buffer_last_number | `[6]` | Numéro du dernier tampon de la liste
|
|
| 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
|
|
| scroll | `-PLUS(50)-` | Indicateur de scroll, avec le nombre de lignes sous la dernière ligne affichée
|
|
| 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
|
|
|===
|
|
|
|
La barre 'input' contient les objets (items) suivants par défaut :
|
|
|
|
[width="100%",cols="^3,^4,10",options="header"]
|
|
|===
|
|
| Objet (item) | Exemple | Description
|
|
| 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_paste | `[Coller 7 lignes ? [ctrl-Y] Oui [ctrl-N] Non]` | Question à l'utilisateur pour coller des lignes
|
|
| input_text | `salut peter !` | Texte entré
|
|
|===
|
|
|
|
Autres objets (non utilisés dans des barres par défaut) :
|
|
|
|
[width="100%",cols="^3,^4,10",options="header"]
|
|
|===
|
|
| Objet (item) | Exemple | Description
|
|
| aspell_dict | `fr,en` | Dictionnaires utilisés pour la vérification de l'orthographe sur le tampon courant
|
|
| aspell_suggest | `print,prone,prune` | Suggestions pour le mot sous le curseur (si mal orthographié)
|
|
| buffer_count | `10` | Nombre total de tampons ouverts
|
|
| buffer_short_name | `#test` | Nom court du tampon courant
|
|
| irc_channel | `#test` | Nom de canal IRC courant
|
|
| irc_nick_modes | `@` | Modes IRC pour le pseudo
|
|
| mouse_status | `M` | Statut de la souris (vide si la souris est désactivée)
|
|
| window_number | `2` | Numéro de la fenêtre courante
|
|
|===
|
|
|
|
[[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 qui est évaluée pour savoir si la barre
|
|
doit être affichée ou non.
|
|
|
|
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: https://weechat.org/files/do │ │
|
|
│ | c/devel/weechat_plugin_api.en.html#_weechat_hook_ │ │
|
|
│ | process │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│[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: https://weechat.org/files/doc/devel/weech│
|
|
│at_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_here`
|
|
| 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 à la position courante .3+| `/input search_stop_here`
|
|
| key[ctrl-j]
|
|
| key[ctrl-m]
|
|
| key[ctrl-q] | Arrêter la recherche et aller à la fin du tampon | `/input search_stop`
|
|
|===
|
|
|
|
[[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 :
|
|
|
|
include::autogen/user/irc_colors.asciidoc[]
|
|
|
|
[NOTE]
|
|
Pour voir toutes les couleurs disponibles dans votre terminal, vous pouvez
|
|
taper `/color` puis key[alt-c] dans WeeChat ou lancez cette commande dans le
|
|
terminal : `weechat --colors`.
|
|
|
|
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^C_tout le monde^C_^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é,
|
|
vous pouvez la changer avec ces deux commandes :
|
|
|
|
----
|
|
/set env 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 somme 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="100%",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)
|
|
| javascript | Interface (API) pour scripts Javascript
|
|
| 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 pour les commandes
|
|
| color | /set exec.color.* | Couleurs
|
|
|===
|
|
|
|
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 'chat.freenode.net',
|
|
port par défaut (6667), avec le pseudo 'nono' :
|
|
|
|
----
|
|
$ weechat irc://nono@chat.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à ajouté :
|
|
|
|
----
|
|
/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à ajouté :
|
|
|
|
----
|
|
/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 (par défaut)
|
|
* 'ecdsa-nist256p-challenge' : challenge avec clé publique/privée
|
|
* 'external' : certificat SSL côté client
|
|
* 'dh-blowfish' : mot de passe chiffré avec blowfish
|
|
* 'dh-aes' : mot de passe chiffré avec AES
|
|
|
|
[NOTE]
|
|
La librairie "gcrypt" est requise lors de la compilation de WeeChat pour
|
|
utiliser le mécanisme "dh-blowfish" (voir <<dependencies,les dépendances>>).
|
|
|
|
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_fail' : action à effectuer si l'authentification échoue
|
|
* 'sasl_username' : nom d'utilisateur (pseudo)
|
|
* 'sasl_password' : mot de passe
|
|
* 'sasl_key' : fichier avec la clé privée ECC (pour le mécanisme
|
|
'ecdsa-nist256p-challenge')
|
|
|
|
[[irc_sasl_ecdsa_nist256p_challenge]]
|
|
===== SASL ECDSA-NIST256P-CHALLENGE
|
|
|
|
Vous devez générer une clé privée pour vous authentifier avec le mécanisme
|
|
ECDSA-NIST256P-CHALLENGE (aucun mot de passe n'est requis lors de la
|
|
connexion).
|
|
|
|
Vous pouvez générer la clé avec cette commande :
|
|
|
|
----
|
|
$ openssl ecparam -genkey -name prime256v1 >~/.weechat/ecdsa.pem
|
|
----
|
|
|
|
Récupérez la clé publique (encodée en base64) avec cette commande :
|
|
|
|
----
|
|
$ openssl ec -noout -text -conv_form compressed -in ~/.weechat/ecdsa.pem | grep '^pub:' -A 3 | tail -n 3 | tr -d ' \n:' | xxd -r -p | base64
|
|
----
|
|
|
|
Connectez-vous au serveur, identifiez vous (par exemple avec
|
|
"nickserv identify") et définissez la clé publique dans votre compte, en
|
|
utilisant nickserv (remplacez la valeur base64 par votre clé publique) :
|
|
|
|
----
|
|
/connect freenode
|
|
/msg nickserv identify votre_mot_de_passe
|
|
/msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q
|
|
----
|
|
|
|
Configurez les options SASL dans le serveur :
|
|
|
|
----
|
|
/set irc.server.freenode.sasl_mechanism ecdsa-nist256p-challenge
|
|
/set irc.server.freenode.sasl_username "votre_pseudo"
|
|
/set irc.server.freenode.sasl_key "%h/ecdsa.pem"
|
|
----
|
|
|
|
Reconnectez-vous au serveur :
|
|
|
|
----
|
|
/reconnect freenode
|
|
----
|
|
|
|
[[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.
|
|
|
|
En premier lieu, installez TOR. Pour Debian (et dérivés) :
|
|
|
|
----
|
|
$ sudo apt-get install tor
|
|
----
|
|
|
|
Sous WeeChat vous devez ajouter 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, ajoutez 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_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 | `https://weechat.org/`
|
|
| $download | Site WeeChat, page téléchargement | `https://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` | `https://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 : https://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 7 extensions pour scripts : Python, Perl, Ruby, Lua, Tcl,
|
|
Guile (scheme) et Javascript.
|
|
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:
|
|
https://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[]
|
|
|
|
[[javascript_commands]]
|
|
==== Commandes Javascript
|
|
|
|
include::autogen/user/javascript_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" :
|
|
|
|
* `${re:0}` à `${re:99}` : `${re:0}` est la correspondance complète, `${re:1}`
|
|
à `${re:99}` sont les groupes capturés
|
|
* `${re:+}` : la dernière correspondance (avec le numéro le plus élevé)
|
|
* `${hide:c,${re:N}}` : la correspondance "N" avec tous les caractères
|
|
remplacés par "c" (exemple : `${hide:*,${re: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}${re: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+)(.*)==${re:1}${hide:*,${re:4}}${re: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 | Commande IRC (exemple : "PRIVMSG", "NOTICE", ...)
|
|
| channel | chaîne | Canal IRC
|
|
| arguments | chaîne | Paramètres de la commande (inclut la valeur de 'channel')
|
|
| text | chaîne | Texte (par exemple message utilisateur)
|
|
| pos_command | chaîne | L'index de 'command' dans le message ("-1" si 'command' n'a pas été trouvé)
|
|
| pos_arguments | chaîne | L'index de 'arguments' dans le message ("-1" si 'arguments' n'a pas été trouvé)
|
|
| pos_channel | chaîne | L'index de 'channel' dans le message ("-1" si 'channel' n'a pas été trouvé)
|
|
| pos_text | chaîne | L'index de 'text' dans le message ("-1" si 'text' n'a pas été trouvé)
|
|
|===
|
|
|
|
Lorsque la donnée est un pointeur, la variable `tg_signal_data` peut être
|
|
utilisée comme ceci pour lire une propriété hdata (dans cet exemple il s'agit
|
|
d'un pointeur sur un tampon) :
|
|
|
|
----
|
|
${buffer[${tg_signal_data}].full_name}
|
|
----
|
|
|
|
[[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 | Tampon
|
|
| 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}${re: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.
|
|
|
|
Pour le support via IRC, sur le serveur 'chat.freenode.net' :
|
|
|
|
* canaux officiels (avec les développeurs) :
|
|
** '#weechat' (Anglais)
|
|
** '#weechat-fr' (Français)
|
|
* canaux non officiels :
|
|
** '#weechat-de' (Allemand)
|
|
|
|
Pour les autres formes de support, voir : https://weechat.org/dev/support
|