3666 lines
130 KiB
Plaintext
3666 lines
130 KiB
Plaintext
= Guida per l'Utente di WeeChat
|
|
:author: Sébastien Helleu
|
|
:email: flashcode@flashtux.org
|
|
:lang: it
|
|
:toc: left
|
|
:toclevels: 3
|
|
:toc-title: Indice
|
|
:sectnums:
|
|
:sectnumlevels: 2
|
|
:docinfo1:
|
|
|
|
|
|
// TRANSLATION MISSING
|
|
Translators:
|
|
|
|
* Marco Paolone <marcopaolone@gmail.com>, 2009-2012
|
|
|
|
|
|
Questo manuale documenta il client di chat WeeChat, ed è parte
|
|
del programma stesso.
|
|
|
|
È possibile trovare l'ultima versione di questo documento qui:
|
|
https://weechat.org/doc
|
|
|
|
|
|
[[introduction]]
|
|
== Introduzione
|
|
|
|
WeeChat (Wee Enhanced Environment for Chat) è un client di chat
|
|
libero, veloce e leggero, realizzato per diversi sistemi operativi.
|
|
|
|
[[features]]
|
|
=== Caratteristiche
|
|
|
|
Le principali caratteristiche:
|
|
|
|
// TRANSLATION MISSING
|
|
* multi-protocollo: IRC and Jabber (with script jabber.py or bitlbee/minbif)
|
|
* connessione a server multipli (con SSL, IPv6, proxy)
|
|
* piccolo, veloce e leggero
|
|
* personalizzabile ed estensibile con plugin e script
|
|
* conforme alle RFC di 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] e
|
|
http://tools.ietf.org/html/rfc2813[2813]
|
|
// TRANSLATION MISSING
|
|
* IRC proxy and relay for remote interfaces
|
|
* multi-piattaforma (GNU/Linux, *BSD, MacOS X, Windows ed altre)
|
|
* 100% GPL, software libero
|
|
|
|
La home page di WeeChat si trova qui: https://weechat.org/
|
|
|
|
[[prerequisites]]
|
|
=== Requisiti
|
|
|
|
Per poter installare WeeChat, è necessario:
|
|
|
|
* un sistema GNU/Linux in esecuzione (con gli strumenti di
|
|
compilazione per i sorgenti), oppure OS compatibile
|
|
* privilegi di 'root' (per installare WeeChat in una directory di
|
|
sistema)
|
|
// TRANSLATION MISSING
|
|
* some libraries (see <<dependencies,dependencies>>).
|
|
|
|
[[install]]
|
|
== Installazione
|
|
|
|
[[binary_packages]]
|
|
=== Pacchetti binari
|
|
|
|
I pacchetti binari sono disponibili per molte distribuzioni, incluse:
|
|
|
|
* Arch Linux: `pacman -S weechat`
|
|
// TRANSLATION MISSING
|
|
* Cygwin (Windows): select WeeChat packages in setup.exe
|
|
* Debian (o qualunque distribuzione compatibile):
|
|
`apt-get install weechat-curses`
|
|
* Fedora Core: `dnf install weechat`
|
|
* Gentoo: `emerge weechat`
|
|
* Mandriva/RedHat (o qualunque distribuzione compatibile con RPM):
|
|
`rpm -i /path/per/weechat-x.y.z-1.i386.rpm`
|
|
* openSUSE: `zypper in weechat`
|
|
* Sourcemage: `cast weechat`
|
|
|
|
Potrebbero risultare utili alcuni pacchetti addizionali, come
|
|
weechat-plugins.
|
|
|
|
Per altre distribuzioni, consultare il manuale per le istruzioni di
|
|
installazione.
|
|
|
|
[[source_package]]
|
|
=== Sorgenti
|
|
|
|
WeeChat può essere compilato con cmake oppure autotools
|
|
(tuttavia si raccomanda cmake).
|
|
|
|
// TRANSLATION MISSING
|
|
[NOTE]
|
|
On OS X, you can use http://brew.sh/[Homebrew]:
|
|
`brew install weechat --with-python --with-perl`
|
|
(for help: `brew info weechat`).
|
|
|
|
[[dependencies]]
|
|
==== Dipendenze
|
|
|
|
La seguente tabella mostra l'elenco di pacchetti richiesti o opzionali per
|
|
compilare WeeChat.
|
|
|
|
[width="100%",cols="5,^3,^3,.^13",options="header"]
|
|
|===
|
|
| Pacchetto ^(1)^ | Versione | Richiesto | Caratteristica
|
|
| cmake | | *sì* | Compilazione (ancora possibile con autotools, ma si raccomanda cmake)
|
|
// TRANSLATION MISSING
|
|
| pkg-config | | *sì* | Detect installed libraries
|
|
| libncursesw5-dev ^(2)^ | | *sì* | Interfaccia ncurses
|
|
| libcurl4-gnutls-dev | | *sì* | Trasferimento URL
|
|
// TRANSLATION MISSING
|
|
| zlib1g-dev | | *sì* | Compression of packets in relay plugin (weechat protocol), script plugin
|
|
// TRANSLATION MISSING
|
|
| libgcrypt20-dev | | *sì* | Secured data, IRC SASL authentication (DH-BLOWFISH/DH-AES), script plugin
|
|
// TRANSLATION MISSING
|
|
| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | | Connessione SSL al server IRC, support of SSL in relay plugin, IRC SASL authentication (ECDSA-NIST256P-CHALLENGE)
|
|
| gettext | | | Internazionalizzazione (traduzione dei messaggi; la lingua base è l'inglese)
|
|
| ca-certificates | | | Certificati per le connessioni SSL
|
|
| libaspell-dev
|
|
∥ libenchant-dev | | | Plugin aspell
|
|
| python-dev | ≥ 2.5 ^(4)^ | | Plugin python
|
|
| libperl-dev | | | Plugin perl
|
|
| ruby2.3-dev | ≥ 1.8 | | Plugin ruby
|
|
| liblua5.3-dev | | | Plugin lua
|
|
| tcl-dev | ≥ 8.5 | | Plugin tcl
|
|
| guile-2.0-dev | ≥ 2.0 | | Plugin guile (scheme)
|
|
| libv8-dev | ≤ 3.24.3 | | Plugin Javascript
|
|
// TRANSLATION MISSING
|
|
| asciidoctor | ≥ 1.5.0 | | Build man page and documentation
|
|
// TRANSLATION MISSING
|
|
| libcpputest-dev | ≥ 3.4 | | Run tests
|
|
// TRANSLATION MISSING
|
|
| C++ compiler | | | Run tests, plugin Javascript
|
|
|===
|
|
|
|
// TRANSLATION MISSING (note 3)
|
|
[NOTE]
|
|
^(1)^ Il nome viene dalla distribuzione Debian GNU/Linux, nomi e versioni dei pacchetti
|
|
potrebbero essere differenti in versioni e distribuzioni differenti. +
|
|
^(2)^ WeeChat può essere compilato con libncurses5-dev, ma *NON* è raccomandato
|
|
(potrebbero verificarsi bug di visualizzazione). +
|
|
^(3)^ Gnutls ≥ 3.0.21 is required for IRC SASL authentication with mechanism
|
|
ECDSA-NIST256P-CHALLENGE. +
|
|
^(4)^ La versione raccomandata di Python è la 2.7 (tutti gli script funzionano
|
|
correttamente con la versione 2.7, ma non con le versioni ≤ 2.6 o ≥ 3.0).
|
|
|
|
[[compile_with_cmake]]
|
|
==== Compilazione con cmake
|
|
|
|
* Installazione nelle directory di sistema (richiede privilegi di 'root'):
|
|
|
|
----
|
|
$ mkdir build
|
|
$ cd build
|
|
$ cmake ..
|
|
$ make
|
|
% make install (come root)
|
|
----
|
|
|
|
* Installazione in una directory personalizzata:
|
|
|
|
----
|
|
$ mkdir build
|
|
$ cd build
|
|
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/della/directory
|
|
$ make
|
|
$ make install
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
Options can be used for cmake, with format: "-DOPTION=VALUE".
|
|
|
|
// TRANSLATION MISSING
|
|
List of commonly used options:
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="2m,2,5m,12",options="header"]
|
|
|===
|
|
| Option | Values | Default value | Description
|
|
|
|
| CMAKE_BUILD_TYPE | `Debug`, `Release`, `RelWithDebInfo`, `MinSizeRel` | |
|
|
The type of build: `Debug` (or `RelWithDebInfo`) is recommended if you are
|
|
running development version of WeeChat.
|
|
|
|
| CMAKE_INSTALL_PREFIX | directory | /usr/local |
|
|
The directory where WeeChat will be installed.
|
|
|
|
| WEECHAT_HOME | directory | ~/.weechat |
|
|
The default home directory when running WeeChat.
|
|
|
|
| CA_FILE | file | /etc/ssl/certs/ca-certificates.crt |
|
|
File containing the certificate authorities.
|
|
This is the default value of option
|
|
<<option_weechat.network.gnutls_ca_file,weechat.network.gnutls_ca_file>>.
|
|
|
|
| ENABLE_ALIAS | `ON`, `OFF` | ON |
|
|
Compile <<alias_plugin,Alias plugin>>.
|
|
|
|
| ENABLE_ASPELL | `ON`, `OFF` | ON |
|
|
Compile <<aspell_plugin,Aspell plugin>>.
|
|
|
|
| ENABLE_CHARSET | `ON`, `OFF` | ON |
|
|
Compile <<charset_plugin,Charset plugin>>.
|
|
|
|
| ENABLE_MAN | `ON`, `OFF` | OFF |
|
|
Compile man page.
|
|
|
|
| ENABLE_DOC | `ON`, `OFF` | OFF |
|
|
Compile documentation (it takes a long time, recommended only if you build
|
|
a binary package embedding documentation or if you can't browse documentation
|
|
online).
|
|
|
|
| ENABLE_ENCHANT | `ON`, `OFF` | OFF |
|
|
Compile <<aspell_plugin,Aspell plugin>> with Enchant.
|
|
|
|
| ENABLE_EXEC | `ON`, `OFF` | ON |
|
|
Compile <<exec_plugin,Exec plugin>>.
|
|
|
|
| ENABLE_FIFO | `ON`, `OFF` | ON |
|
|
Compile <<fifo_plugin,Fifo plugin>>.
|
|
|
|
| ENABLE_GNUTLS | `ON`, `OFF` | ON |
|
|
Enable Gnutls (for SSL).
|
|
|
|
| ENABLE_GUILE | `ON`, `OFF` | ON |
|
|
Compile <<scripts_plugins,Guile plugin>> (Scheme).
|
|
|
|
| ENABLE_IRC | `ON`, `OFF` | ON |
|
|
Compile <<irc_plugin,IRC plugin>>.
|
|
|
|
| ENABLE_JAVASCRIPT | `ON`, `OFF` | ON |
|
|
Compile <<scripts_plugins,Javascript plugin>>.
|
|
|
|
| ENABLE_LARGEFILE | `ON`, `OFF` | ON |
|
|
Support of large files.
|
|
|
|
| ENABLE_LOGGER | `ON`, `OFF` | ON |
|
|
Compile <<logger_plugin,Logger plugin>>.
|
|
|
|
| ENABLE_LUA | `ON`, `OFF` | ON |
|
|
Compile <<scripts_plugins,Lua plugin>>.
|
|
|
|
| ENABLE_NCURSES | `ON`, `OFF` | ON |
|
|
Compile Ncurses interface.
|
|
|
|
| ENABLE_NLS | `ON`, `OFF` | ON |
|
|
Enable NLS (translations).
|
|
|
|
| ENABLE_PERL | `ON`, `OFF` | ON |
|
|
Compile <<scripts_plugins,Perl plugin>>.
|
|
|
|
| ENABLE_PYTHON | `ON`, `OFF` | ON |
|
|
Compile <<scripts_plugins,Python plugin>>.
|
|
|
|
| ENABLE_PYTHON3 | `ON`, `OFF` | OFF |
|
|
Compile <<scripts_plugins,Python plugin>> using Python 3 (*NOT* recommended
|
|
because many scripts are not compatible with Python 3).
|
|
|
|
| ENABLE_RELAY | `ON`, `OFF` | ON |
|
|
Compile <<relay_plugin,Relay plugin>>.
|
|
|
|
| ENABLE_RUBY | `ON`, `OFF` | ON |
|
|
Compile <<scripts_plugins,Ruby plugin>>.
|
|
|
|
| ENABLE_SCRIPT | `ON`, `OFF` | ON |
|
|
Compile <<scripts_plugins,Script plugin>>.
|
|
|
|
| ENABLE_SCRIPTS | `ON`, `OFF` | ON |
|
|
Compile <<scripts_plugins,script plugins>> (Python, Perl, Ruby, Lua, Tcl,
|
|
Guile, Javascript).
|
|
|
|
| ENABLE_TCL | `ON`, `OFF` | ON |
|
|
Compile <<scripts_plugins,Tcl plugin>>.
|
|
|
|
| ENABLE_TRIGGER | `ON`, `OFF` | ON |
|
|
Compile <<trigger_plugin,Trigger plugin>>.
|
|
|
|
| ENABLE_XFER | `ON`, `OFF` | ON |
|
|
Compile <<xfer_plugin,Xfer plugin>>.
|
|
|
|
// TRANSLATION MISSING
|
|
| ENABLE_TESTS | `ON`, `OFF` | OFF |
|
|
Compile tests.
|
|
|===
|
|
|
|
The other options can be displayed with this command:
|
|
|
|
----
|
|
$ cmake -LA
|
|
----
|
|
|
|
Or with Curses interface:
|
|
|
|
----
|
|
$ ccmake ..
|
|
----
|
|
|
|
[[compile_with_autotools]]
|
|
==== Compilazione con autotools
|
|
|
|
// TRANSLATION MISSING
|
|
[WARNING]
|
|
Only cmake is officially supported to build WeeChat. You should use autotools
|
|
only if you are not able to use cmake. +
|
|
Build with autotools requires more dependencies and is slower than with cmake.
|
|
|
|
* Installazione nelle directory di sistema (richiede privilegi di 'root'):
|
|
|
|
----
|
|
$ ./autogen.sh
|
|
$ mkdir build
|
|
$ cd build
|
|
$ ../configure
|
|
$ make
|
|
% make install (come root)
|
|
----
|
|
|
|
* Installazione in una directory personalizzata:
|
|
|
|
----
|
|
$ ./autogen.sh
|
|
$ mkdir build
|
|
$ cd build
|
|
$ ../configure --prefix=/path/to/directory
|
|
$ make
|
|
$ make install
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
Options can be used for 'configure' script, they can be displayed with this
|
|
command:
|
|
|
|
----
|
|
$ ./configure --help
|
|
----
|
|
|
|
[[git_sources]]
|
|
=== Sorgenti git
|
|
|
|
Attenzione: i sorgenti git sono per gli utenti avanzati: potrebbero non
|
|
compilare o essere instabili. Siete avvisati!
|
|
|
|
Per ottenere i sorgenti git, dare il comando:
|
|
|
|
----
|
|
$ git clone https://github.com/weechat/weechat.git
|
|
----
|
|
|
|
Poi seguire le istruzioni per i sorgenti (consultare
|
|
<<source_package,sorgenti>>).
|
|
|
|
[[report_crashes]]
|
|
=== Segnalare gli errori
|
|
|
|
Nel caso in cui si verifichino errori, o si desideri segnalare qualsiasi errore
|
|
futuro di WeeChat, è necessario:
|
|
|
|
* compilarlo con informazioni di debug (o installare il pacchetto binario con
|
|
le informazioni di debug)
|
|
* abilitare i file 'core' sul proprio sistema
|
|
* installare gdb
|
|
|
|
[[debug_info]]
|
|
==== Informazioni di debug
|
|
|
|
Se si compila con cmake:
|
|
|
|
----
|
|
$ cmake .. -DCMAKE_BUILD_TYPE=Debug
|
|
----
|
|
|
|
Se compilato con gli autotools, il debug è attivato automaticamente (`--with-debug=1`).
|
|
|
|
Se è stato installato il pacchetto binario, installare il pacchetto 'weechat-gdb'.
|
|
|
|
[[core_files]]
|
|
==== File core
|
|
|
|
// TRANSLATION MISSING
|
|
To enable 'core' files, you can use option
|
|
<<option_weechat.startup.sys_rlimit,weechat.startup.sys_rlimit>>:
|
|
|
|
----
|
|
/set weechat.startup.sys_rlimit "core:-1"
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
For WeeChat ≤ 0.3.8 or if you want to enable core files even before WeeChat
|
|
starts, you can use `ulimit` command.
|
|
|
|
Ad esempio su Linux con la shell 'bash', aggiungere questa riga al proprio
|
|
`~/.bashrc`:
|
|
|
|
----
|
|
ulimit -c unlimited
|
|
----
|
|
|
|
Oppure impostare una dimensione massima:
|
|
|
|
----
|
|
ulimit -c 200000
|
|
----
|
|
|
|
[[gdb_backtrace]]
|
|
==== Ottenere un backtrace con gdb
|
|
|
|
In caso di errore di WeeChat, il sistema creerà un file 'core' oppure 'core.12345'
|
|
('12345' è l'id del processo).
|
|
Questo file viene creato nella directory in cui è in esecuzione WeeChat (e
|
|
*non* la directory dove WeeChat è installato!).
|
|
|
|
Ad esempio, se 'weechat' è installato in '/usr/bin/' ed il file 'core'
|
|
si trova in '/home/xxx/', allora eseguire gdb con questo comando:
|
|
|
|
----
|
|
gdb /usr/bin/weechat /home/xxx/core
|
|
----
|
|
|
|
All'interno di gdb, usare il comando `bt full` per visualizzare
|
|
il backtrace. Verrà mostrato qualcosa di simile a questo:
|
|
|
|
----
|
|
(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>
|
|
----
|
|
|
|
Bisogna riportare l'errore agli sviluppatori, e specificare quale azione ha causato
|
|
l'errore.
|
|
|
|
Grazie per il vostro aiuto!
|
|
|
|
[[debug_running_weechat]]
|
|
==== Debug di WeeChat durante l'esecuzione
|
|
|
|
Per eseguire il debug di un'istanza di WeeChat in esecuzione (ad esempio se
|
|
WeeChat sembra sia bloccato), è possibile usare gdb con l'id del processo
|
|
(sostituire '12345' con il PID del processo weechat):
|
|
|
|
----
|
|
gdb /usr/bin/weechat 12345
|
|
----
|
|
|
|
Poi, come per un crash, usare il comando `bt full`:
|
|
|
|
----
|
|
(gdb) bt full
|
|
----
|
|
|
|
[[usage]]
|
|
== Utilizzo
|
|
|
|
[[running_weechat]]
|
|
=== Esecuzione di WeeChat
|
|
|
|
Argomenti a riga di comando:
|
|
|
|
include::cmdline_options.it.asciidoc[]
|
|
|
|
Per avviare WeeChat, digitare questo comando:
|
|
|
|
----
|
|
$ weechat
|
|
----
|
|
|
|
Alla prima esecuzione di WeeChat, viene creato un file di configurazione
|
|
predefinito. Il file di configurazione viene creato nella directory:
|
|
'~/.weechat/weechat.conf'.
|
|
|
|
È possibile modificare questo file per configurare WeeChat a seconda delle
|
|
proprie esigenze, oppure impostando i parametri con il comando `/set`
|
|
all'interno di WeeChat (consultare <<weechat_commands,comandi di WeeChat>>).
|
|
|
|
[[screen_layout]]
|
|
=== Layout dello schermo
|
|
|
|
Esempio di terminale con WeeChat:
|
|
|
|
// TRANSLATION MISSING
|
|
....
|
|
▼ bar "title"
|
|
┌───────────────────────────────────────────────────────────────────────────┐
|
|
│Welcome to #test, this is a test channel │
|
|
│12:52:27 --> | Flashy (flashcode@weechat.org) has joined #test │@Flashy│
|
|
│12:52:27 -- | Nicks #test: [@Flashy @joe +weebot peter] │@joe │
|
|
│12:52:27 -- | Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│
|
|
│12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │peter │
|
|
│12:54:15 peter | hey! │ │
|
|
│12:55:01 @joe | hello │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│[12:55] [6] [irc/freenode] 3:#test(+n){4}* [H: 4:#abc(2,5), 6] │
|
|
│[@Flashy(i)] hi peter!█ │
|
|
└───────────────────────────────────────────────────────────────────────────┘
|
|
▲ bars "status" and "input" bar "nicklist" ▲
|
|
....
|
|
|
|
Lo schermo è composto dalle seguenti aree:
|
|
|
|
* area di chat (centro dello schermo) con le righe di chat, e per ogni riga:
|
|
** ora
|
|
** prefisso (prima di "|")
|
|
** messaggio (dopo di "|")
|
|
* barre che circondano l'area di chat, quelle predefinite sono:
|
|
** barra 'titolo', in alto rispetto all'area di chat
|
|
** barra 'stato', in basso rispetto all'area di chat
|
|
** barra 'input', in basso rispetto alla barra di stato
|
|
** barra 'nicklist', sulla destra
|
|
|
|
La barra 'stato' ha i seguenti elementi predefiniti:
|
|
|
|
[width="100%",cols="^3,^4,10",options="header"]
|
|
|===
|
|
| Elemento | Esempio | Descrizione
|
|
| time | `[12:55]` | Ora
|
|
// TRANSLATION MISSING
|
|
| buffer_last_number | `[6]` | Number of last buffer in list
|
|
| buffer_plugin | `[irc/freenode]` | Plugin del buffer attivo (il plugin irc può aggiungere il nome del server irc usato dal buffer)
|
|
| buffer_number | `3` | Numero del buffer corrente
|
|
| buffer_name | `#test` | Nome del buffer attivo
|
|
| buffer_modes | `+n` | Modalità canale IRC
|
|
| buffer_nicklist_count | `{4}` | Numero di nick nella lista nick
|
|
// TRANSLATION MISSING
|
|
| buffer_zoom | ! | `!` means the merged buffer is zoomed (only this one is displayed), empty value means all merged buffers are displayed
|
|
| buffer_filter | `*` | Indicatore filtraggio: `*` significa che alcune righe sono filtrate (nascoste), valori vuoti indicano che tutte le righe sono visualizzate
|
|
| scroll | `-ANCORA(50)-` | Indicatore di scorrimento, con il numero di righe sotto l'ultima riga visualizzata
|
|
| lag | `[Ritardo: 2.5]` | Indicatore ritardo, in secondi (nascosto se il ritardo è basso)
|
|
| hotlist | `[H: 4:#abc(2,5), 6]` | Elenco dei buffer con attività (messaggi non letti) (nell'esempio, 2 notifiche e 5 messaggi non letti su #abc, un messaggio non letto sul buffer #6)
|
|
| completion | `abc(2) def(5)` | Elenco di parole per il completamento, con il numero di completamenti possibili per ogni parola
|
|
|===
|
|
|
|
La barra 'input' ha i seguenti elementi predefiniti:
|
|
|
|
[width="100%",cols="^3,^4,10",options="header"]
|
|
|===
|
|
| Elemento | Esempio | Descrizione
|
|
// TRANSLATION MISSING
|
|
| input_prompt | `[@Flashy(i)]` | Prompt per l'input, for irc: nick and modes (mode "+i" means invisible on freenode)
|
|
| away | `(assente)` | Indicatore di assenza
|
|
// TRANSLATION MISSING
|
|
| input_search | `[Search (~ str,msg)]` | Search indicator ("`~`": case insensitive, "`==`": case sensitive, "`str`": search string, "`regex`": search regular expression, "`msg`": search in messages, "`pre`": search in prefixes, "`pre\|msg`": search in prefixes and messages)
|
|
| input_paste | `[Incollare 7 righe ? [ctrl-Y] Sì [ctrl-N] No]` | Chiede all'utente se incollare le righe
|
|
| input_text | `ciao peter!` | Testo in input
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
Other items available (not used in bars by default):
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="^3,^4,10",options="header"]
|
|
|===
|
|
| Item | Example | Description
|
|
| aspell_dict | `fr,en` | Spelling dictionaries used on current buffer
|
|
| aspell_suggest | `print,prone,prune` | Spelling suggestions for word under cursor (if misspelled)
|
|
| buffer_count | `10` | Total number of buffers opened
|
|
| buffer_short_name | `#test` | Current buffer short name
|
|
| irc_channel | `#test` | Current IRC channel name
|
|
| irc_nick_modes | `@` | IRC modes for self nick
|
|
| mouse_status | `M` | Mouse status (empty if mouse is disabled)
|
|
| window_number | `2` | Current window number
|
|
|===
|
|
|
|
[[buffers_and_windows]]
|
|
=== Buffer e finestre
|
|
|
|
Un 'buffer' è composto da un numero, un nome, delle righe visualizzate (e
|
|
altri dati).
|
|
|
|
Esempi di buffer:
|
|
|
|
* buffer core (creato by WeeChat all'avvio, non può essere chiuso)
|
|
* server irc (mostra i messaggi dal server)
|
|
* canale irc
|
|
* query irc
|
|
|
|
Una 'finestra' (o window) è un'area dello schermo in cui viene visualizzato
|
|
un buffer. È possibile dividere lo schermo in più finestre.
|
|
|
|
Ogni finestra visualizza un buffer. Un buffer può essere nascosto (non visualizzato
|
|
da una finestra) o visualizzato da una o più finestre.
|
|
|
|
Esempio di split orizzontale (`/window splith`):
|
|
|
|
// TRANSLATION MISSING
|
|
....
|
|
▼ window #2 (buffer #4)
|
|
┌───────────────────────────────────────────────────────────────────────────┐
|
|
│Welcome to #abc │
|
|
│12:55:12 Max | hi │@Flashy│
|
|
│12:55:20 @Flashy | hi Max! │Max │
|
|
│12:55:32 Max | how are you? │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│[12:55] [6] [irc/freenode] 4:#abc(+n){2} │
|
|
│[@Flashy] │
|
|
│───────────────────────────────────────────────────────────────────────────│
|
|
│Welcome to #test │
|
|
│12:54:15 peter | hey! │@Flashy│
|
|
│12:55:01 @joe | hello │@joe │
|
|
│ │+weebot│
|
|
│ │peter │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│ │ │
|
|
│[12:55] [6] [irc/freenode] 3:#test(+n){4} │
|
|
│[@Flashy] hi peter!█ │
|
|
└───────────────────────────────────────────────────────────────────────────┘
|
|
▲ window #1 (buffer #3)
|
|
....
|
|
|
|
Esempio di split verticale (`/window splitv`):
|
|
|
|
// TRANSLATION MISSING
|
|
....
|
|
┌───────────────────────────────────────────────────────────────────────────┐
|
|
│Welcome to #test │Welcome to #abc │
|
|
│12:54:15 peter | hey! │@Flashy│12:55:12 Max | hi │@Flashy│
|
|
│12:55:01 @joe | hello │@joe │12:55:20 @Flashy | hi Max! │Max │
|
|
│ │+weebot│ │ │
|
|
│ │peter │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│[12:55] [irc/oftc] 3:#test(+n){4} │[12:55] [irc/oftc] 4:#abc(+n){2} │
|
|
│[@Flashy] hi peter!█ │[@Flashy] │
|
|
└───────────────────────────────────────────────────────────────────────────┘
|
|
▲ window #1 (buffer #3) ▲ window #2 (buffer #4)
|
|
....
|
|
|
|
Esempio di split orizzontale + verticale:
|
|
|
|
// TRANSLATION MISSING
|
|
....
|
|
▼ window #3 (buffer #5)
|
|
┌───────────────────────────────────────────────────────────────────────────┐
|
|
│Welcome to #test │Welcome to #def │
|
|
│12:54:15 peter | hey! │@Flashy│12:55:42 @Flashy | hi │@Flashy│
|
|
│12:55:01 @joe | hello │@joe │12:55:56 alex | hi Flashy │alex │
|
|
│ │+weebot│ │ │
|
|
│ │peter │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │[12:55] [irc/oftc] 5:#def(+n){2} │
|
|
│ │ │[@Flashy] │
|
|
│ │ │─────────────────────────────────────│
|
|
│ │ │Welcome to #abc │
|
|
│ │ │12:55:12 Max | hi │@Flashy│
|
|
│ │ │12:55:20 @Flashy | hi Max! │Max │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│[12:55] [irc/oftc] 3:#test(+n){4} │[12:55] [irc/oftc] 4:#abc(+n){2} │
|
|
│[@Flashy] hi peter!█ │[@Flashy] │
|
|
└───────────────────────────────────────────────────────────────────────────┘
|
|
▲ window #1 (buffer #3) ▲ window #2 (buffer #4)
|
|
....
|
|
|
|
// TRANSLATION MISSING
|
|
[[bars]]
|
|
=== Bars
|
|
|
|
A 'bar' is an area beside the chat that can contain any type of text.
|
|
|
|
The bar options can be set with options `weechat.bar.name.option` where `name`
|
|
is the name of the bar and `option` the option for this bar.
|
|
|
|
List of bar options:
|
|
|
|
[width="100%",cols="2m,2,10",options="header"]
|
|
|===
|
|
| Option | Values | Description
|
|
|
|
| type | `root`, `window` |
|
|
A bar with type `root` is displayed exactly one time on screen, outside all
|
|
windows. There is no root bar by default, but an example is the bar 'buffers'
|
|
created by script 'buffers.pl' (sidebar with list of buffers). +
|
|
A bar with type `window` is displayed in each window, for example if you
|
|
split one time the screen (with `/window splith` or `/window splitv`), you
|
|
will have one bar in each window. The four default bars ('title', 'status',
|
|
'input', 'nicklist') have type `window`.
|
|
|
|
| position | `top`, `bottom`, `left`, `right` |
|
|
Position of the bar: above/below chat, on the left/right.
|
|
|
|
| priority | integer ≥ 0 |
|
|
Priority for display of bar: this is used for ordering the bars on screen when
|
|
many bars have same type and position. +
|
|
The bars are displayed from the edge of the screen to the center. A higher
|
|
priority will display bar at the beginning, so closer to the edge. +
|
|
Example: 'input' bar has priority 1000, so it is displayed before the 'status'
|
|
bar, which has priority 500.
|
|
|
|
| size | integer ≥ 0 |
|
|
The size of the bar: number of columns for position left/right, number
|
|
of lines for position top/bottom. A size of `0` means automatic, so the size
|
|
will be computed according to content displayed in bar.
|
|
|
|
| size_max | integer ≥ 0 |
|
|
The maximum size for a bar, `0` = no limit (this option is used only if
|
|
`size` = `0`).
|
|
|
|
| color_bg | color |
|
|
The default background color for the bar.
|
|
|
|
| color_fg | color |
|
|
The default text color for the bar.
|
|
|
|
| color_delim | color |
|
|
The color for delimiters in bar.
|
|
|
|
| hidden | `on`, `off` |
|
|
When option is `on`, the bar is hidden. +
|
|
Note: instead of changing this option, the command `/bar` is preferred, for
|
|
example: `/bar toggle nicklist` (see command <<command_weechat_bar,/bar>>).
|
|
|
|
| separator | `on`, `off` |
|
|
When option is `on`, a separator (line) is displayed between this bar and
|
|
other bars (or chat).
|
|
|
|
| items | string |
|
|
A list of 'items' (see <<bar_items,items>> for more info).
|
|
|
|
| filling_left_right | `horizontal`, `vertical`, `columns_horizontal`, `columns_vertical` |
|
|
Type of filling for a bar which has position `left` or `right` (see
|
|
<<bar_filling,filling>> for more info).
|
|
|
|
| filling_top_bottom | `horizontal`, `vertical`, `columns_horizontal`, `columns_vertical` |
|
|
Type of filling for a bar which has position `top` or `bottom` (see
|
|
<<bar_filling,filling>> for more info).
|
|
|
|
| conditions | string |
|
|
The conditions to display the bar (see <<bar_conditions,conditions>> for more
|
|
info).
|
|
|===
|
|
|
|
[[bar_items]]
|
|
==== Items
|
|
|
|
The option 'items' is a string with a list of bar items, separated by a comma
|
|
(space between items on screen) or "+" (glued items).
|
|
|
|
The list of bar items is displayed with command `/bar listitems`.
|
|
|
|
// TRANSLATION MISSING
|
|
Before or after item name, you can use chars (that are not alphanumeric, "-" or
|
|
"_"). They will be displayed before/after item with the delimiters color
|
|
defined in bar (option 'color_delim').
|
|
|
|
Example of bar with items "[time],buffer_number+:+buffer_plugin+.+buffer_name":
|
|
|
|
....
|
|
┌───────────────────────────────────────────────────────────────────────────┐
|
|
│[12:55] 3:irc/freenode.#weechat │
|
|
└───────────────────────────────────────────────────────────────────────────┘
|
|
....
|
|
|
|
// TRANSLATION MISSING
|
|
A special syntax can be used to force the buffer used when displaying the bar
|
|
item: "@buffer:item" (where "buffer" is the full name of buffer and "item" is
|
|
the name of a bar item).
|
|
|
|
// TRANSLATION MISSING
|
|
This is useful in root bars, to display item for a specific buffer which is
|
|
not displayed in the current window (or even not displayed at all).
|
|
|
|
// TRANSLATION MISSING
|
|
Example: nicklist of bitlbee in a root bar (if the bar is called
|
|
'bitlist' and if bitlbee server is called 'bitlbee'):
|
|
|
|
----
|
|
/set weechat.bar.bitlist.items "@irc.bitlbee.&bitlbee:buffer_nicklist"
|
|
----
|
|
|
|
[[bar_filling]]
|
|
==== Filling
|
|
|
|
There are four types of filling:
|
|
|
|
* `horizontal`: the items are displayed horizontally, from left to right. If
|
|
there are new lines in items, a space is used to separate lines.
|
|
* `vertical`: the items are displayed from top to bottom. If there are new
|
|
lines in items, a new line is used to separate lines.
|
|
* `columns_horizontal`: items are displayed using columns, where text is
|
|
aligned on the left. The first item is on top left, the second is on same
|
|
line, on the right.
|
|
* `columns_vertical`: items are displayed using columns, where text is aligned
|
|
on the left. The first item is on top left, the second is one line below.
|
|
|
|
Default bars 'title', 'status' and 'input' have 'horizontal' filling, and
|
|
default bar 'nicklist' has 'vertical' filling.
|
|
|
|
Some examples of filling for bar '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
|
|
|
|
// TRANSLATION MISSING
|
|
The option 'conditions' is a string which is evaluated to know if the bar
|
|
must be displayed or not.
|
|
|
|
The string can be:
|
|
|
|
* 'active': the window must be active
|
|
* 'inactive': the window must be inactive
|
|
* 'nicklist': the buffer displayed in window must have a nicklist
|
|
* an expression: it is evaluated as boolean (see command
|
|
<<command_weechat_eval,/eval>>)
|
|
|
|
For the expression, following variables are available:
|
|
|
|
* `${active}`: true if window is active
|
|
* `${inactive}`: true if window is inactive
|
|
* `${nicklist}`: true if buffer displayed in window has a nicklist
|
|
|
|
Following pointers are available:
|
|
|
|
* `${window}`: the window where condition is evaluated
|
|
* `${buffer}`: the buffer of window where condition is evaluated
|
|
|
|
Example to display nicklist bar in all buffers with a nicklist, and only if
|
|
width of window is > 100 :
|
|
|
|
----
|
|
/set weechat.bar.nicklist.conditions "${nicklist} && ${window.win_width} > 100"
|
|
----
|
|
|
|
Same condition, but always display nicklist on buffer '&bitlbee' (even if window
|
|
is small):
|
|
|
|
----
|
|
/set weechat.bar.nicklist.conditions "${nicklist} && (${window.win_width} > 100 || ${buffer.full_name} == irc.bitlbee.&bitlbee)"
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
[[bare_display]]
|
|
=== Bare display
|
|
|
|
A special display, called "bare display" can be used for easy click on long URLs
|
|
and selection of text (using the mouse).
|
|
|
|
The bare display has following features:
|
|
|
|
* it displays only the content of current buffer: no window split neither bars
|
|
(no title, nicklist, status, input, ...)
|
|
* the WeeChat mouse support is disabled (if it was enabled): you can use your
|
|
mouse like you do in the terminal to click on URLs and select text
|
|
* ncurses is not used, therefore URLs are not cut at the end of lines.
|
|
|
|
The default key to enabled bare display is kbd:[Alt+l], and same key to exit (or
|
|
by default anything changing the input will exit the bare display, see option
|
|
<<option_weechat.look.bare_display_exit_on_input,weechat.look.bare_display_exit_on_input>>).
|
|
|
|
The time format can be customized with the option
|
|
<<option_weechat.look.bare_display_time_format,weechat.look.bare_display_time_format>>.
|
|
|
|
The bare display can be enabled for a specific delay using the command
|
|
<<command_weechat_window,/window>>.
|
|
|
|
If WeeChat looks like that:
|
|
|
|
....
|
|
┌───────────────────────────────────────────────────────────────────────────┐
|
|
│Welcome to #test, this is a test channel │
|
|
│12:52:27 --> | Flashy (flashcode@weechat.org) has joined #test │@Flashy│
|
|
│12:52:27 -- | Nicks #test: [@Flashy @joe +weebot peter] │@joe │
|
|
│12:52:27 -- | Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│
|
|
│12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │peter │
|
|
│12:54:15 peter | hey! │ │
|
|
│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)] hi peter!█ │
|
|
└───────────────────────────────────────────────────────────────────────────┘
|
|
....
|
|
|
|
The screen will look like that in bare display:
|
|
|
|
....
|
|
┌───────────────────────────────────────────────────────────────────────────┐
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│ │
|
|
│12:52 --> Flashy (flashcode@weechat.org) has joined #test │
|
|
│12:52 -- Nicks #test: [@Flashy @joe +weebot peter] │
|
|
│12:52 -- Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │
|
|
│12:52 -- Channel created on Tue Jan 27 06:30:17 2009 │
|
|
│12:54 <peter> hey! │
|
|
│12:55 <@joe> peter: hook_process: https://weechat.org/files/doc/devel/weech│
|
|
│at_plugin_api.en.html#_weechat_hook_process │
|
|
└───────────────────────────────────────────────────────────────────────────┘
|
|
....
|
|
|
|
So you can click the URL from 'joe' without any problem in your terminal (of
|
|
course this supposes that your terminal supports click on URLs).
|
|
|
|
[[notify_levels]]
|
|
=== Livelli di notifica
|
|
|
|
Sono possibili quattro livelli per i messaggi mostrati nei buffer, dal più basso
|
|
al più alto:
|
|
|
|
* 'low': messaggio di bassa importanza (ad esempio entrata/uscita/disconnessione
|
|
di irc)
|
|
* 'message': messaggio da un utente
|
|
* 'private': messaggio in un buffer privato
|
|
* 'highlight': messaggio con notifica
|
|
|
|
Ogni buffer ha un livello di notifica, che viene usato per decidere quale
|
|
messaggio il buffer andrà ad aggiungere nella hotlist.
|
|
|
|
Il livello predefinito di notifica può essere impostato usando l'opzione
|
|
<<option_weechat.look.buffer_notify_default,weechat.look.buffer_notify_default>>,
|
|
il valore predefinito è 'all'.
|
|
|
|
[width="50%",cols="3m,10",options="header"]
|
|
|===
|
|
| Livello di notifica | Livello del messaggio aggiunto alla hotlist
|
|
| none | (nessuno)
|
|
| highlight | 'highlight' + 'private'
|
|
| message | 'highlight' + 'private' + 'message'
|
|
| all | 'highlight' + 'private' + 'message' + 'low'
|
|
|===
|
|
|
|
Il livello di notifica può essere definito per un set di buffer, ad esempio
|
|
tutti i buffer per il server irc "freenode":
|
|
|
|
----
|
|
/set weechat.notify.irc.freenode message
|
|
----
|
|
|
|
Imposta il livello di notifica 'highlight' solo sul canale '#weechat':
|
|
|
|
----
|
|
/set weechat.notify.irc.freenode.#weechat highlight
|
|
----
|
|
|
|
Il livello di notifica per un buffer può essere impostato con il comando `/buffer`:
|
|
|
|
----
|
|
/buffer notify highlight
|
|
----
|
|
|
|
[[key_bindings]]
|
|
=== Associazione tasti predefinita
|
|
|
|
[[key_bindings_command_line]]
|
|
==== Tasti per la riga di comando
|
|
|
|
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
|
|===
|
|
| Tasti | Descrizione | Comando
|
|
| kbd:[←] +
|
|
kbd:[Ctrl+b] | Passa al carattere precedente nella riga di comando | `/input move_previous_char`
|
|
| kbd:[→] +
|
|
kbd:[Ctrl+f] | Passa al carattere successivo nella riga di comando | `/input move_next_char`
|
|
| kbd:[Ctrl+←] +
|
|
kbd:[Alt+b] | Passa alla parola precedente nella riga di comando | `/input move_previous_word`
|
|
| kbd:[Ctrl+→] +
|
|
kbd:[Alt+f] | Passa alla parola successiva nella riga di comando | `/input move_next_word`
|
|
| kbd:[Home] +
|
|
kbd:[Ctrl+a] | Si sposta all'inizio della riga di comando | `/input move_beginning_of_line`
|
|
| kbd:[End] +
|
|
kbd:[Ctrl+e] | Si sposta alla fine della riga di comando | `/input move_end_of_line`
|
|
| kbd:[Ctrl+c],
|
|
kbd:[b] | Inserisce il codice per il testo in grassetto | `/input insert \x02`
|
|
| kbd:[Ctrl+c],
|
|
kbd:[c] | Inserisce il codice per il testo colorato | `/input insert \x03`
|
|
| kbd:[Ctrl+c],
|
|
kbd:[i] | Inserisce il codice per il testo in corsivo | `/input insert \x1D`
|
|
| kbd:[Ctrl+c],
|
|
kbd:[o] | Inserisce il codice per il reset dei colori | `/input insert \x0F`
|
|
| kbd:[Ctrl+c],
|
|
kbd:[v] | Inserisce il codice per l'inversione dei colori | `/input insert \x16`
|
|
| kbd:[Ctrl+c],
|
|
kbd:[_] | Inserisce il codice per il testo sottolineato | `/input insert \x1F`
|
|
| kbd:[Del] +
|
|
kbd:[Ctrl+d] | Elimina il carattere successivo nella riga di comando | `/input delete_next_char`
|
|
| kbd:[Backsp.] +
|
|
kbd:[Ctrl+h] | Elimina il carattere precedente nella riga di comando | `/input delete_previous_char`
|
|
| kbd:[Ctrl+k] | Elimina dal cursore fino alla fine della riga di comando (la stringa eliminata viene copiata negli appunti) | `/input delete_end_of_line`
|
|
| kbd:[Ctrl+r] | Cerca del testo nella cronologia del buffer (consultare <<key_bindings_search_context,tasti per il contesto search>>) | `/input search_text_here`
|
|
| kbd:[Ctrl+t] | Inverti caratteri | `/input transpose_chars`
|
|
| kbd:[Ctrl+u] | Elimina dal cursore fino all'inizio della riga di comando (la stringa eliminata viene copiata negli appunti) | `/input delete_beginning_of_line`
|
|
| kbd:[Ctrl+w] | Elimina la parola precedente nella riga di comando (la stringa eliminata viene copiata negli appunti) | `/input delete_previous_word`
|
|
| kbd:[Ctrl+y] | Incolla il contenuto degli appunti | `/input clipboard_paste`
|
|
| kbd:[Ctrl+_] | Annulla l'ultima azione sulla riga di comando | `/input undo`
|
|
| kbd:[Alt+_] | Ripete l'ultima azione sulla riga di comando | `/input redo`
|
|
| kbd:[Tab] | Completa comando o nick (kbd:[Tab] di nuovo: trova prossimo completamento) | `/input complete_next`
|
|
| kbd:[Shift+Tab] | Senza completamento: effettua un completamento parziale, con completamento in sospeso: completa con il completamento precedente | `/input complete_previous`
|
|
| kbd:[Invio] +
|
|
kbd:[Ctrl+j] +
|
|
kbd:[Ctrl+m] | Esegue comando o invia messaggio (in modalità ricerca: ferma ricerca) | `/input return`
|
|
| kbd:[↑] | Chiama comando/messaggio precedente (in modalità ricerca: cerca in alto) | `/input history_previous`
|
|
| kbd:[↓] | Chiama comando/messaggio precedente (in modalità ricerca: cerca in basso) | `/input history_next`
|
|
| kbd:[Ctrl+↑] | Chiama il comando/messaggio precedente nella cronologia globale (identico per tutti i buffer) | `/input history_global_previous`
|
|
| kbd:[Ctrl+↓] | Chiama il comando/messaggio successivo nella cronologia globale (identico per tutti i buffer) | `/input history_global_next`
|
|
| kbd:[Alt+d] | Elimina la parola successiva nella riga di comando (la stringa eliminata viene copiata negli appunti) | `/input delete_next_word`
|
|
| kbd:[Alt+k] | Cattura un tasto ed inserisce il suo codice (e il comando associato se il tasto esiste) nella riga di comando | `/input grab_key_command`
|
|
| kbd:[Alt+r] | Elimina l'intera riga di comando | `/input delete_line`
|
|
| kbd:[Alt+s] | Abilita/disabilita aspell | `/mute aspell toggle`
|
|
|===
|
|
|
|
[[key_bindings_buffers_windows]]
|
|
==== Tasti per buffer / finestre
|
|
|
|
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
|
|===
|
|
| Tasti | Descrizione | Comando
|
|
| kbd:[Ctrl+l] | Ridisegna l'intera finestra | `/window refresh`
|
|
| kbd:[Ctrl+s],
|
|
kbd:[ctrl-u] | Imposta l'evidenziatore dei messaggi non letti su tutti i buffer | `/input set_unread`
|
|
| kbd:[Ctrl+x] | Passa al buffer attivo se i buffer sono collegati con lo stesso numero | `/input switch_active_buffer`
|
|
// TRANSLATION MISSING
|
|
| kbd:[Alt+x] | Zoom on merged buffer (kbd:[Alt+x] again: display all merged buffers) | `/input zoom_merged_buffer`
|
|
| kbd:[PgUp] | Scorre in alto di una pagina nella cronologia del buffer | `/window page_up`
|
|
| kbd:[PgDn] | Scorre di una pagina in basso nella cronologia del buffer | `/window page_down`
|
|
| kbd:[Alt+PgUp] | Scorre di qualche riga in alto nella cronologia del buffer | `/window scroll_up`
|
|
| kbd:[Alt+PgDn] | Scorre di qualche riga in basso nella cronologia del buffer | `/window scroll_down`
|
|
| kbd:[Alt+Home] | Scorre in cima al buffer | `/window scroll_top`
|
|
| kbd:[Alt+End] | Scorre alla fine del del buffer | `/window scroll_bottom`
|
|
| kbd:[Alt+←] +
|
|
kbd:[Alt+↑] +
|
|
kbd:[Ctrl+p] +
|
|
kbd:[F5] | Passa al buffer precedente | `/buffer -1`
|
|
| kbd:[Alt+→] +
|
|
kbd:[Alt+↓] +
|
|
kbd:[Ctrl+n] +
|
|
kbd:[F6] | Passa al buffer successivo | `/buffer +1`
|
|
| kbd:[F7] | Passa alla finestra precedente | `/window -1`
|
|
| kbd:[F8] | Passa alla finestra successiva | `/window +1`
|
|
| kbd:[F9] | Scorre il titolo del buffer sulla sinistra | `/bar scroll title * -30%`
|
|
| kbd:[F10] | Scorre il titolo del buffer sulla destra | `/bar scroll title * +30%`
|
|
| kbd:[F11] | Scorre di una pagina in alto nella lista nick | `/bar scroll nicklist * -100%`
|
|
| kbd:[F12] | Scorre di una pagina in basso nella lista nick | `/bar scroll nicklist * +100%`
|
|
| kbd:[Alt+F11] | Sposta all'inizio della lista nick | `/bar scroll nicklist * b`
|
|
| kbd:[Alt+F12] | Sposta alla fine della lista nick | `/bar scroll nicklist * e`
|
|
| kbd:[Alt+a] | Passa al buffer successivo con attività (con priorità: highligh, messagge, altro) | `/input jump_smart`
|
|
| kbd:[Alt+h] | Pulisce hotlist (notifica di attività su altri buffer) | `/input hotlist_clear`
|
|
// TRANSLATION MISSING
|
|
| kbd:[Alt+j],
|
|
kbd:[alt-f] | Switch to first buffer | `/buffer -`
|
|
| kbd:[Alt+j],
|
|
kbd:[alt-l] | Passa all'ultimo buffer | `/buffer +`
|
|
| kbd:[Alt+j],
|
|
kbd:[alt-r] | Passa al buffer raw IRC | `/server raw`
|
|
| kbd:[Alt+j],
|
|
kbd:[alt-s] | Passa al buffer server IRC | `/server jump`
|
|
| kbd:[Alt+0...9] | Passa al buffer numero (0 = 10) | `/buffer *N`
|
|
| kbd:[Alt+j],
|
|
kbd:[01...99] | Passa al buffer numero | `/buffer *NN`
|
|
// TRANSLATION MISSING
|
|
| kbd:[Alt+l] | Toggle bare display on/off | `/window bare`
|
|
| kbd:[Alt+m] | Abilita/disabilita | `/mouse toggle`
|
|
| kbd:[Alt+n] | Scorre fino alla notifica successiva | `/window scroll_next_highlight`
|
|
| kbd:[Alt+p] | Scorre fino alla notifica precedente | `/window scroll_previous_highlight`
|
|
| kbd:[Alt+u] | Scorre fino alla prima riga non letta nel buffer | `/window scroll_unread`
|
|
| kbd:[Alt+w],
|
|
kbd:[alt-↑] | Passa alla finestra in alto | `/window up`
|
|
| kbd:[Alt+w],
|
|
kbd:[alt-↓] | Passa alla finestra in basso | `/window down`
|
|
| kbd:[Alt+w],
|
|
kbd:[alt-←] | Passa alla finestra sulla sinistra | `/window left`
|
|
| kbd:[Alt+w],
|
|
kbd:[alt-→] | Passa alla finestrs sulla destra | `/window right`
|
|
| kbd:[Alt+w],
|
|
kbd:[alt-b] | Bilancia le dimensioni di tutte le finestre | `/window balance`
|
|
| kbd:[Alt+w],
|
|
kbd:[alt-s] | Scambia i buffer di due finestra | `/window swap`
|
|
| kbd:[Alt+z] | Ingrandimento sulla finestra attiva (kbd:[Alt+z] di nuovo: ripristina lo stato iniziale della finestra, prima dell'ingrandimento) | `/window zoom`
|
|
| kbd:[Alt+<] | Passa al buffer precedente nella lista dei buffer visitati | `/input jump_previously_visited_buffer`
|
|
| kbd:[Alt+>] | Passa al buffer successivo nella lista dei buffer visitati | `/input jump_next_visited_buffer`
|
|
| kbd:[Alt+/] | Passa all'ultimo buffer mostrato (prima dell'ultimo passaggio ad un buffer) | `/input jump_last_buffer_displayed`
|
|
| kbd:[Alt+=] | Attiva/disattiva filtri | `/filter toggle`
|
|
// TRANSLATION MISSING
|
|
| kbd:[Alt+-] | Toggle filters on/off in current buffer | `/filter toggle @`
|
|
|===
|
|
|
|
[[key_bindings_search_context]]
|
|
==== Tasti per il contesto "search"
|
|
|
|
Questi tasti sono usati nel contesto "search" (quando viene digitato
|
|
kbd:[Ctrl+r] per cercare del testo nel buffer).
|
|
|
|
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
|
|===
|
|
| Key | Descrizione | Comando
|
|
// TRANSLATION MISSING
|
|
| kbd:[Ctrl+r] | Switch search type: string (default), regular expression | `/input search_switch_regex`
|
|
| kbd:[Alt+c] | Passa alla ricerca esatta | `/input search_switch_case`
|
|
// TRANSLATION MISSING
|
|
| kbd:[Tab] | Switch search in: messages (default), prefixes, prefixes + messages | `/input search_switch_where`
|
|
| kbd:[↑] | Cerca riga precedente | `/input search_previous`
|
|
| kbd:[↓] | Cerca riga successiva | `/input search_next`
|
|
// TRANSLATION MISSING
|
|
| kbd:[Enter] +
|
|
kbd:[Ctrl+j] +
|
|
kbd:[Ctrl+m] | Stop search at current position | `/input search_stop_here`
|
|
// TRANSLATION MISSING
|
|
| kbd:[Ctrl+q] | Stop search and scroll to bottom of buffer | `/input search_stop`
|
|
|===
|
|
|
|
[[key_bindings_cursor_context]]
|
|
==== Tasti per il contesto "cursor"
|
|
|
|
Questi tasti sono usati nel contesto "cursor" (movimento libero del cursore
|
|
sullo schermo.
|
|
|
|
[width="100%",cols="^.^3,^.^2,.^7,.^7",options="header"]
|
|
|===
|
|
| Tasto | Zona | Descrizione | Comando
|
|
| kbd:[↑] | - | Sposta il cursore di una riga in alto | `/cursor move up`
|
|
| kbd:[↓] | - | Sposta il cursore di una riga in basso | `/cursor move down`
|
|
| kbd:[←] | - | Sposta il cursore di una colonna a sinistra | `/cursor move left`
|
|
| kbd:[→] | - | Sposta il cursore di una colonna a destra | `/cursor move right`
|
|
| kbd:[Alt+↑] | - | Sposta il cursore nell'area in alto | `/cursor move area_up`
|
|
| kbd:[Alt+↓] | - | Sposta il cursore nell'area in basso | `/cursor move area_down`
|
|
| kbd:[Alt+←] | - | Sposta il cursore nell'area a sinistra | `/cursor move area_left`
|
|
| kbd:[Alt+→] | - | Sposta il cursore nell'area a destra | `/cursor move area_right`
|
|
| kbd:[m] | chat | Cita messaggio | `hsignal:chat_quote_message;/cursor stop`
|
|
| kbd:[q] | chat | Cita prefisso + messaggio | `hsignal:chat_quote_prefix_message;/cursor stop`
|
|
| kbd:[Q] | chat | Cita ora + prefisso + messaggio | `hsignal:chat_quote_time_prefix_message;/cursor stop`
|
|
| kbd:[b] | lista nick | Ban di un nick | `/window ${_window_number};/ban ${nick}`
|
|
| kbd:[k] | lista nick | Kick di un nick | `/window ${_window_number};/kick ${nick}`
|
|
| kbd:[K] | lista nick | Kick e ban di un nick | `/window ${_window_number};/kickban ${nick}`
|
|
| kbd:[q] | lista nick | Apri query con il nick | `/window ${_window_number};/query ${nick};/cursor stop`
|
|
| kbd:[w] | lista nick | Effettua un whois sul nick | `/window ${_window_number};/whois ${nick}`
|
|
| kbd:[Enter] +
|
|
kbd:[Ctrl+j] +
|
|
kbd:[Ctrl+m] | - | Ferma la modalità cursore | `/cursor stop`
|
|
|===
|
|
|
|
[[key_bindings_mouse_context]]
|
|
==== Tasti per il contesto "mouse"
|
|
|
|
Questi tasti sono usati nel contesto "mouse", ovvero quando si verifica un
|
|
evento del mouse.
|
|
|
|
// TRANSLATION MISSING (6)
|
|
[width="100%",cols="^.^3,^.^3,^.^3,.^8,.^8",options="header"]
|
|
|===
|
|
| Tasto ^(1)^ | Azione | Zona | Descrizione | Comando
|
|
| ◾◽◽ | - | chat | Passa alla finestra | `/window ${_window_number}`
|
|
| ◾◽◽ | sinistra | chat | Passa al buffer precedente | `/window ${_window_number};/buffer +1`
|
|
| ◾◽◽ | destra | chat | Passa al buffer successivo | `/window ${_window_number};/buffer +1`
|
|
| ◾◽◽ | sinistra (lungo) | chat | Switch to first buffer | `/window ${_window_number};/buffer 1`
|
|
| ◾◽◽ | destra (lungo) | chat | Passa all'ultimo buffer | `/window ${_window_number};/input jump_last_buffer`
|
|
| ◾◽◽ | - | chat (script buffer) | Select line in script buffer | `/script go ${_chat_line_y}`
|
|
| ◽◽◾ | - | chat (script buffer) | Install/remove script | `/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}`
|
|
| ⇑ | - | chat | Scorre di qualche riga in alto nella cronologia del buffer | `/window scroll_up -window ${_window_number}`
|
|
| ⇓ | - | chat | Scorre di qualche riga in basso nella cronologia del buffer | `/window scroll_down -window ${_window_number}`
|
|
| ⇑ | - | chat (script buffer) | Move 5 lines up in script buffer | `/script up 5`
|
|
| ⇓ | - | chat (script buffer) | Move 5 lines down in script buffer | `/script down 5`
|
|
| kbd:[Ctrl+⇑] | - | chat | Scroll horizontally to the left | `/window scroll_horiz -window ${_window_number} -10%`
|
|
| kbd:[Ctrl+⇓] | - | chat | Scroll horizontally to the right | `/window scroll_horiz -window ${_window_number} +10%`
|
|
| ◾◽◽ | su | lista nick | Scorre di una pagina in alto nella lista nick | `/bar scroll nicklist ${_window_number} -100%`
|
|
| ◾◽◽ | giù | lista nick | Scorre di una pagina in basso nella lista nick | `/bar scroll nicklist ${_window_number} +100%`
|
|
| ◾◽◽ | up (lungo) | lista nick | Sposta all'inizio della lista nick | `/bar scroll nicklist ${_window_number} b`
|
|
| ◾◽◽ | giù (lungo) | lista nick | Sposta alla fine della lista nick | `/bar scroll nicklist ${_window_number} e`
|
|
| ◾◽◽ | - | lista nick | Apre una query con un nick | `/window ${_window_number};/query ${nick}`
|
|
| ◽◽◾ | - | lista nick | Effettua un whois su un nick | `/window ${_window_number};/whois ${nick}`
|
|
| ◾◽◽ | sinistra | lista nick | Kick di un nick | `/window ${_window_number};/kick ${nick}`
|
|
| ◾◽◽ | sinistra (lungo) | lista nick | Kick e ban di un nick | `/window ${_window_number};/kickban ${nick}`
|
|
| ◽◽◾ | sinistra | lista nick | Ban di un nick | `/window ${_window_number};/ban ${nick}`
|
|
| ◽◽◾ | - | input | Cattura un evento del mouse e inserisce il codice nella riga di comando | `/input grab_mouse_area`
|
|
| ⇑ | - | ogni barra | Scorre la barra del -20% | `/bar scroll ${_bar_name} ${_window_number} -20%`
|
|
| ⇓ | - | ogni barra | Scorre la barra del +20% | `/bar scroll ${_bar_name} ${_window_number} +20%`
|
|
| ◽◾◽ | - | ovunque | Avvia la modalità cursore in questo punto | `/cursor go ${_x},${_y}`
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
[NOTE]
|
|
^(1)^ "⇑" and "⇓" are wheel up and down.
|
|
|
|
[[mouse]]
|
|
=== Supporto del mouse
|
|
|
|
WeeChat supporta i click e le azioni del mouse. Funziona con il terminale
|
|
locale, e da remoto via connessione ssh con o senza screen/tmux.
|
|
|
|
[[mouse_enable]]
|
|
==== Abilitare il mouse
|
|
|
|
Per abilitare il mouse all'avvio:
|
|
|
|
----
|
|
/set weechat.look.mouse on
|
|
----
|
|
|
|
Per abilitarlo subito, digitare kbd:[Alt+m] oppure eseguire il seguente comando:
|
|
|
|
----
|
|
/mouse enable
|
|
----
|
|
|
|
È possibile disabilitarlo temporaneamente, e associare il comando ad un
|
|
tasto. Ad esempio il tasto kbd:[Alt+%] per disabilitare il mouse per 10 secondi:
|
|
|
|
----
|
|
/key bind meta-% /mouse toggle 10
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
[IMPORTANT]
|
|
When mouse is enabled in WeeChat, all mouse events are caught by WeeChat, so
|
|
actions such as copy/paste or clicks on URLs are not sent to the terminal. +
|
|
Using kbd:[Shift] key causes the events to be sent directly to the terminal,
|
|
as if the mouse was disabled (on some terminals like iTerm, you have to use
|
|
kbd:[Alt] instead of kbd:[Shift]).
|
|
|
|
[NOTE]
|
|
Per qualunque problema con il mouse, consultare 'FAQ di WeeChat'.
|
|
|
|
[[mouse_bind_events]]
|
|
==== Associare gli eventi del mouse a comandi
|
|
|
|
Molti eventi del mouse predefiniti sono già definiti da WeeChat (consultare
|
|
<<key_bindings_mouse_context,tasti per il contesto "mouse">>).
|
|
|
|
È possibile cambiare o aggiungere combinazioni con il comando `/key` usando il
|
|
contesto "mouse" (per la sintassi, consultare comando
|
|
<<command_weechat_key,/key>>).
|
|
|
|
Il nome dell'evento consiste di un modificatore (opzionale), il nome di un
|
|
pulsante/rotellina e un'azione (opzionale). Elementi diversi sono separati da "-".
|
|
|
|
Elenco di modificatori
|
|
|
|
[width="50%",cols="3m,4",options="header"]
|
|
|===
|
|
| Modificatore | Descrizione
|
|
| ctrl | Tasto kbd:[Ctrl]
|
|
| alt | Tasto kbd:[Alt]
|
|
| ctrl-alt | Tasto kbd:[Ctrl] + kbd:[Alt]
|
|
|===
|
|
|
|
Elenco di pulsanti/rotellina:
|
|
|
|
[width="50%",cols="3m,4",options="header"]
|
|
|===
|
|
| Pulsante/rotellina | Descrizione
|
|
| button1 | Click sul tasto sinistro
|
|
| button2 | Click sul tasto destro
|
|
| button3 | Click sul tasto centrale (spesso click sulla rotellina)
|
|
| button4 ... button9 | Click sui pulsanti extra
|
|
| wheelup | Rotellina (su)
|
|
| wheeldown | Rotellina (giù)
|
|
|===
|
|
|
|
Elenco di azioni (solo per i pulsanti, non la rotellina):
|
|
|
|
[width="50%",cols="3m,4",options="header"]
|
|
|===
|
|
| Azione | Distanza
|
|
| 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
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
List of incomplete events (only for buttons, useful for plugins/scripts):
|
|
|
|
[width="50%",cols="3m,4",options="header"]
|
|
|===
|
|
| Event | Description
|
|
| event-down | Button was pressed but not released yet
|
|
| event-drag | Mouse was moved with button pressed down
|
|
|===
|
|
|
|
Esempio di eventi:
|
|
|
|
* `button1`
|
|
* `ctrl-button1`
|
|
* `button1-gesture-right`
|
|
* `button1-event-down`
|
|
* `button1-event-drag`
|
|
* `alt-button2-gesture-down-long`
|
|
* `wheelup`
|
|
* `ctrl-alt-wheeldown`
|
|
* ...
|
|
|
|
[TIP]
|
|
Quando si associa un tasto nel contesto "mouse", è possibile far corrispondere
|
|
più eventi usando `+*+` all'inizio o alla fine del nome, ad esempio
|
|
`+button1-gesture-*+` corrisponderà ad ogni azione compiuta col tasto sinistro.
|
|
|
|
[TIP]
|
|
È possibile trovare il nome di un evento con il comando `/input grab_mouse`
|
|
poi eseguire l'evento col mouse. Il comando inserisce il nome dell'evento
|
|
nella riga di comando.
|
|
|
|
[[command_line]]
|
|
=== Riga di comando
|
|
|
|
La riga di comando di WeeChat (nella parte inferiore della finestra) consente di
|
|
inserire i comandi o di inviare del testo sul buffer.
|
|
|
|
[[command_line_syntax]]
|
|
==== Sintassi
|
|
|
|
I comandi iniziano con il carattere "/", seguito dal nome del comando. Ad esempio,
|
|
per consultare un elenco di opzioni:
|
|
|
|
----
|
|
/set
|
|
----
|
|
|
|
Il testo inviato ad un buffer è qualsiasi testo che non comincia con
|
|
il carattere "/". Per esempio, per inviare il testo 'ciao' sul buffer
|
|
attivo:
|
|
|
|
----
|
|
ciao
|
|
----
|
|
|
|
Ad ogni modo, è possibile iniziare con il carattere "/", aggiungendone
|
|
poi un altro. Ad esempio, per inviare il testo '/set' sul buffer attivo:
|
|
|
|
----
|
|
//set
|
|
----
|
|
|
|
[[command_line_colors]]
|
|
==== Codici colore
|
|
|
|
Per alcuni plugin come IRC, è possibile usare codici colori ed attributi,
|
|
come segue (digitare kbd:[Ctrl+c] poi la lettera che segue, con il valore
|
|
opzionale):
|
|
|
|
[width="60%",cols="3,5",options="header"]
|
|
|===
|
|
// TRANSLATIION MISSING
|
|
| Key | Description
|
|
| kbd:[Ctrl+c], kbd:[b] | testo in grassetto
|
|
| kbd:[Ctrl+c], kbd:[c],
|
|
kbd:[xx] | colore del testo `xx` (consultare la lista di colori che segue)
|
|
| kbd:[Ctrl+c], kbd:[c],
|
|
kbd:[xx], kbd:[,],
|
|
kbd:[yy] | colore del testo `xx` e di sfondo `yy` (consultare la lista di colori che segue)
|
|
// TRANSLATION MISSING
|
|
| kbd:[Ctrl+c], kbd:[i] | italic text
|
|
| kbd:[Ctrl+c], kbd:[o] | disabilita colori ed attributi
|
|
| kbd:[Ctrl+c], kbd:[v] | video inverso (inverte il colore del testo con quello di sfondo)
|
|
| kbd:[Ctrl+c], kbd:[_] | testo sottolineato
|
|
|===
|
|
|
|
[NOTE]
|
|
Lo stesso codice (senza numero per kbd:[Ctrl+c], kbd:[c]) può essere usato per
|
|
terminare l'attributo.
|
|
|
|
I codici colore per kbd:[Ctrl+c], kbd:[c] sono:
|
|
|
|
include::autogen/user/irc_colors.asciidoc[]
|
|
|
|
// TRANSLATION MISSING
|
|
[NOTE]
|
|
To show all available colors in your terminal, you can do `/color` then
|
|
kbd:[Alt+c] in WeeChat or run this command in terminal: `weechat --colors`.
|
|
|
|
Esempio: visualizza "ciao a tutti!" con "ciao" scritto in blu chiaro grassetto
|
|
e "a tutti" in rosso chiaro sottolineato:
|
|
|
|
----
|
|
^Cc12^Cbciao ^Cb^Cc04^C_a tutti^C_^Cc !
|
|
----
|
|
|
|
[NOTE]
|
|
Nel plugin irc, si possono riorganizzare i colori usando l'opzione
|
|
<<option_irc.color.mirc_remap,irc.color.mirc_remap>>.
|
|
|
|
[[colors]]
|
|
=== Colori
|
|
|
|
WeeChat può usare fino a 256 coppie di colore per visualizzare il testo nelle barre e
|
|
nell'area di chat(il terminale deve supportare 256 colori per essere utilizzati in WeeChat).
|
|
|
|
In base al valore della variabile di ambiente 'TERM', potrebbero verificarsi i
|
|
seguenti limiti per i colori in WeeChat:
|
|
|
|
[width="50%",cols="8,>2,>2",options="header"]
|
|
|===
|
|
| $TERM | Colori | Coppie
|
|
| "rxvt-unicode", "xterm", ... | 88 | 256
|
|
| "rxvt-256color", "xterm-256color", ... | 256 | 256
|
|
| "screen" | 8 | 64
|
|
| "screen-256color" | 256 | 256
|
|
| "tmux" | 8 | 64
|
|
| "tmux-256color" | 256 | 256
|
|
|===
|
|
|
|
È possibile eseguire `weechat --colors` o utilizzare il comando `/color` in
|
|
WeeChat per visualizzare i limiti del proprio ambiente.
|
|
|
|
Alcuni valori raccomandati per 'TERM' se si desiderano 256 colori:
|
|
|
|
* con screen: 'screen-256color'
|
|
// TRANSLATION MISSING
|
|
* under tmux: 'screen-256color' or 'tmux-256color'
|
|
// TRANSLATION MISSING
|
|
* outside screen/tmux: 'xterm-256color', 'rxvt-256color', 'putty-256color', ...
|
|
|
|
[NOTE]
|
|
Potrebbe essere necessario installare il pacchetto "ncurses-term" per usare
|
|
questi valori nella variabile 'TERM'.
|
|
|
|
Se si sta utilizzando screen, è possibile aggiungere questa riga al
|
|
proprio '~/.screenrc':
|
|
|
|
----
|
|
term screen-256color
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
If your 'TERM' variable has wrong value and that WeeChat is already running,
|
|
you can change it with these two commands:
|
|
|
|
----
|
|
/set env TERM screen-256color
|
|
/upgrade
|
|
----
|
|
|
|
[[colors_basic]]
|
|
==== Colori base
|
|
|
|
I colori base in WeeChat sono:
|
|
|
|
[width="50%",cols="^3m,8",options="header"]
|
|
|===
|
|
| Nome | Colore
|
|
| default | Colore predefinito del terminale (trasparente per lo sfondo)
|
|
| black | Nero
|
|
| darkgray | Grigio scuro
|
|
| red | Rosso scuro
|
|
| lightred | Rosso chiaro
|
|
| green | Verde scuro
|
|
| lightgreen | Verde chiaro
|
|
| brown | Marrone
|
|
| yellow | Giallo
|
|
| blue | Blu scuro
|
|
| lightblue | Blu chiaro
|
|
| magenta | Rosa scuro
|
|
| lightmagenta | Rosa chiaro
|
|
| cyan | Azzurro scuro
|
|
| lightcyan | Azzurro chiaro
|
|
| gray | Grigio
|
|
| white | Bianco
|
|
|===
|
|
|
|
[[colors_extended]]
|
|
==== Colori estesi
|
|
|
|
WeeChat alloca dinamicamente le coppie colore quando vengono usati i colori
|
|
sullo schermo (per mostrare buffer e barre).
|
|
|
|
In aggiunta ai colori di base, si può usare un numero per il colore compreso
|
|
tra 1 e il limite del proprio terminale.
|
|
|
|
Il comando '/color' mostra i colori attivi ed i limiti. Com kbd:[Alt+c] si può
|
|
passare temporaneamente ai colori del terminale per sceglierne uno.
|
|
|
|
Se ad esempio si desidera visualizzare l'ora in arancione nel buffer:
|
|
|
|
----
|
|
/set weechat.color.chat_time 214
|
|
----
|
|
|
|
O se si desidera uno sfondo verde scuro per la barra di stato:
|
|
|
|
----
|
|
/set weechat.bar.status.color_bg 22
|
|
----
|
|
|
|
[[colors_aliases]]
|
|
==== Alias
|
|
|
|
Si possono aggiungere degli alias ai colori con il comando '/color alias' e
|
|
usarli in ogni opzione relativa al colore.
|
|
|
|
Ad esempio:
|
|
|
|
----
|
|
/color alias 214 orange
|
|
/set weechat.color.chat_delimiters orange
|
|
----
|
|
|
|
[[colors_attributes]]
|
|
==== Attributi
|
|
|
|
Esistono alcuni attributi per i colori. Uno o più attributi vanno aggiunti prima
|
|
del nome o del numero del colore:
|
|
|
|
* `*` : testo in grassetto
|
|
* `!` : video inverso
|
|
* `/` : testo in corsivo
|
|
* `_` : testo sottolineato
|
|
* `|` : mantiene attributi: non ripristina grassetto/inverso/sottolineato
|
|
al cambio di colore
|
|
|
|
Ad esempio se si vuole il proprio nick bianco e sottolineato:
|
|
|
|
----
|
|
/set weechat.color.chat_nick_self _white
|
|
----
|
|
|
|
O se si desidera l'ora nella barra di stato arancione sottolineata
|
|
e in grassetto:
|
|
|
|
----
|
|
/set weechat.color.status_time *_214
|
|
----
|
|
|
|
Per usare un attributo con il colore predefinito del terminale (-1), bisogna
|
|
usare un numero maggiore dell'ultimo colore del terminale, ad esempio il
|
|
numero massimo in WeeChat: 99999.
|
|
|
|
Esempio di grassetto con il colore di primo piano del terminale:
|
|
|
|
----
|
|
/set weechat.color.status_time *99999
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
[[secured_data]]
|
|
=== Secured data
|
|
|
|
[[secured_data_storage]]
|
|
==== Storage
|
|
|
|
WeeChat can encrypt passwords or private data using secured data, stored in file
|
|
'sec.conf'.
|
|
|
|
This configuration file is read before any other file, and the values stored
|
|
inside can be used in various WeeChat or plugins/scripts options.
|
|
|
|
You can set a passphrase to encrypt data in 'sec.conf'. This is not mandatory
|
|
but highly recommended, otherwise data is stored as plain text in file.
|
|
|
|
----
|
|
/secure passphrase this is my passphrase
|
|
----
|
|
|
|
When a passphrase is set, WeeChat will ask you to enter it on startup (but not
|
|
on `/upgrade`).
|
|
|
|
You can change this behavior and use a file with the passphrase (see option
|
|
<<option_sec.crypt.passphrase_file,sec.crypt.passphrase_file>>).
|
|
|
|
[[secured_data_encryption]]
|
|
===== Encryption
|
|
|
|
The encryption of data is made in 3 steps:
|
|
|
|
. Derive a key from the passphrase (with optional salt).
|
|
. Compute hash of data to encrypt.
|
|
. Encrypt the hash + data (output is: salt + encrypted hash/data).
|
|
|
|
[NOTE]
|
|
The cipher block mode is 'CFB'.
|
|
|
|
The result is put as hexadecimal string in file 'sec.conf', for example:
|
|
|
|
----
|
|
[data]
|
|
__passphrase__ = on
|
|
freenode = "53B1C86FCDA28FC122A95B0456ABD79B5AB74654F21C3D099A6CCA8173239EEA59533A1D83011251F96778AC3F5166A394"
|
|
----
|
|
|
|
[[secured_data_decryption]]
|
|
===== Decryption
|
|
|
|
The decryption of data is made in 3 steps:
|
|
|
|
. Derive a key using salt and passphrase.
|
|
. Decrypt hash + data.
|
|
. Check that decrypted hash == hash of data.
|
|
|
|
[[secured_data_manage]]
|
|
==== Manage secured data
|
|
|
|
To add secured data, use `/secure set`, for example a password for 'freenode'
|
|
IRC server:
|
|
|
|
----
|
|
/secure set freenode mypassword
|
|
----
|
|
|
|
For comfort, secured data can be displayed in a dedicated buffer (kbd:[Alt+v] on
|
|
buffer to see values), just do:
|
|
|
|
----
|
|
/secure
|
|
----
|
|
|
|
Secured data can be used in some options that can contain private data like
|
|
password, using this format: "${sec.data.xxx}" where "xxx" is the name of
|
|
secured data (used with `/secure set xxx ...`). +
|
|
For a complete list of supported options, see `/help secure`.
|
|
|
|
To use the 'freenode' password, for example with
|
|
<<irc_sasl_authentication,SASL authentication>>:
|
|
|
|
----
|
|
/set irc.server.freenode.sasl_password "${sec.data.freenode}"
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
[[options_and_commands]]
|
|
=== Options and commands
|
|
|
|
// TRANSLATION MISSING
|
|
[[sec_options]]
|
|
==== Secured data options (sec.conf)
|
|
|
|
// TRANSLATION MISSING
|
|
Sections:
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| crypt | /set sec.crypt.* | Options for encryption
|
|
| data | <<command_weechat_secure,/secure>> | Secured data
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
Options:
|
|
|
|
include::autogen/user/sec_options.asciidoc[]
|
|
|
|
[[weechat_options]]
|
|
==== Opzioni di WeeChat (weechat.conf)
|
|
|
|
// TRANSLATION MISSING
|
|
Sections:
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| debug | <<command_weechat_debug,/debug set>> +
|
|
/set weechat.debug.* | Debug level, for core and plugins (options can be added/removed in section)
|
|
| startup | /set weechat.startup.* | Startup options
|
|
| look | /set weechat.look.* | Look and feel
|
|
| palette | <<command_weechat_color,/color alias>> +
|
|
/set weechat.palette.* | Color aliases (options can be added/removed in section)
|
|
| color | /set weechat.color.* | Colors
|
|
| completion | /set weechat.completion.* | Completion options
|
|
| history | /set weechat.history.* | History options (commands and buffers)
|
|
| proxy | <<command_weechat_proxy,/proxy>> +
|
|
/set weechat.proxy.* | Proxy options
|
|
| network | /set weechat.network.* | Network/SSL options
|
|
| bar | <<command_weechat_bar,/bar>> +
|
|
/set weechat.bar.* | Bar options
|
|
| layout | <<command_weechat_layout,/layout>> | Layouts
|
|
| notify | <<command_weechat_buffer,/buffer notify>> | Notify levels for buffers (options can be added/removed in section)
|
|
| filter | <<command_weechat_filter,/filter>> | Filters
|
|
| key | <<command_weechat_key,/key>> | Keys in default context
|
|
| key_search | <<command_weechat_key,/key>> | Keys in search context
|
|
| key_cursor | <<command_weechat_key,/key>> | Keys in cursor context
|
|
| key_mouse | <<command_weechat_key,/key>> | Keys in mouse context
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
Options:
|
|
|
|
include::autogen/user/weechat_options.asciidoc[]
|
|
|
|
[[weechat_commands]]
|
|
==== Comandi di WeeChat
|
|
|
|
include::autogen/user/weechat_commands.asciidoc[]
|
|
|
|
[[plugins]]
|
|
== Plugin
|
|
|
|
Un plugin è una libreria dinamica, scritta in C e compilata, che viene caricata
|
|
da WeeChat.
|
|
In GNU/Linux, il file ha estensione ".so", ".dll" in Windows.
|
|
|
|
I plugin trovati vengono caricati automaticamente all'avvio di WeeChat, ed
|
|
è possibile caricare o scaricare i plugin durante l'esecuzione del programma.
|
|
|
|
È importante evidenziare la differenza tra un 'plugin' ed uno 'script': un
|
|
'plugin' è un file binario compilato e caricato con il comando `/plugin`,
|
|
mentre uno 'script' è un file di testo caricato con un plugin come 'python'
|
|
con il comando `/python`.
|
|
|
|
È possibile utilizzare il comando `/plugin` per caricare/scaricare un plugin,
|
|
oppure elencare tutti i plugin caricati.
|
|
Quando un plugin viene scaricato, tutti i buffer creati da questo plugin
|
|
sono chiusi automaticamente.
|
|
|
|
Esempi per caricare, scaricare oppure elencare i plugin:
|
|
|
|
----
|
|
/plugin load irc
|
|
/plugin unload irc
|
|
/plugin list
|
|
----
|
|
|
|
I plugin predefiniti sono:
|
|
|
|
[width="100%",cols="^1,5",options="header"]
|
|
|===
|
|
| Plugin | Descrizione
|
|
| alias | Definisce gli alias per i comandi
|
|
| aspell | Controllo ortografico per la riga di comando
|
|
| charset | Set di caratteri per la codifica/decodifica nei buffer
|
|
// TRANSLATION MISSING
|
|
| exec | Execution of external commands in WeeChat
|
|
| fifo | pipe FIFO utilizzata per inviare comandi da remoto su WeeChat
|
|
| irc | protocollo chat per IRC
|
|
| logger | Registra i buffer su file
|
|
| relay | Relay dei dati via rete
|
|
| script | Gestore script
|
|
| python | API per lo scripting in Python
|
|
| perl | API per lo scripting in Perl
|
|
| ruby | API per lo scripting in Ruby
|
|
| lua | API per lo scripting in Lua
|
|
| tcl | API per lo scripting in TCL
|
|
| guile | API per lo scripting in Guile (scheme)
|
|
| javascript | API per lo scripting in Javascript
|
|
// TRANSLATION MISSING
|
|
| trigger | Text replacement and command execution on events triggered by WeeChat/plugins
|
|
| xfer | Trasferimento file e chat diretta
|
|
|===
|
|
|
|
Per saperne di più riguardo lo sviluppo di plugin o script (tramite le API), per
|
|
favore consultare 'Riferimento API dei Plugin per WeeChat' oppure
|
|
'Guida allo Scripting di WeeChat'.
|
|
|
|
[[alias_plugin]]
|
|
=== Plugin Alias
|
|
|
|
Il plugin Alias consente di creare alias per i comandi (da WeeChat o altri
|
|
plugin).
|
|
|
|
[[alias_commands]]
|
|
==== Comandi
|
|
|
|
include::autogen/user/alias_commands.asciidoc[]
|
|
|
|
[[aspell_plugin]]
|
|
=== Plugin Aspell
|
|
|
|
Il plugin Aspell consente di verificare l'ortografia nella riga di comando.
|
|
È possibile utilizzare più lingue per buffer.
|
|
|
|
[[aspell_options]]
|
|
==== Opzioni (aspell.conf)
|
|
|
|
// TRANSLATION MISSING
|
|
Sections:
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| color | /set aspell.color.* | Colors
|
|
| check | /set aspell.check.* | Options to control spell checking
|
|
| dict | <<command_aspell_aspell,/aspell setdict>> +
|
|
/set aspell.dict.* | Dictionaries used by buffer (options can be added/removed in section)
|
|
| option | /set aspell.option.* | <<aspell_speller_options,Opzioni ortografiche>> (options can be added/removed in section)
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
Options:
|
|
|
|
include::autogen/user/aspell_options.asciidoc[]
|
|
|
|
[[aspell_commands]]
|
|
==== Comandi
|
|
|
|
include::autogen/user/aspell_commands.asciidoc[]
|
|
|
|
[[aspell_speller_options]]
|
|
==== Opzioni ortografiche
|
|
|
|
Le opzioni ortografiche possono essere definite aggiungendo opzioni nella
|
|
sezione "opzioni" della configurazione di aspell.
|
|
|
|
Il nome dell'opzione è un parametro di configurazione per aspell. L'elenco
|
|
delle opzioni disponibili può essere trovato nel terminale col seguente comando:
|
|
|
|
----
|
|
$ aspell config
|
|
----
|
|
|
|
Ad esempio, per abilitare l'opzione "ignore-case":
|
|
|
|
----
|
|
/set aspell.option.ignore-case "true"
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
[[aspell_suggestions]]
|
|
==== Suggestions
|
|
|
|
Suggestions are displayed in a bar item called "aspell_suggest". The number of
|
|
suggestions is set in option 'aspell.check.suggestions'.
|
|
|
|
To enable suggestions you must set option 'aspell.check.suggestions' to an
|
|
integer ≥ 0 and add the bar item "aspell_suggest" to a bar, like 'status'.
|
|
|
|
Example of suggestions with English dictionary (`en`):
|
|
|
|
....
|
|
│[12:55] [6] [irc/freenode] 3:#test(+n){4} [print,prone,prune] │
|
|
│[@Flashy] prinr █ │
|
|
└─────────────────────────────────────────────────────────────────────────────────┘
|
|
....
|
|
|
|
Example of suggestions with English and French dictionaries (`en,fr`):
|
|
|
|
....
|
|
│[12:55] [6] [irc/freenode] 3:#test(+n){4} [print,prone,prune/prime,primer,primé] │
|
|
│[@Flashy] prinr █ │
|
|
└─────────────────────────────────────────────────────────────────────────────────┘
|
|
....
|
|
|
|
[[charset_plugin]]
|
|
=== Plugin Charset
|
|
|
|
Il plugin Charset consente di decodificare o codificare dati utilizzando
|
|
i set caratteri.
|
|
|
|
Esiste un set caratteri predefinito per la codifica/decodifica, e set caratteri
|
|
specifici per i buffer (o gruppi di buffer).
|
|
|
|
Questo plugin è opzionale, ma raccomandato: se non caricato, WeeChat
|
|
può leggere/scrivere soltanto dati UTF-8.
|
|
|
|
Il plugin Charset dovrebbe essere caricato automaticamente da WeeChat.
|
|
Per essere sicuri che sia caricato, provare con:
|
|
|
|
----
|
|
/charset
|
|
----
|
|
|
|
Se non trovato, allora si deve caricare il plugin con il comando:
|
|
|
|
----
|
|
/plugin load charset
|
|
----
|
|
|
|
Se il plugin non viene trovato, allora è necessario ricompilare WeeChat
|
|
con il supporto ai plugin e a Charset.
|
|
|
|
Quando viene avviato il plugin Charset, mostra i set caratteri del
|
|
terminale e quello interno. Il set caratteri dipende dal proprio
|
|
locale, mentre quello interno è UTF-8.
|
|
|
|
Per esempio:
|
|
|
|
....
|
|
set caratteri: terminale: ISO-8859-15, interno: UTF-8
|
|
....
|
|
|
|
[[charset_options]]
|
|
==== Opzioni (charset.conf)
|
|
|
|
// TRANSLATION MISSING
|
|
Sections:
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| default | /set charset.default.* | Default decoding/encoding charset
|
|
| decode | <<command_charset_charset,/charset decode>> +
|
|
/set charset.decode.* | Decoding charset by buffer (options can be added/removed in section)
|
|
| encode | <<command_charset_charset,/charset encode>> +
|
|
/set charset.encode.* | Encoding charset by buffer (options can be added/removed in section)
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
Options:
|
|
|
|
include::autogen/user/charset_options.asciidoc[]
|
|
|
|
[[charset_commands]]
|
|
==== Comandi
|
|
|
|
include::autogen/user/charset_commands.asciidoc[]
|
|
|
|
[[charset_set]]
|
|
==== Impostare il set caratteri
|
|
|
|
Per impostare il set caratteri globale per la codifica e la decodifica,
|
|
utilizzare il comando `/set`.
|
|
|
|
Per esempio:
|
|
|
|
----
|
|
/set charset.default.decode ISO-8859-15
|
|
/set charset.default.encode ISO-8859-15
|
|
----
|
|
|
|
Se il set caratteri globale per la decodifica non è impostato (ad
|
|
esempio durante il primo caricamento del plugin Charset), verrà
|
|
impostato automaticamente sul set caratteri del terminale (se
|
|
diverso da UTF-8), oppure su 'ISO-8859-1'.
|
|
|
|
Il valore di codifica predefinito è vuoto, perciò il testo viene
|
|
inviato per default con il set caratteri interno (UTF-8).
|
|
|
|
Per impostare il set caratteri del server IRC, utilizzare il comando `charset`
|
|
sul buffer del server. Se viene immesso solo il set caratteri, allora i valori
|
|
di codifica e decodifica saranno gli stessi.
|
|
|
|
Ad esempio:
|
|
|
|
----
|
|
/charset ISO-8859-15
|
|
----
|
|
|
|
È l'equivalente di:
|
|
|
|
----
|
|
/charset decode ISO-8859-15
|
|
/charset encode ISO-8859-15
|
|
----
|
|
|
|
Per impostare il set caratteri per il canale IRC (o il privato), utilizzare gli
|
|
stessi comandi per il server, ma sul buffer del canale (o quello privato).
|
|
|
|
// TRANSLATION MISSING
|
|
To set charset for all channels/privates of an IRC server:
|
|
|
|
----
|
|
/set charset.encode.irc.freenode ISO-8859-15
|
|
----
|
|
|
|
Per visualizzare tutti i set caratteri utilizzati, utilizzare il comando seguente:
|
|
|
|
----
|
|
/set charset.*
|
|
----
|
|
|
|
[[charset_troubleshooting]]
|
|
==== Risoluzione problemi
|
|
|
|
Per qualunque problema con i set caratteri, per favore consultare
|
|
le 'Domande Frequenti di WeeChat'.
|
|
|
|
// TRANSLATION MISSING
|
|
[[exec_plugin]]
|
|
=== Exec plugin
|
|
|
|
The `/exec` command lets you execute external commands inside WeeChat and
|
|
display the output locally, or send it to a buffer.
|
|
|
|
[[exec_options]]
|
|
==== Options (exec.conf)
|
|
|
|
Sections:
|
|
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| command | /set exec.command.* | Options for commands
|
|
| color | /set exec.color.* | Colors
|
|
|===
|
|
|
|
Options:
|
|
|
|
include::autogen/user/exec_options.asciidoc[]
|
|
|
|
[[exec_commands]]
|
|
==== Commands
|
|
|
|
include::autogen/user/exec_commands.asciidoc[]
|
|
|
|
[[fifo_plugin]]
|
|
=== Plugin Fifo
|
|
|
|
È possibile controllare da remoto WeeChat, inviando comandi o del testo ad una
|
|
pipe FIFO (se l'opzione "plugins.var.fifo.fifo" è abilitata, e lo è per default).
|
|
|
|
La pipe FIFO si trova in '~/.weechat/' ed è chiamata 'weechat_fifo_xxxx'
|
|
(dove 'xxxx' è l'ID del processo (PID) dell'istanza di WeeChat in esecuzione).
|
|
|
|
La sintassi per i comandi/testo della pipe FIFO è una delle seguenti:
|
|
|
|
....
|
|
plugin.buffer *testo o comando qui
|
|
*testo o comando qui
|
|
....
|
|
|
|
Alcuni esempi:
|
|
|
|
* cambiare il nick sul server IRC freenode in "nuovonick":
|
|
|
|
----
|
|
$ echo 'irc.server.freenode */nick nuovonick' >~/.weechat/weechat_fifo_12345
|
|
----
|
|
|
|
* visualizazre del testo sul canale IRC #weechat:
|
|
|
|
----
|
|
$ echo 'irc.freenode.#weechat *hello!' >~/.weechat/weechat_fifo_12345
|
|
----
|
|
|
|
* visualizzare del testo sul buffer attivo:
|
|
|
|
----
|
|
$ echo '*hello!' >~/.weechat/weechat_fifo_12345
|
|
----
|
|
|
|
* inviare due comandi per scaricare/caricare gli script Python (è necessario
|
|
separarli con "\n"):
|
|
|
|
----
|
|
$ printf '%b' '*/python unload\n*/python autoload\n' >~/.weechat/weechat_fifo_12345
|
|
----
|
|
|
|
È possibile realizzare uno script per inviare un comando a tutte le istanze di
|
|
WeeChat in esecuzione, per esempio:
|
|
|
|
[source,shell]
|
|
----
|
|
#!/bin/sh
|
|
if [ $# -eq 1 ]; then
|
|
for fifo in ~/.weechat/weechat_fifo_*
|
|
do
|
|
printf '%b\n' "$1" >"$fifo"
|
|
done
|
|
fi
|
|
----
|
|
|
|
Se lo script viene chiamato "auto_weechat_command", può essere
|
|
eseguito con:
|
|
|
|
----
|
|
$ ./auto_weechat_command 'irc.freenode.#weechat *ciao'
|
|
----
|
|
|
|
[[fifo_commands]]
|
|
==== Comandi
|
|
|
|
include::autogen/user/fifo_commands.asciidoc[]
|
|
|
|
[[irc_plugin]]
|
|
=== Plugin IRC
|
|
|
|
Il plugin IRC è realizzato per chattare tramite protocollo IRC con altre persone.
|
|
|
|
È multi-server, ed offre tutti i comandi IRC supportati inclusi la chat DCC ed il
|
|
trasferimento file (tramite plugin xfer, consultare <<xfer_plugin,plugin Xfer>>).
|
|
|
|
[[irc_command_line_options]]
|
|
==== Opzioni a riga di comando
|
|
|
|
È possibile fornire un URL per uno o più server IRC, come segue:
|
|
|
|
----
|
|
irc[6][s]://[nick[:password]@]irc.esempio.org[:porta][/#canale][,#canale[...]]
|
|
----
|
|
|
|
Esempio per entrare in '#weechat' e '#tizio' sul server 'chat.freenode.net',
|
|
porta predefinita (6667), con il nick 'caio':
|
|
|
|
----
|
|
$ weechat irc://caio@chat.freenode.net/#weechat,#tizio
|
|
----
|
|
|
|
[[irc_options]]
|
|
==== Opzioni (irc.conf)
|
|
|
|
// TRANSLATION MISSING
|
|
Sections:
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| look | /set irc.look.* | Look and feel
|
|
| color | /set irc.color.* | Colors
|
|
| network | /set irc.network.* | Network options
|
|
| msgbuffer | /set irc.msgbuffer.* | <<irc_target_buffer,Buffer di destinazione per i messaggi IRC>> (options can be added/removed in section)
|
|
| ctcp | /set irc.ctcp.* | <<irc_ctcp_replies,Risposte CTCP>> (options can be added/removed in section)
|
|
| ignore | <<command_irc_ignore,/ignore>> | Ignore people
|
|
| server_default | /set irc.server_default.* | Default values for servers (used when options in server are not defined)
|
|
| server | <<command_irc_server,/server>> +
|
|
/set irc.server.* | Servers
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
Options:
|
|
|
|
include::autogen/user/irc_options.asciidoc[]
|
|
|
|
[[irc_commands]]
|
|
==== Comandi
|
|
|
|
include::autogen/user/irc_commands.asciidoc[]
|
|
|
|
[[irc_ssl_certificates]]
|
|
==== Certificati SSL
|
|
|
|
Al momento della connessione al server IRC con SSL, WeeChat verifica in
|
|
maniera predefinita che la connessione sia completamente fidata.
|
|
|
|
Esistono alcune opzioni per controllare la connessione SSL:
|
|
|
|
weechat.network.gnutls_ca_file::
|
|
path del file con il certificato delle autorità (predefinito: "%h/ssl/CAs.pem")
|
|
|
|
irc.server.xxx.ssl_cert::
|
|
file del certificato SSL usato per identificare automaticamente il proprio
|
|
nick ad esempio CertFP su oftc (a seguire)
|
|
|
|
irc.server.xxx.ssl_dhkey_size::
|
|
dimensione della chiave usata durante lo Scambio Chiavi Diffie-Hellman
|
|
(predefinita; 2048)
|
|
|
|
irc.server.xxx.ssl_verify::
|
|
verifica che la connessione SSL sia totalmente fidata (opzione attivata
|
|
in maniera predefinita)
|
|
|
|
[NOTE]
|
|
L'opzione "ssl_verify" è attivata per default, in questo modo la verifica è rigorosa
|
|
e potrebbe fallire, anche se funziona senza problemi con versioni precedenti
|
|
la 0.3.1.
|
|
|
|
[[irc_connect_oftc_with_certificate]]
|
|
===== Primo esempio: connessione a otfc e verifica del certificato
|
|
|
|
* Importare certificati nella shell:
|
|
|
|
----
|
|
$ mkdir -p ~/.weechat/ssl
|
|
$ wget -O ~/.weechat/ssl/CAs.pem http://www.spi-inc.org/ca/spi-cacert.crt
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
[NOTE]
|
|
E possibile concatenare più certificati nel file CAs.pem.
|
|
|
|
// TRANSLATION MISSING
|
|
* In WeeChat, with "oftc" server already added:
|
|
|
|
----
|
|
/connect oftc
|
|
----
|
|
|
|
[[irc_connect_oftc_with_certfp]]
|
|
===== Secondo esempio: connessione a otfc con CertFP
|
|
|
|
* Creare un certificato nella shell:
|
|
|
|
----
|
|
$ mkdir -p ~/.weechat/ssl
|
|
$ cd ~/.weechat/ssl
|
|
$ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
* In WeeChat, with "oftc" server already added:
|
|
|
|
----
|
|
/set irc.server.oftc.ssl_cert "%h/ssl/nick.pem"
|
|
/connect oftc
|
|
/msg nickserv cert add
|
|
----
|
|
|
|
Per maggiori informazioni consultare http://www.oftc.net/oftc/NickServ/CertFP
|
|
|
|
[[irc_sasl_authentication]]
|
|
==== Autenticazione SASL
|
|
|
|
// TRANSLATION MISSING
|
|
WeeChat supports SASL authentication, using different mechanisms:
|
|
|
|
// TRANSLATION MISSING
|
|
* 'plain': password in chiaro (default)
|
|
// TRANSLATION MISSING
|
|
* 'ecdsa-nist256p-challenge': challenge with public/private key
|
|
* 'external': certificato SSL da lato client
|
|
// TRANSLATION MISSING
|
|
* 'dh-blowfish': blowfish encrypted password (*insecure*, not recommended)
|
|
// TRANSLATION MISSING
|
|
* 'dh-aes': AES encrypted password (*insecure*, not recommended)
|
|
|
|
[NOTE]
|
|
La libreria "gcrypt" è richiesta per compilare WeeChat al fine di usare il
|
|
meccanismo "dh-blowfish" (consultare <<dependencies,dipendenze>>).
|
|
|
|
Le opzioni nel server sono:
|
|
|
|
// TRANSLATION MISSING
|
|
* 'sasl_mechanism': meccanismo da usare (see above)
|
|
* 'sasl_timeout': timeout (in secondi) per l'autenticazione
|
|
// TRANSLATION MISSING
|
|
* 'sasl_fail': action to perform if authentication fails
|
|
* 'sasl_username': nome utente (nick)
|
|
* 'sasl_password': password
|
|
// TRANSLATION MISSING
|
|
* 'sasl_key': file with ECc private key (for mechanism
|
|
'ecdsa-nist256p-challenge')
|
|
|
|
// TRANSLATION MISSING
|
|
[[irc_sasl_ecdsa_nist256p_challenge]]
|
|
===== SASL ECDSA-NIST256P-CHALLENGE
|
|
|
|
You must generate a private key in order to authentify with the
|
|
ECDSA-NIST256P-CHALLENGE mechanism (no password is required on connection).
|
|
|
|
You can generate the key with this command:
|
|
|
|
----
|
|
$ openssl ecparam -genkey -name prime256v1 >~/.weechat/ecdsa.pem
|
|
----
|
|
|
|
Get the public key (encoded as base64) with this command:
|
|
|
|
----
|
|
$ 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
|
|
----
|
|
|
|
Connect to the server, identify (for example with "nickserv identify") and set
|
|
your public key in your account, using nickserv (replace the base64 value with
|
|
your public key):
|
|
|
|
----
|
|
/connect freenode
|
|
/msg nickserv identify your_password
|
|
/msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q
|
|
----
|
|
|
|
Configure the SASL options in the server:
|
|
|
|
----
|
|
/set irc.server.freenode.sasl_mechanism ecdsa-nist256p-challenge
|
|
/set irc.server.freenode.sasl_username "your_nickname"
|
|
/set irc.server.freenode.sasl_key "%h/ecdsa.pem"
|
|
----
|
|
|
|
Reconnect to the server:
|
|
|
|
----
|
|
/reconnect freenode
|
|
----
|
|
|
|
[[irc_tor_freenode]]
|
|
==== Connessione a Freenode con TOR/SASL
|
|
|
|
Oltre ad SSL, i server Freenode supportano connessioni con TOR
|
|
(https://www.torproject.org), una rete di tunnel virtuali che consente ad
|
|
utenti e gruppi di migliorare la propria privacy e la sicurezza su Internet.
|
|
|
|
Il primo passo consiste nell'installare TOR. Per Debian (e derivate):
|
|
|
|
----
|
|
$ sudo apt-get install tor
|
|
----
|
|
|
|
In WeeChat è necessario creare un proxy socks5 per il servizio TOR (nome
|
|
host/IP e porta dipendono dalla propria configurazione di TOR):
|
|
|
|
----
|
|
/proxy add tor socks5 127.0.0.1 9050
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
Now, add a new server, for example:
|
|
|
|
----
|
|
/server add freenode-tor p4fsi4ockecnea7l.onion
|
|
----
|
|
|
|
Impostare il proxy per TOR:
|
|
|
|
----
|
|
/set irc.server.freenode-tor.proxy "tor"
|
|
----
|
|
|
|
Impostare l'autenticazione SASL:
|
|
|
|
----
|
|
/set irc.server.freenode-tor.sasl_username "your_nickname"
|
|
/set irc.server.freenode-tor.sasl_password "your_password"
|
|
----
|
|
|
|
E alla fine, connettersi al server:
|
|
|
|
----
|
|
/connect freenode-tor
|
|
----
|
|
|
|
Per maggiori informazioni su Freenode e TOR:
|
|
http://freenode.net/irc_servers.shtml#tor
|
|
|
|
[[irc_smart_filter_join_part_quit]]
|
|
==== Filtro smart per i messaggi di entrata/uscita/disconnessione
|
|
|
|
Un filtro smart è disponibile per filtrare i messaggi di
|
|
entrata/uscita/disconnessione quando il nick non ha detto nulla durante
|
|
gli ultimi X minuti sul canale
|
|
|
|
Il filtro smart è abilitato per default, ma è necessario aggiungere un filtro
|
|
per nascondere le righe sul buffer, per esempio:
|
|
|
|
----
|
|
/filter add irc_smart * irc_smart_filter *
|
|
----
|
|
|
|
È possibile creare il filtro solo per un canale o per i canali che iniziano con
|
|
lo stesso nome (consultare `/help filter`):
|
|
|
|
----
|
|
/filter add irc_smart_weechat irc.freenode.#weechat irc_smart_filter *
|
|
/filter add irc_smart_weechats irc.freenode.#weechat* irc_smart_filter *
|
|
----
|
|
|
|
È possibile nascondere solo i messaggi di entrata o di
|
|
uscita/disconnessione con le seguenti opzioni:
|
|
|
|
----
|
|
/set irc.look.smart_filter_join on
|
|
/set irc.look.smart_filter_quit on
|
|
----
|
|
|
|
È possibile impostare un ritardo (in minuti):
|
|
|
|
----
|
|
/set irc.look.smart_filter_delay 5
|
|
----
|
|
|
|
Se un nick non ha parlato durante gli ultimi 5 minuti, i suoi ingressi e/o
|
|
uscite/disconnessioni verranno nascosti sul canale.
|
|
|
|
[[irc_ctcp_replies]]
|
|
==== Risposte CTCP
|
|
|
|
È possibile personalizzare le risposte CTCP, o bloccare alcune richieste CTCP
|
|
(non rispondere).
|
|
|
|
Ad esempio, per personalizzare la richiesta CTCP "VERSIONE", utilizzare il
|
|
seguente comando:
|
|
|
|
----
|
|
/set irc.ctcp.version "Uso WeeChat $version, fico!"
|
|
----
|
|
|
|
Se si desidera bloccare CTCP "VERSIONE" (non rispondere ad una query),
|
|
allora basta impostare una stringa vuota:
|
|
|
|
----
|
|
/set irc.ctcp.version ""
|
|
----
|
|
|
|
Anche un CTCP sconosciuto può essere personalizzato, per esempio si
|
|
può rispondere "BLABLA":
|
|
|
|
----
|
|
/set irc.ctcp.blabla "Questa è la mia risposta a CTCP BLABLA"
|
|
----
|
|
|
|
È possibile personalizzare CTCP per un solo server, utilizzando il suo nome
|
|
interno prima del nome CTCP:
|
|
|
|
----
|
|
/set irc.ctcp.freenode.version "WeeChat $version (per freenode)"
|
|
----
|
|
|
|
Se si desidera ripristinare la risposta CTCP standard, allora disabilitare
|
|
l'opzione:
|
|
|
|
----
|
|
/unset irc.ctcp.version
|
|
----
|
|
|
|
I codici seguenti possono essere utilizzati nelle stringhe e vengono estese
|
|
automaticamente da WeeChat quando si risponde alle CTCP
|
|
|
|
// TRANSLATION MISSING ($versiongit + $git + $username (name))
|
|
[width="100%",cols="^2l,4,8",options="header"]
|
|
|===
|
|
| Codice | Descrizione | Valore/esempio
|
|
| $clientinfo | Elenco di CTCP supportate | `ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION`
|
|
| $version | Versione di WeeChat | `0.4.0-dev`
|
|
| $versiongit | Versione di WeeChat + git version ^(1)^ | `0.4.0-dev (git: v0.3.9-104-g7eb5cc4)`
|
|
| $git | Git version ^(1)^ | `v0.3.9-104-g7eb5cc4`
|
|
| $compilation | Data di compilazione di WeeChat | `Dec 16 2012`
|
|
| $osinfo | Informazioni sull'OS | `Linux 2.6.32-5-amd64 / x86_64`
|
|
| $site | Sito di WeeChat | `https://weechat.org/`
|
|
| $download | Sito di WeeChat, pagina di download | `https://weechat.org/download`
|
|
| $time | Data/ora correnti | `Sun, 16 Dec 2012 10:40:48 +0100`
|
|
| $username | Nome utente sul server IRC | `name`
|
|
| $realname | Nome reale sul server IRC | `John Doe`
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
[NOTE]
|
|
^(1)^ The git version is the output of command `git describe`. It is known only
|
|
if WeeChat has been compiled inside the git repository and if git was installed.
|
|
|
|
Se le opzioni CTCP non sono definite (comportamento predefinito),
|
|
le risposte CTCP sono:
|
|
|
|
// TRANSLATION MISSING ($username (name))
|
|
[width="100%",cols="^2,4,8",options="header"]
|
|
|===
|
|
| CTCP | Formato risposta | Esempio
|
|
| 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)` | `name (John Doe)`
|
|
| VERSION | `WeeChat $versiongit ($compilation)` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4) (Dec 16 2012)`
|
|
|===
|
|
|
|
[[irc_target_buffer]]
|
|
==== Buffer di destinazione per i messaggi IRC
|
|
|
|
È possibile personalizzare il buffer di destinazione per i messaggi IRC
|
|
(buffer usato per visualizzare messaggi) con l'opzione `irc.msgbuffer.*`.
|
|
|
|
Per alcuni messaggi IRC (elenco in basso), si possono usare i seguenti
|
|
valori:
|
|
|
|
current::
|
|
buffer attivo (se è il buffer IRC, oppure sul buffer del server, come
|
|
predefinito)
|
|
|
|
private::
|
|
buffer privato per il nick, o il buffer corrente se non trovato
|
|
(in base all'opzione 'irc.look.msgbuffer_fallback')
|
|
|
|
server::
|
|
buffer del server
|
|
|
|
weechat::
|
|
Il buffer "core" di WeeChat
|
|
|
|
Quando l'opzione non è impostata (default), WeeChat sceglie il buffer
|
|
appropriato, di solito quello del server o del canale.
|
|
|
|
Ecco una lista incompleta dei messaggi IRC o degli alias che è possibile
|
|
personalizzare:
|
|
|
|
[width="60%",cols="^1m,^3m,8",options="header"]
|
|
|===
|
|
| messaggio | alias | descrizione
|
|
| error | | errore
|
|
| invite | | invitato su un canale
|
|
| join | | ingresso nel canale
|
|
| kick | | kick
|
|
| kill | | kill
|
|
| mode | | mode
|
|
| notice | | notifica
|
|
| part | | part
|
|
| quit | | quit
|
|
| topic | | topic
|
|
| wallops | | wallops
|
|
| | ctcp | ctcp (inviato o ricevuto, in un messaggio privato o di notifica)
|
|
| 221 | | stringa modalità utente
|
|
| 275 | whois | whois (connessione sicura)
|
|
| 301 | whois | whois (assente)
|
|
| 303 | | ison
|
|
| 305 | unaway | presente
|
|
| 306 | away | assente
|
|
| 307 | whois | whois (nick registrato)
|
|
| 310 | whois | whois (modalità aiuto)
|
|
| 311 | whois | whois (utente)
|
|
| 312 | whois | whois (server)
|
|
| 313 | whois | whois (operatore)
|
|
| 314 | whowas | whowas
|
|
| 315 | who | who (fine)
|
|
| 317 | whois | whois (inattività)
|
|
| 318 | whois | whois (fine)
|
|
| 319 | whois | whois (canali)
|
|
| 320 | whois | whois (utente identificato)
|
|
| 321 | list | list (inizio)
|
|
| 322 | list | list (canale)
|
|
| 323 | list | list (fine)
|
|
| 326 | whois | whois (con privilegi di operatore)
|
|
| 327 | whois | whois (host)
|
|
| 328 | | URL del canale
|
|
| 329 | | data di creazione del canale
|
|
| 330 | whois | whois (loggato come)
|
|
| 331 | | nessun argomento per il canale
|
|
| 332 | | argomento del canale
|
|
| 333 | | informazioni sull'argomento
|
|
| 335 | whois | whois (è un bot su)
|
|
| 338 | whois | whois (host)
|
|
| 341 | | invito
|
|
| 343 | whois | whois (è opered come)
|
|
| 344 | reop | reop sul canale
|
|
| 345 | reop | reop sul canale (fine)
|
|
| 346 | invitelist | lista di inviti
|
|
| 347 | invitelist | lista di inviti (fine)
|
|
| 348 | exceptionlist | lista di eccezioni
|
|
| 349 | exceptionlist | lista di eccezioni (fine)
|
|
| 351 | | versione del server
|
|
| 352 | who | who
|
|
| 353 | names | elenco di utenti su un canale
|
|
| 366 | names | fine dell'elenco /names
|
|
| 367 | banlist | elenco dei ban
|
|
| 368 | banlist | fine della lista dei ban
|
|
| 369 | whowas | whowas (fine)
|
|
| 378 | whois | whois (connesso da)
|
|
| 379 | whois | whois (usa le modalità)
|
|
// TRANSLATION MISSING
|
|
| 401 | whois | no such nick/channel
|
|
// TRANSLATION MISSING
|
|
| 402 | whois | no such server
|
|
| 432 | | nick errato
|
|
| 433 | | nick già utilizzato
|
|
| 438 | | non autorizzato a cambiare nick
|
|
| 671 | whois | whois (connessione sicura)
|
|
// TRANSLATION MISSING
|
|
| 728 | quietlist | quiet list
|
|
// TRANSLATION MISSING
|
|
| 729 | quietlist | end of quiet list
|
|
// TRANSLATION MISSING
|
|
| 732 | monitor | list of monitored nicks
|
|
// TRANSLATION MISSING
|
|
| 733 | monitor | list of monitored nicks (end)
|
|
| 901 | | ora si è loggati
|
|
|===
|
|
|
|
Anche altri comandi numerici possono essere personalizzati.
|
|
|
|
Il messaggio può essere preceduto dal nome del server per essere più
|
|
precisi (ad esempio: `freenode.whois`).
|
|
|
|
Alcuni esempi:
|
|
|
|
* visualizza il risultato di `/whois` su un buffer privato:
|
|
|
|
----
|
|
/set irc.msgbuffer.whois private
|
|
----
|
|
|
|
* ripristina il buffer predefinito per il whois (buffer del server):
|
|
|
|
----
|
|
/unset irc.msgbuffer.whois
|
|
----
|
|
|
|
* visualizza inviti sul buffer corrente, solo per il server "freenode":
|
|
|
|
----
|
|
/set irc.msgbuffer.freenode.invite current
|
|
----
|
|
|
|
* visualizza messaggio "303" (ison) sul buffer "core" di WeeChat:
|
|
|
|
----
|
|
/set irc.msgbuffer.303 weechat
|
|
----
|
|
|
|
[[logger_plugin]]
|
|
=== Plugin Logger
|
|
|
|
Il plugin Logger consente di salvare il contenuto dei buffer su file, con
|
|
opzioni a proposito su cosa e come viene salvato.
|
|
|
|
[[logger_options]]
|
|
==== Opzioni (logger.conf)
|
|
|
|
// TRANSLATION MISSING
|
|
Sections:
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| look | /set logger.look.* | Look and feel
|
|
| color | /set logger.color.* | Colors
|
|
| file | /set logger.file.* | Options for log files
|
|
| level | /set logger.level.* | Log level by buffer (options can be added/removed in section)
|
|
| mask | /set logger.mask.* | Filename mask by buffer (options can be added/removed in section)
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
Options:
|
|
|
|
include::autogen/user/logger_options.asciidoc[]
|
|
|
|
[[logger_commands]]
|
|
==== Comandi
|
|
|
|
include::autogen/user/logger_commands.asciidoc[]
|
|
|
|
[[logger_log_levels]]
|
|
==== Livelli di log
|
|
|
|
Il logging viene effettuato con un livello per ogni buffer. Il livello
|
|
predefinito è il 9 (registra tutti i messaggi visualizzati sul buffer).
|
|
È possibile cambiare il livello per un buffer, oppure per un gruppo di buffer.
|
|
|
|
I livelli possibili sono da 0 a 9. Zero vuol dire "non registrare nulla" mentre
|
|
9 "registra tutto".
|
|
|
|
I plugin utilizzano livelli diversi per i messaggi visualizzati.
|
|
Il plugin IRC usa i seguenti livelli:
|
|
|
|
* livello 1: messaggio da un utente (su canale o privato)
|
|
* livello 2: cambio nick (proprio o di qualcun altro)
|
|
* livello 3: ogni messaggio del server (esclui entrata/uscita/disconnessione)
|
|
* livello 4: messaggio del server entrata/uscita/disconnessione
|
|
|
|
Se viene impostato il livello 3 per un canale IRC, WeeChat registrerà
|
|
tutti i messaggi, ma non quelli di entrata/uscita/disconnessione.
|
|
|
|
Alcuni esempi:
|
|
|
|
* imposta il livello 3 per il canale IRC #weechat:
|
|
|
|
----
|
|
/set logger.level.irc.freenode.#weechat 3
|
|
----
|
|
|
|
* set level 3 for freenode server buffer:
|
|
|
|
----
|
|
/set logger.level.irc.server.freenode 3
|
|
----
|
|
|
|
* imposta il livello 3 per tutti i canali sul server freenode:
|
|
|
|
----
|
|
/set logger.level.irc.freenode 3
|
|
----
|
|
|
|
* imposta il livello 2 per tutti i buffer IRC:
|
|
|
|
----
|
|
/set logger.level.irc 2
|
|
----
|
|
|
|
[[logger_filenames_masks]]
|
|
==== Mask per il nome file
|
|
|
|
È possibile definire un mask per il nome del file di ogni buffer, ed utilizzare
|
|
le variabili buffer locali per costruire il nome del file. Per visualizzare le
|
|
variabili locali per il buffer corrente:
|
|
|
|
----
|
|
/buffer localvar
|
|
----
|
|
|
|
Ad esempio, sul buffer "irc.freenode.#weechat", WeeChat cercherà un mask con il
|
|
nome dell'opzione, in quest'ordine:
|
|
|
|
----
|
|
logger.mask.irc.freenode.#weechat
|
|
logger.mask.irc.freenode
|
|
logger.mask.irc
|
|
logger.file.mask
|
|
----
|
|
|
|
Ciò vuol dire che si hanno dei mask specifici per alcuni server
|
|
IRC ("logger.mask.irc.freenode") o per un plugin ("logger.mask.irc").
|
|
|
|
[[logger_files_by_date]]
|
|
===== File di log per data
|
|
|
|
Per avere file di log per data, è possibile usare specificatori data/ora
|
|
nei mask (consultare `man stfrtime` per i formati), ad esempio:
|
|
|
|
----
|
|
/set logger.file.mask "%Y/%m/$plugin.$name.weechatlog"
|
|
----
|
|
|
|
Si avranno i seguenti file:
|
|
|
|
....
|
|
~/.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]]
|
|
===== File di log IRC per server e canale
|
|
|
|
Se si desidera avere una directory per il server IRC ed una per il canale
|
|
al suo interno:
|
|
|
|
----
|
|
/set logger.mask.irc "irc/$server/$channel.weechatlog"
|
|
----
|
|
|
|
Si avranno i seguenti file:
|
|
|
|
....
|
|
~/.weechat/
|
|
|--- logs/
|
|
|--- irc/
|
|
|--- freenode/
|
|
| freenode.weechatlog
|
|
| #weechat.weechatlog
|
|
| #mychan.weechatlog
|
|
|--- oftc/
|
|
| oftc.weechatlog
|
|
| #chan1.weechatlog
|
|
| #chan2.weechatlog
|
|
....
|
|
|
|
[[relay_plugin]]
|
|
=== Plugin Relay
|
|
|
|
Il plugin Relay viene utilizzato per inoltrare i dati via rete, facendo uso di
|
|
protocolli differenti:
|
|
|
|
* 'irc': proxy IRC: usato per condividere le connessioni ai server IRC con uno
|
|
o più client IRC
|
|
* 'weechat': protocollo usato dalle interfacce remote per mostrare ed interagire
|
|
con WeeChat (ad esempio QWeeChat)
|
|
|
|
[[relay_options]]
|
|
==== Opzioni (relay.conf)
|
|
|
|
// TRANSLATION MISSING
|
|
Sections:
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| look | /set relay.look.* | Look and feel
|
|
| color | /set relay.color.* | Colors
|
|
| network | /set relay.network.* | Network options
|
|
| irc | /set relay.irc.* | Options specific to irc protocol (irc proxy)
|
|
| port | <<command_relay_relay,/relay add>> +
|
|
/set relay.port.* | Ports used for relay (irc and weechat protocols) (options can be added/removed in section)
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
Options:
|
|
|
|
include::autogen/user/relay_options.asciidoc[]
|
|
|
|
[[relay_commands]]
|
|
==== Comandi
|
|
|
|
include::autogen/user/relay_commands.asciidoc[]
|
|
|
|
// TRANSLATION MISSING
|
|
[[relay_password]]
|
|
==== Password
|
|
|
|
It is highly recommended to set a password for relay, with command:
|
|
|
|
----
|
|
/set relay.network.password "miapass"
|
|
----
|
|
|
|
This password is used for 'irc' and 'weechat' protocols.
|
|
|
|
[[relay_ssl]]
|
|
==== SSL
|
|
|
|
È possibile usare SSL creando un certificato e una chiave privata, e usando il
|
|
prefisso "ssl." nel nome del protocollo.
|
|
|
|
Il file predefinito per il certificato/chiave è '~/.weechat/ssl/relay.pem'
|
|
(opzione <<option_relay.network.ssl_cert_key,relay.network.ssl_cert_key>>).
|
|
|
|
È possibile creare un certificato e una chiave privata con i seguenti comandi:
|
|
|
|
----
|
|
$ mkdir -p ~/.weechat/ssl
|
|
$ cd ~/.weechat/ssl
|
|
$ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem
|
|
----
|
|
|
|
Se WeeChat è già in esecuzione, è possibile ricaricare il certificato e la
|
|
chiave privata con il comando:
|
|
|
|
----
|
|
/relay sslcertkey
|
|
----
|
|
|
|
// TRANSLATION MISSING
|
|
[[relay_irc_proxy]]
|
|
==== Proxy IRC
|
|
|
|
The Relay plugin can act as an IRC proxy: it will simulate an IRC server, and
|
|
you can connect to WeeChat with any other IRC client (including WeeChat itself).
|
|
|
|
You can define one port by IRC server, or one generic port for all servers.
|
|
|
|
When using one port for all servers, the client must send the internal name of
|
|
server in the IRC "PASS" command, with this format:
|
|
|
|
----
|
|
PASS server:miapass
|
|
----
|
|
|
|
Example: IRC proxy with SSL for any server (client will choose):
|
|
|
|
----
|
|
/relay add ssl.irc 8000
|
|
----
|
|
|
|
Example: IRC proxy without SSL only for server "freenode":
|
|
|
|
----
|
|
/relay add irc.freenode 8000
|
|
----
|
|
|
|
Now you can connect on port 8000 with any IRC client using server password
|
|
"miapass" (or "freenode:miapass" if no server was specified in the relay).
|
|
|
|
[[relay_weechat_protocol]]
|
|
==== Protocollo WeeChat
|
|
|
|
Il plugin Relay può inviare dati alle interfacce remote usando il protocollo
|
|
WeeChat.
|
|
|
|
// TRANSLATION MISSING
|
|
You can connect with a remote interface, see the list on download page:
|
|
https://weechat.org/download
|
|
|
|
[IMPORTANT]
|
|
// TRANSLATION MISSING
|
|
WeeChat itself can NOT connect to another WeeChat with this protocol.
|
|
|
|
Ad esempio:
|
|
|
|
----
|
|
/relay add weechat 9000
|
|
----
|
|
|
|
Ora è possibile connettersi sulla porta 9000 con un'interfaccia remota usando la
|
|
password "miapass".
|
|
|
|
// TRANSLATION MISSING
|
|
[[relay_websocket]]
|
|
==== WebSocket
|
|
|
|
WebSocket protocol (http://tools.ietf.org/html/rfc6455[RFC 6455]) is supported
|
|
in Relay plugin for all protocols.
|
|
|
|
The WebSocket handshake is automatically detected and socket becomes ready for
|
|
WebSocket if required headers are found in handshake and if origin is allowed
|
|
(see option
|
|
<<option_relay.network.websocket_allowed_origins,relay.network.websocket_allowed_origins>>).
|
|
|
|
A WebSocket can be opened in a HTML5 with a single line of JavaScript:
|
|
|
|
[source,js]
|
|
----
|
|
websocket = new WebSocket("ws://server.com:9000/weechat");
|
|
----
|
|
|
|
The port (9000 in example) is the port defined in Relay plugin.
|
|
The URI must always end with "/weechat" (for 'irc' and 'weechat' protocols).
|
|
|
|
[[scripts_plugins]]
|
|
=== Plugin per gli script
|
|
|
|
WeeChat fornisce 7 plugin per lo scripting: Python, Perl, Ruby, Lua, Tcl, Guile
|
|
(scheme), Javascript.
|
|
Questi plugin possono caricare, eseguire e scaricare gli script per questi
|
|
linguaggi.
|
|
|
|
// TRANSLATION MISSING
|
|
Another plugin called "script" is a scripts manager and is used to load/unload
|
|
scripts of any language, and install/remove scripts of WeeChat scripts
|
|
repository, which are visible at this URL: https://weechat.org/scripts
|
|
|
|
Per maggiori informazioni su come scrivere gli script, o le API WeeChat
|
|
per gli script, consultare la 'Guida allo Scripting di WeeChat'.
|
|
|
|
// TRANSLATION MISSING
|
|
[[script_options]]
|
|
==== Script options (script.conf)
|
|
|
|
// TRANSLATION MISSING
|
|
Sections:
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| look | /set script.look.* | Look and feel
|
|
| color | /set script.color.* | Colors
|
|
| scripts | /set script.scripts.* | Options for download of scripts
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
Options:
|
|
|
|
include::autogen/user/script_options.asciidoc[]
|
|
|
|
[[script_commands]]
|
|
==== Comandi Script
|
|
|
|
include::autogen/user/script_commands.asciidoc[]
|
|
|
|
[[python_commands]]
|
|
==== Comandi Python
|
|
|
|
include::autogen/user/python_commands.asciidoc[]
|
|
|
|
[[perl_commands]]
|
|
==== Comandi Perl
|
|
|
|
include::autogen/user/perl_commands.asciidoc[]
|
|
|
|
[[ruby_commands]]
|
|
==== Comandi Ruby
|
|
|
|
include::autogen/user/ruby_commands.asciidoc[]
|
|
|
|
[[lua_commands]]
|
|
==== Comandi Lua
|
|
|
|
include::autogen/user/lua_commands.asciidoc[]
|
|
|
|
[[tcl_commands]]
|
|
==== Comandi Tcl
|
|
|
|
include::autogen/user/tcl_commands.asciidoc[]
|
|
|
|
[[guile_commands]]
|
|
==== Comandi Guile
|
|
|
|
include::autogen/user/guile_commands.asciidoc[]
|
|
|
|
[[javascript_commands]]
|
|
==== Comandi Javascript
|
|
|
|
include::autogen/user/javascript_commands.asciidoc[]
|
|
|
|
// TRANSLATION MISSING
|
|
[[trigger_plugin]]
|
|
=== Trigger plugin
|
|
|
|
Trigger is the Swiss Army knife for WeeChat: it can hook many things (signal,
|
|
modifier, print, ...), change the content of data, and execute one or more
|
|
commands. A condition can be used to prevent the trigger to run in some
|
|
circumstances.
|
|
|
|
Using triggers require you to know how the signals, modifiers, ... are working.
|
|
So you might consider reading the 'Hooks' chapter in the
|
|
'WeeChat Plugin API Reference'.
|
|
|
|
[[trigger_options]]
|
|
==== Options (trigger.conf)
|
|
|
|
Sections:
|
|
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| look | /set trigger.look.* | Look and feel
|
|
| color | /set trigger.color.* | Colors
|
|
| trigger | <<command_trigger_trigger,/trigger add>> +
|
|
<<command_trigger_trigger,/trigger set>> +
|
|
/set trigger.trigger.* | Trigger options
|
|
|===
|
|
|
|
Options:
|
|
|
|
include::autogen/user/trigger_options.asciidoc[]
|
|
|
|
[[trigger_commands]]
|
|
==== Commands
|
|
|
|
include::autogen/user/trigger_commands.asciidoc[]
|
|
|
|
[[trigger_anatomy]]
|
|
==== Anatomy of a trigger
|
|
|
|
A trigger has the following options (names are
|
|
`trigger.trigger.<name>.<option>`):
|
|
|
|
[width="100%",cols="2m,2,10",options="header"]
|
|
|===
|
|
| Option | Values | Description
|
|
|
|
| enabled | `on`, `off` |
|
|
When option is `off`, the trigger is disabled and actions are not executed
|
|
any more.
|
|
|
|
| hook | `signal`, `hsignal`, `modifier`, `print`, `command`, `command_run`,
|
|
`timer`, `config`, `focus` |
|
|
The hook used in trigger. For more information, see
|
|
'WeeChat Plugin API Reference', chapter 'Hooks'.
|
|
|
|
| arguments | string |
|
|
The arguments for the hook, it depends on the hook type used.
|
|
|
|
| conditions | string |
|
|
Conditions to execute the trigger; they are evaluated (see command
|
|
<<command_weechat_eval,/eval>>).
|
|
|
|
| regex | string |
|
|
One or more POSIX extended regular expressions, to change data received in the
|
|
hook callback (and some stuff added by trigger plugin), see
|
|
<<trigger_regex,regular expression>>.
|
|
|
|
| command | string |
|
|
Command to execute (many commands can be separated by semicolons); it is
|
|
evaluated (see command <<command_weechat_eval,/eval>>).
|
|
|
|
| return_code | `ok`, `ok_eat`, `error` |
|
|
The return code of callback (default is `ok`, which should be used in almost
|
|
all triggers, the other values are rarely used).
|
|
|===
|
|
|
|
For example, the default 'beep' trigger has following options:
|
|
|
|
----
|
|
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]]
|
|
==== Execution
|
|
|
|
When a trigger callback is called, following actions are executed, in this
|
|
order, if triggers are globally enabled and if the trigger itself is enabled:
|
|
|
|
. check trigger conditions: if false, exit
|
|
. replace text in trigger using regular expression(s)
|
|
. execute command(s)
|
|
. exit with a return code (except for hooks 'modifier' and 'focus').
|
|
|
|
[[trigger_hook_arguments]]
|
|
==== Hook arguments
|
|
|
|
The arguments depend on the hook used. They are separated by semicolons.
|
|
|
|
[width="100%",cols="2,6,7",options="header"]
|
|
|===
|
|
| Hook | Arguments | Examples
|
|
|
|
| signal |
|
|
1. signal name (priority allowed) (required) +
|
|
2. signal name (priority allowed) +
|
|
3. ... |
|
|
`*,irc_in_privmsg` +
|
|
`*,irc_in_privmsg;*,irc_in_notice` +
|
|
`signal_sigwinch`
|
|
|
|
| hsignal |
|
|
1. signal name (priority allowed) (required) +
|
|
2. signal name (priority allowed) +
|
|
3. ... |
|
|
`nicklist_nick_added`
|
|
|
|
| modifier |
|
|
1. modifier name (priority allowed) (required) +
|
|
2. modifier name (priority allowed) +
|
|
3. ... |
|
|
`weechat_print` +
|
|
`5000\|input_text_display;5000\|history_add`
|
|
|
|
| print |
|
|
1. buffer name +
|
|
2. tags +
|
|
3. message +
|
|
4. strip colors (0/1) |
|
|
`irc.freenode.*` +
|
|
`irc.freenode.#weechat` +
|
|
`irc.freenode.#weechat;irc_notice` +
|
|
`*;;;1`
|
|
|
|
| command |
|
|
1. command name (priority allowed) (required) +
|
|
2. description +
|
|
3. arguments +
|
|
4. description of arguments +
|
|
5. completion |
|
|
`test` +
|
|
`5000\|test`
|
|
|
|
| command_run |
|
|
1. command (priority allowed) (required) +
|
|
2. command (priority allowed) +
|
|
3. ... |
|
|
`/cmd arguments`
|
|
|
|
| timer |
|
|
1. interval in milliseconds (required) +
|
|
2. alignment on second (default: 0) +
|
|
3. max number of calls (default: 0, which means "no end") |
|
|
`3600000` +
|
|
`60000;0;5`
|
|
|
|
| config |
|
|
1. option name (priority allowed) (required) +
|
|
2. option name (priority allowed) +
|
|
3. ... |
|
|
`weechat.look.*`
|
|
|
|
| focus |
|
|
1. area name (priority allowed) (required) +
|
|
2. area name (priority allowed) +
|
|
3. ... |
|
|
`buffer_nicklist`
|
|
|===
|
|
|
|
[[trigger_conditions]]
|
|
==== Conditions
|
|
|
|
The conditions are used to continue processing in trigger, or stop everything.
|
|
|
|
They are evaluated, and data available in callback can be used
|
|
(see <<trigger_callback_data,data in callbacks>> and command
|
|
<<command_weechat_eval,/eval>>).
|
|
|
|
Example: the default 'beep' trigger uses this condition to make a beep only on
|
|
highlight or private message:
|
|
|
|
----
|
|
${tg_highlight} || ${tg_msg_pv}
|
|
----
|
|
|
|
[[trigger_regex]]
|
|
==== Regular expression
|
|
|
|
The regular expression is used to change variables in callback hashtable.
|
|
|
|
The format is: "/regex/replace" or "/regex/replace/var" (where 'var' is a
|
|
variable of the hashtable). +
|
|
If 'var' is not specified, the default variable is used, it depends on hook
|
|
type:
|
|
|
|
[width="50%",cols="4,5m",options="header"]
|
|
|===
|
|
| Hook | Default variable
|
|
| 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 |
|
|
|===
|
|
|
|
Many regular expressions can be separated by a space, for example:
|
|
"/regex1/replace1/var1 /regex2/replace2/var2".
|
|
|
|
The char "/" can be replaced by any char (one or more identical chars).
|
|
|
|
Matching groups can be used in "replace":
|
|
|
|
* `${re:0}` to `${re:99}`: `${re:0}` is the whole match, `${re:1}` to
|
|
`${re:99}` are groups captured
|
|
* `${re:+}`: the last match (with highest number)
|
|
* `${hide:c,${re:N}}`: match "N" with all chars replaced by "c"
|
|
(example: `${hide:*,${re:2}}` is the group #2 with all chars replaced by
|
|
`*`).
|
|
|
|
Example: use bold for words between "*":
|
|
|
|
----
|
|
/\*(\S+)\*/*${color:bold}${re:1}${color:-bold}*/
|
|
----
|
|
|
|
Example: default trigger 'server_pass' uses this regular expression to hide
|
|
password in commands `/server` and `/connect` (chars in passwords are replaced
|
|
by `*`):
|
|
|
|
----
|
|
==^(/(server|connect) .*-(sasl_)?password=)(\S+)(.*)==${re:1}${hide:*,${re:4}}${re:5}
|
|
----
|
|
|
|
[NOTE]
|
|
In this example, the delimiter used is "==" because there is a "/" in the
|
|
regular expression.
|
|
|
|
[[trigger_command]]
|
|
==== Command
|
|
|
|
The command is executed after replacement of text with the regular expression.
|
|
Many commands can be separated by semicolons.
|
|
|
|
It is evaluated (see command <<command_weechat_eval,/eval>>) and text replaced
|
|
with a regular expression can be used in the command.
|
|
|
|
Example: default 'beep' trigger uses this command to make a beep (BEL):
|
|
|
|
----
|
|
/print -beep
|
|
----
|
|
|
|
[[trigger_callback_data]]
|
|
==== Data in callbacks
|
|
|
|
Data received in callbacks are stored in hashtables (pointers and strings) and
|
|
can be used in following options:
|
|
|
|
* 'conditions'
|
|
* 'regex'
|
|
* 'command'
|
|
|
|
The content of hashtables depend on the hook type.
|
|
|
|
A convenient way to see data in a trigger is to open trigger monitor buffer,
|
|
using the command:
|
|
|
|
----
|
|
/trigger monitor
|
|
----
|
|
|
|
[[trigger_data_signal]]
|
|
===== Signal
|
|
|
|
The "signal" callback sets following variables in hashtable:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| tg_signal | string | Name of signal
|
|
| tg_signal_data | string | Data sent with the signal
|
|
|===
|
|
|
|
If the signal contains an IRC message, the message is parsed and following data
|
|
is added in hashtable:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| server | string | Name of server (example: "freenode")
|
|
| tags | string | Tags in message (rarely used)
|
|
| message_without_tags | string | Message without tags
|
|
| nick | string | Nick
|
|
| host | string | Hostname
|
|
| command | string | IRC command (example: "PRIVMSG", "NOTICE", ...)
|
|
| channel | string | IRC channel
|
|
| arguments | string | Arguments of command (includes value of 'channel')
|
|
| text | string | Text (for example user message)
|
|
// TRANSLATION MISSING
|
|
| pos_command | string | The index of 'command' in message ("-1" if 'command' was not found)
|
|
// TRANSLATION MISSING
|
|
| pos_arguments | string | The index of 'arguments' in message ("-1" if 'arguments' was not found)
|
|
// TRANSLATION MISSING
|
|
| pos_channel | string | The index of 'channel' in message ("-1" if 'channel' was not found)
|
|
// TRANSLATION MISSING
|
|
| pos_text | string | The index of 'text' in message ("-1" if 'text' was not found)
|
|
|===
|
|
|
|
When the data is a pointer, the variable `tg_signal_data` can be used like this
|
|
to read a hdata property (in this example this is a pointer on a buffer):
|
|
|
|
----
|
|
${buffer[${tg_signal_data}].full_name}
|
|
----
|
|
|
|
[[trigger_data_hsignal]]
|
|
===== Hsignal
|
|
|
|
The "hsignal" callback sets following variables in hashtable:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| tg_signal | string | Name of signal
|
|
|===
|
|
|
|
The hashtable contains all keys/values from hashtable received (type:
|
|
string/string).
|
|
|
|
[[trigger_data_modifier]]
|
|
===== Modifier
|
|
|
|
The "modifier" callback sets following variables in hashtable:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| tg_modifier | string | Name of modifier
|
|
| tg_modifier_data | string | Data sent with modifier
|
|
| tg_string | string | The string that can be modified
|
|
| tg_string_nocolor | string | The string without color codes
|
|
|===
|
|
|
|
For the 'weechat_print' modifier, variables using message tags are added (see
|
|
<<trigger_data_print,hook print>> below), and following variables:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| buffer | pointer | Buffer where message is printed
|
|
| tg_plugin | string | Plugin of buffer where message is printed
|
|
| tg_buffer | string | Full name of buffer where message is printed
|
|
| tg_prefix | string | Prefix of message printed
|
|
| tg_prefix_nocolor | string | Prefix without color codes
|
|
| tg_message | string | Message printed
|
|
| tg_message_nocolor | string | Message without color codes
|
|
|===
|
|
|
|
If the modifier contains an IRC message, the message is parsed and extra data is
|
|
added in hashtable (see <<trigger_data_signal,hook signal>>).
|
|
|
|
[[trigger_data_print]]
|
|
===== Print
|
|
|
|
The "print" callback sets following variables in hashtable:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| buffer | pointer | Buffer
|
|
| tg_date | string | Message date/time (format: `YYYY-MM-DD hh:mm:ss`)
|
|
| tg_displayed | string | "1" if displayed, "0" if line filtered
|
|
| tg_highlight | string | "1" if highlight, otherwise "0"
|
|
| tg_prefix | string | Prefix
|
|
| tg_prefix_nocolor | string | Prefix without color codes
|
|
| tg_message | string | Message
|
|
| tg_message_nocolor | string | Message without color codes
|
|
|===
|
|
|
|
Variables set using tags in message (they are set in modifier 'weechat_print'
|
|
too):
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| tg_tags | string | Tags of message (with comma added at beginning/end of string)
|
|
| tg_tags_count | string | Number of tags in message
|
|
| tg_tag_nick | string | Nick (from tag "nick_xxx")
|
|
| tg_tag_prefix_nick | string | Color of nick in prefix (from tag "prefix_nick_ccc")
|
|
// TRANSLATION MISSING
|
|
| tg_tag_host | string | User name and host, format: username@host (from tag "host_xxx")
|
|
| tg_tag_notify | string | Notify level ('none', 'message', 'private', 'highlight')
|
|
| tg_notify | string | Notify level, if different from 'none'
|
|
| tg_msg_pv | string | "1" for a private message, otherwise "0"
|
|
|===
|
|
|
|
[[trigger_data_command]]
|
|
===== Command
|
|
|
|
The "command" callback sets following variables in hashtable:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| buffer | pointer | Buffer
|
|
| tg_argvN | string | Argument #N
|
|
| tg_argv_eolN | string | From argument #N until end of arguments
|
|
|===
|
|
|
|
[[trigger_data_command_run]]
|
|
===== Command_run
|
|
|
|
The "command_run" callback sets following variables in hashtable:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| buffer | pointer | Buffer
|
|
| tg_command | string | Command executed
|
|
|===
|
|
|
|
[[trigger_data_timer]]
|
|
===== Timer
|
|
|
|
The "timer" callback sets following variables in hashtable:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| tg_remaining_calls | string | Number of remaining calls
|
|
| tg_date | string | Current date/time (format: `YYYY-MM-DD hh:mm:ss`)
|
|
|===
|
|
|
|
[[trigger_data_config]]
|
|
===== Config
|
|
|
|
The "config" callback sets following variables in hashtable:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| tg_option | string | Option
|
|
| tg_value | string | Value
|
|
|===
|
|
|
|
[[trigger_data_focus]]
|
|
===== Focus
|
|
|
|
The "focus" callback sets following variables in hashtable:
|
|
|
|
[width="100%",cols="3m,2,14",options="header"]
|
|
|===
|
|
| Variable | Type | Description
|
|
| window | pointer | Window
|
|
| buffer | pointer | Buffer
|
|
|===
|
|
|
|
The hashtable contains all keys/values from hashtable received (type:
|
|
string/string).
|
|
|
|
[[trigger_examples]]
|
|
==== Examples
|
|
|
|
[[trigger_example_url_color]]
|
|
===== Color for URLs
|
|
|
|
Display URLs in green:
|
|
|
|
----
|
|
/trigger add url_color modifier weechat_print "${tg_notify}" "==\S+://\S+==${color:green}${re:0}${color:reset}=="
|
|
----
|
|
|
|
[NOTE]
|
|
The simple regex used to detect URL may not catch well all URLs, but it is
|
|
faster than a complex regex.
|
|
|
|
[[trigger_example_auto_pong]]
|
|
===== Auto pong on ping queries
|
|
|
|
When someone sends a "ping" in a private buffer, this trigger will auto-reply
|
|
with `pong`:
|
|
|
|
----
|
|
/trigger add pong print "" "${type} == private && ${tg_message} == ping" "" "pong"
|
|
----
|
|
|
|
[[trigger_example_responsive_layout]]
|
|
===== Responsive layout
|
|
|
|
Following triggers can be used to customize things displayed when the size of
|
|
terminal is changed:
|
|
|
|
----
|
|
/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"
|
|
----
|
|
|
|
The triggers catch the signal "signal_sigwinch", which is sent by WeeChat when
|
|
signal SIGWINCH is received (when terminal size is changed).
|
|
|
|
The condition with `${info:term_width}` checks the width of terminal (you can
|
|
also use `${info:term_height}` if needed).
|
|
|
|
In the example, when the terminal becomes small, the nicklist is hidden. And the
|
|
bar is restored when the width is greater or equal to 100 chars.
|
|
|
|
[[trigger_example_config_save]]
|
|
===== Automatic save of configuration
|
|
|
|
You can automatically save configuration files (`*.conf`), for example each
|
|
hour:
|
|
|
|
----
|
|
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
|
|
----
|
|
|
|
Arguments for the timer hook are:
|
|
|
|
* '3600000': 3600 * 1000 milliseconds, the callback is called each hour
|
|
* '0': alignment on second (not aligned here)
|
|
* '0': max number of calls (0 = no end for the timer)
|
|
|
|
The command `/mute /save` will silently save configuration files (nothing
|
|
displayed on core buffer).
|
|
|
|
[[xfer_plugin]]
|
|
=== Plugin Xfer
|
|
|
|
Il plugin Xfer fornisce:
|
|
|
|
* chat diretta (tra due host, senza server): per esempio "DCC Chat"
|
|
tramite plugin IRC
|
|
* trasferimento file, per esempio "DCC" tramite il plugin IRC
|
|
|
|
[[xfer_options]]
|
|
==== Opzioni (xfer.conf)
|
|
|
|
// TRANSLATION MISSING
|
|
Sections:
|
|
|
|
// TRANSLATION MISSING
|
|
[width="100%",cols="3m,6m,16",options="header"]
|
|
|===
|
|
| Section | Control command | Description
|
|
| look | /set xfer.look.* | Look and feel
|
|
| color | /set xfer.color.* | Colors
|
|
| network | /set xfer.network.* | Network options
|
|
| file | /set xfer.file.* | Options for files sent/received
|
|
|===
|
|
|
|
// TRANSLATION MISSING
|
|
Options:
|
|
|
|
include::autogen/user/xfer_options.asciidoc[]
|
|
|
|
[[xfer_commands]]
|
|
==== Comandi
|
|
|
|
include::autogen/user/xfer_commands.asciidoc[]
|
|
|
|
[[support]]
|
|
== Supporto
|
|
|
|
// TRANSLATION MISSING
|
|
Before asking for support, be sure you've read documentation and FAQ provided
|
|
with WeeChat.
|
|
|
|
// TRANSLATION MISSING
|
|
For support with IRC, on server 'chat.freenode.net':
|
|
|
|
* official channels (with developers):
|
|
** '#weechat' (English)
|
|
** '#weechat-fr' (French)
|
|
* non-official channels:
|
|
** '#weechat-de' (German)
|
|
|
|
// TRANSLATION MISSING
|
|
For other ways of support, see: https://weechat.org/dev/support
|