90
93
[width="100%",cols="5,^3,^3,.^13",options="header"]
92
| Paquet ^(1)^ | Version | Requis | Fonctionnalité
93
| cmake | | *oui* | Construction (autotools toujours possible, mais cmake est recommandé)
94
| pkg-config | | *oui* | Détection des bibliothèques installées
95
| libncursesw5-dev ^(2)^ | | *oui* | Interface ncurses
96
| libcurl4-gnutls-dev | | *oui* | Transfert d'URL
97
| zlib1g-dev | | *oui* | Compression des paquets dans l'extension relay (protocole weechat), extension script
98
| libgcrypt20-dev | | *oui* | Données sécurisées, authentification IRC SASL (DH-BLOWFISH/DH-AES), extension script
99
| libgnutls28-dev | ≥ 2.2.0 | | Connexion SSL au serveur IRC, support SSL dans l'extension relay
100
| gettext | | | Internationalisation (traduction des messages; la langue de base est l'anglais)
101
| ca-certificates | | | Certificats pour les connexions SSL
102
| libaspell-dev ou libenchant-dev | | | Extension aspell
103
| python-dev | ≥ 2.5 ^(3)^ | | Extension python
104
| libperl-dev | | | Extension perl
105
| ruby2.1-dev | ≥ 1.8 | | Extension ruby
106
| liblua5.2-dev | | | Extension lua
107
| tcl-dev | ≥ 8.5 | | Extension tcl
108
| guile-2.0-dev | ≥ 2.0 | | Extension guile (scheme)
109
| asciidoc | ≥ 8.5.0 | | Construction de la page man et de la documentation
110
| source-highlight | | | Coloration des sources dans la documentation
112
docbook-xml, docbook-xsl | | | Construction de la page de manuel
113
| libcpputest-dev | ≥ 3.4 | .2+| Lancement des tests
95
| Paquet ^(1)^ | Version | Requis | Fonctionnalité
98
Construction (autotools toujours possible, mais cmake est recommandé)
100
| pkg-config | | *oui* |
101
Détection des bibliothèques installées
103
| libncursesw5-dev ^(2)^ | | *oui* |
106
| libcurl4-gnutls-dev | | *oui* |
109
| zlib1g-dev | | *oui* |
110
Compression des paquets dans l'extension relay (protocole weechat),
113
| libgcrypt20-dev | | *oui* |
114
Données sécurisées, authentification IRC SASL (DH-BLOWFISH/DH-AES),
117
| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | |
118
Connexion SSL au serveur IRC, support SSL dans l'extension relay,
119
authentification IRC SASL (ECDSA-NIST256P-CHALLENGE)
122
Internationalisation (traduction des messages; la langue de base est
125
| ca-certificates | | |
126
Certificats pour les connexions SSL
128
| libaspell-dev ou libenchant-dev | | |
131
| python-dev | ≥ 2.5 ^(4)^ | |
137
| ruby2.1-dev | ≥ 1.8 | |
140
| liblua5.2-dev | | |
143
| tcl-dev | ≥ 8.5 | |
146
| guile-2.0-dev | ≥ 2.0 | |
147
Extension guile (scheme)
149
| libv8-dev | ≤ 3.24.3 | |
152
| asciidoc | ≥ 8.5.0 | |
153
Construction de la page man et de la documentation
155
| source-highlight | | |
156
Coloration des sources dans la documentation
158
| xsltproc, docbook-xml, docbook-xsl | | |
159
Construction de la page de manuel
161
| libcpputest-dev | ≥ 3.4 | |
165
Lancement des tests, extension javascript
118
169
^(1)^ Le nom provient de la distribution GNU/Linux Debian, la version dans le
119
170
nom du paquet peut être différente. +
120
^(2)^ WeeChat peut compiler avec libncurses5-dev, mais ce n'est *PAS* recommandé
121
(vous aurez des bugs d'affichage avec les caractères larges). +
122
^(3)^ La version recommandée de Python est 2.7 (tous les scripts tournent bien
171
^(2)^ WeeChat peut compiler avec libncurses5-dev, mais ce n'est *PAS*
172
recommandé (vous aurez des bugs d'affichage avec les caractères larges). +
173
^(3)^ Gnutls ≥ 3.0.21 est requis pour l'authentification SASL avec le mécanisme
174
ECDSA-NIST256P-CHALLENGE. +
175
^(4)^ La version recommandée de Python est 2.7 (tous les scripts tournent bien
123
176
avec la version 2.7, mais pas avec les versions ≤ 2.6 ou ≥ 3.0).
125
178
[[compile_with_cmake]]
816
867
Quelques exemples de remplissage pour la barre 'nicklist' :
819
┌──────────────────────────────────────────────────┐
820
│Welcome to #test, this is a test channel │
821
│12:54:15 peter | hey! │@carl │
822
│12:55:01 +Max | hello │@jessika│
834
│[12:55] [6] [irc/freenode] 3:#test(+n){24} │
836
└──────────────────────────────────────────────────┘
837
filling_left_right = vertical ▲
870
┌───────────────────────────────────────────────────────────────────────┐
871
│Welcome to #test, this is a test channel │
872
│12:54:15 peter | hey! │@carl │
873
│12:55:01 +Max | hello │@jessika│
885
│[12:55] [6] [irc/freenode] 3:#test(+n){24} │
887
└───────────────────────────────────────────────────────────────────────┘
888
filling_left_right = vertical ▲
839
┌──────────────────────────────────────────────────┐
840
│Welcome to #test, this is a test channel │
841
│12:54:15 peter | hey! │@carl lee │
842
│12:55:01 +Max | hello │@jessika louise │
854
│[12:55] [6] [irc/freenode] 3:#test(+n){24} │
856
└──────────────────────────────────────────────────┘
857
filling_left_right = columns_vertical ▲
890
┌───────────────────────────────────────────────────────────────────────┐
891
│Welcome to #test, this is a test channel │
892
│12:54:15 peter | hey! │@carl lee │
893
│12:55:01 +Max | hello │@jessika louise │
905
│[12:55] [6] [irc/freenode] 3:#test(+n){24} │
907
└───────────────────────────────────────────────────────────────────────┘
908
filling_left_right = columns_vertical ▲
859
910
┌───────────────────────────────────────────────────────────────────────┐
860
911
│@carl %Diego celia Harold^ jodie mario Rachel Vince │
1137
1188
| key[alt-j,alt-r] | Sauter au tampon IRC de données brutes | `/server raw`
1138
1189
| key[alt-j,alt-s] | Sauter au tampon IRC du serveur | `/server jump`
1139
1190
| key[alt-0...9] | Sauter au tampon qui porte ce numéro (0 = 10) | `/buffer *N`
1140
| key[alt-j,01...99] | Sauter au tampon qui porte ce numéro | `/buffer NN`
1191
| key[alt-j,01...99] | Sauter au tampon qui porte ce numéro | `/buffer *NN`
1141
1192
| key[alt-l] | Activer/désactiver le mode d'affichage dépouillé | `/window bare`
1142
1193
| key[alt-m] | Activer/désactiver la souris | `/mouse toggle`
1143
1194
| key[alt-n] | Se positionner sur le highlight suivant | `/window scroll_next_highlight`
1783
1835
Les extensions par défaut sont :
1785
[width="50%",cols="^1,5",options="header"]
1837
[width="100%",cols="^1,5",options="header"]
1787
| Extension | Description
1788
| alias | Définir des alias pour les commandes
1789
| aspell | Vérification orthographique de la ligne de commande
1790
| charset | Encodage/encodage avec jeu de caractère sur les tampons
1791
| exec | Exécution de commandes externes dans WeeChat
1792
| fifo | Tube FIFO pour envoyer des commandes à distance vers WeeChat
1793
| irc | Discussion avec le protocole IRC
1794
| logger | Enregistrement des tampons dans des fichiers
1795
| relay | Relai de données via le réseau
1796
| script | Gestionnaire de scripts
1797
| python | Interface (API) pour scripts Python
1798
| perl | Interface (API) pour scripts Perl
1799
| ruby | Interface (API) pour scripts Ruby
1800
| lua | Interface (API) pour scripts Lua
1801
| tcl | Interface (API) pour scripts Tcl
1802
| guile | Interface (API) pour scripts Guile (scheme)
1803
| trigger | Remplacement de texte et exécution de commande sur des évènements de WeeChat ou des extensions
1804
| xfer | Transfert de fichier et discussion directe
1839
| Extension | Description
1840
| alias | Définir des alias pour les commandes
1841
| aspell | Vérification orthographique de la ligne de commande
1842
| charset | Encodage/encodage avec jeu de caractère sur les tampons
1843
| exec | Exécution de commandes externes dans WeeChat
1844
| fifo | Tube FIFO pour envoyer des commandes à distance vers WeeChat
1845
| irc | Discussion avec le protocole IRC
1846
| logger | Enregistrement des tampons dans des fichiers
1847
| relay | Relai de données via le réseau
1848
| script | Gestionnaire de scripts
1849
| python | Interface (API) pour scripts Python
1850
| perl | Interface (API) pour scripts Perl
1851
| ruby | Interface (API) pour scripts Ruby
1852
| lua | Interface (API) pour scripts Lua
1853
| tcl | Interface (API) pour scripts Tcl
1854
| guile | Interface (API) pour scripts Guile (scheme)
1855
| javascript | Interface (API) pour scripts Javascript
1856
| trigger | Remplacement de texte et exécution de commande sur des évènements de WeeChat ou des extensions
1857
| xfer | Transfert de fichier et discussion directe
1807
1860
Pour en apprendre plus sur le développement d'extension ou de script (via
2254
2308
* 'sasl_mechanism' : mécanisme à utiliser (voir ci-dessus)
2255
2309
* 'sasl_timeout' : délai d'attente maximum (en secondes) pour l'authentification
2310
* 'sasl_fail' : action à effectuer si l'authentification échoue
2256
2311
* 'sasl_username' : nom d'utilisateur (pseudo)
2257
2312
* 'sasl_password' : mot de passe
2313
* 'sasl_key' : fichier avec la clé privée ECC (pour le mécanisme
2314
'ecdsa-nist256p-challenge')
2316
[[irc_sasl_ecdsa_nist256p_challenge]]
2317
===== SASL ECDSA-NIST256P-CHALLENGE
2319
Vous devez générer une clé privée pour vous authentifier avec le mécanisme
2320
ECDSA-NIST256P-CHALLENGE (aucun mot de passe n'est requis lors de la
2323
Vous pouvez générer la clé avec cette commande :
2326
$ openssl ecparam -genkey -name prime256v1 >~/.weechat/ecdsa.pem
2329
Récupérez la clé publique (encodée en base64) avec cette commande :
2332
$ 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
2335
Connectez-vous au serveur, identifiez vous (par exemple avec
2336
"nickserv identify") et définissez la clé publique dans votre compte, en
2337
utilisant nickserv (remplacez la valeur base64 par votre clé publique) :
2341
/msg nickserv identify votre_mot_de_passe
2342
/msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q
2345
Configurez les options SASL dans le serveur :
2348
/set irc.server.freenode.sasl_mechanism ecdsa-nist256p-challenge
2349
/set irc.server.freenode.sasl_username "votre_pseudo"
2350
/set irc.server.freenode.sasl_key "%h/ecdsa.pem"
2353
Reconnectez-vous au serveur :
2259
2359
[[irc_tor_freenode]]
2260
2360
==== Connexion à Freenode avec TOR/SASL
3236
3341
| command | chaîne | Commande IRC (exemple : "PRIVMSG", "NOTICE", ...)
3237
3342
| channel | chaîne | Canal IRC
3238
3343
| arguments | chaîne | Paramètres de la commande (inclut la valeur de 'channel')
3344
| text | chaîne | Texte (par exemple message utilisateur)
3345
| pos_command | chaîne | L'index de 'command' dans le message ("-1" si 'command' n'a pas été trouvé)
3346
| pos_arguments | chaîne | L'index de 'arguments' dans le message ("-1" si 'arguments' n'a pas été trouvé)
3347
| pos_channel | chaîne | L'index de 'channel' dans le message ("-1" si 'channel' n'a pas été trouvé)
3348
| pos_text | chaîne | L'index de 'text' dans le message ("-1" si 'text' n'a pas été trouvé)
3351
Lorsque la donnée est un pointeur, la variable `tg_signal_data` peut être
3352
utilisée comme ceci pour lire une propriété hdata (dans cet exemple il s'agit
3353
d'un pointeur sur un tampon) :
3356
${buffer[${tg_signal_data}].full_name}
3241
3359
[[trigger_data_hsignal]]