1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
[[command_trigger_trigger]]
[command]*`trigger`* gestion des triggers, le couteau Suisse pour WeeChat::
----
/trigger list|listfull|listdefault
add|addoff|addreplace <nom> <hook> ["<paramètres>" ["<conditions>" ["<regex>" ["<commande>" ["<code_retour>"]]]]]
addinput [<hook>]
input|output|recreate <nom>
set <nom> <option> <valeur>
rename|copy <nom> <nouveau_nom>
enable|disable|toggle [<nom>|-all [<nom>...]]
restart <nom>|-all [<nom>...]
show <nom>
del <nom>|-all [<nom>...]
default -yes
monitor [<filtre>]
list : lister les triggers (sans paramètre, cette liste est affichée)
listfull : lister les triggers avec des informations détaillées pour chaque trigger
listdefault : lister les triggers par défaut
add : ajouter un trigger
addoff : ajouter un trigger (désactivé)
addreplace : ajouter ou remplacer un trigger existant
nom : nom du trigger
hook : signal, hsignal, modifier, print, command, command_run, timer, config, focus
paramètres : paramètres pour le hook, dépendant du hook (séparés par des points-virgules) :
signal : nom(s) de signal (obligatoire)
hsignal : nom(s) de signal (obligatoire)
modifier : nom(s) de modificateur (obligatoire)
print : tampon, étiquettes, message, suppression des couleurs (0/1)
command : commande (obligatoire), description, paramètres, description des paramètres, complétion
command_run : commande(s) (obligatoire)
timer : intervalle (obligatoire), alignement sur la seconde, nombre max d'appels
config : nom(s) de l'option (obligatoire)
focus : nom(s) de la zone (obligatoire)
conditions : conditions évaluées pour le trigger
regex : une ou plusieurs expressions régulières pour remplacer des chaînes dans les variables
commande : commande à exécuter (plusieurs commandes peuvent être séparées par ";")
code_retour : code retour dans le callback (ok (par défaut), ok_eat, error)
addinput : définir la ligne de commande avec les paramètres par défaut pour créer un trigger
input : définir la ligne de commande utilisée pour créer le trigger
output : envoyer la commande pour créer le trigger sur le tampon
recreate : comme "input", avec l'option "addreplace" au lieu de "add"
set : définir une option dans un trigger
option : nom de l'option : name, hook, arguments, conditions, regex, command, return_code
(pour l'aide sur l'option, vous pouvez taper : /help trigger.trigger.<nom>.<option>)
valeur : nouvelle valeur pour l'option
rename : renommer un trigger
copy : copier un trigger
enable : activer un/des trigger(s) (sans paramètre : activer les triggers globalement)
disable : désactiver un/des trigger(s) (sans paramètre : désactiver les triggers globalement)
toggle : activer/désactiver un/des trigger(s) (sans paramètre : activer/désactiver les triggers globalement)
restart : redémarrer un/des trigger(s) (recréer les hooks)
show : afficher des informations détaillées sur un trigger (avec quelques statistiques)
del : supprimer un trigger
-all : effectuer l'action sur tous les triggers
default : restaurer les triggers par défaut
monitor : ouvrir le tampon moniteur des triggers
filtre : filtrer les hooks/triggers à afficher (un hook doit commencer par "@", par exemple "@signal"), plusieurs filtres peuvent être séparés par des virgules ; le caractère joker "*" est autorisé dans chaque nom de trigger
Lorsqu'un callback de trigger est appelé, les actions suivantes sont exécutées, dans cet ordre :
1. vérifier les conditions ; si faux, sortir
2. remplacer le texte en utilisant une/des expression(s)s régulière(s)s POSIX étendue(s)s (si définie(s) dans le trigger)
3. exécuter le(s) commande(s) (si définie(s) dans le trigger)
4. sortir avec le code retour (sauf pour les modificateurs et focus)
Exemples (vous pouvez aussi regarder les triggers par défaut avec /trigger listdefault) :
ajouter des attributs *gras*, _souligné_ et /italique/ (seulement dans les messages d'utilisateurs) :
/trigger add effects modifier weechat_print "${tg_tag_nick}" "==\*(\S+)\*==*${color:bold}$1${color:-bold}*== ==_(\S+)_==_${color:underline}$1${color:-underline}_== ==/(\S+)/==/${color:italic}$1${color:-italic}/"
cacher la barre de pseudos sur les petits terminaux :
/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"
sauver la configuration chaque heure (de manière silencieuse) :
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
ouvrir le tampon moniteur des triggers et afficher seulement les modificateurs et les triggers dont le nom commence par "resize" :
/trigger monitor @modifier,resize*
----
|