5069 lines
184 KiB
Plaintext
5069 lines
184 KiB
Plaintext
= Guida per l'Utente di WeeChat
|
||
:author: Sébastien Helleu
|
||
:email: flashcode@flashtux.org
|
||
:lang: it
|
||
:toc: left
|
||
:toclevels: 4
|
||
:toc-title: Indice
|
||
:sectnums:
|
||
:sectnumlevels: 3
|
||
: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 (mainly IRC)
|
||
* connessione a server multipli (con SSL, IPv6, proxy)
|
||
* piccolo, veloce e leggero
|
||
* personalizzabile ed estensibile con plugin e script
|
||
* conforme alle RFC di IRC
|
||
https://tools.ietf.org/html/rfc1459[1459],
|
||
https://tools.ietf.org/html/rfc2810[2810],
|
||
https://tools.ietf.org/html/rfc2811[2811],
|
||
https://tools.ietf.org/html/rfc2812[2812] e
|
||
https://tools.ietf.org/html/rfc2813[2813]
|
||
// TRANSLATION MISSING
|
||
* IRC proxy and relay for remote interfaces
|
||
* multi-piattaforma (GNU/Linux, *BSD, macOS, 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
|
||
// TRANSLATION MISSING
|
||
* Debian/Ubuntu (o qualunque distribuzione compatibile):
|
||
`apt-get install weechat-curses weechat-plugins` +
|
||
For latest versions and nightly builds: https://weechat.org/download/debian
|
||
* 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 macOS, you can use https://brew.sh/[Homebrew]:
|
||
`brew install weechat` (for help: `brew info weechat`).
|
||
|
||
[[dependencies]]
|
||
==== Dipendenze
|
||
|
||
// TRANSLATION MISSING
|
||
The following table shows the list of packages that are *required* to compile
|
||
WeeChat:
|
||
|
||
[width="100%",cols="5,^3,.^15",options="header"]
|
||
|===
|
||
| Pacchetto ^(1)^ | Versione | Caratteristica
|
||
// TRANSLATION MISSING
|
||
| C compiler
|
||
(gcc, clang, ...) | | Build.
|
||
| cmake | ≥ 3.0 | Compilazione (ancora possibile con autotools, ma si raccomanda CMake).
|
||
// TRANSLATION MISSING
|
||
| pkg-config | | Detect installed libraries.
|
||
| libncursesw5-dev ^(2)^ | | Interfaccia ncurses.
|
||
| libcurl4-gnutls-dev | | Trasferimento URL.
|
||
// TRANSLATION MISSING
|
||
| zlib1g-dev | | Compression of packets in relay plugin (weechat protocol), script plugin.
|
||
// TRANSLATION MISSING
|
||
| libgcrypt20-dev | | Secured data, IRC SASL authentication (DH-BLOWFISH/DH-AES).
|
||
// 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).
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Il nome viene dalla distribuzione Debian GNU/Linux, nomi e versioni dei pacchetti
|
||
potrebbero essere differenti in versioni e distribuzioni differenti. +
|
||
// TRANSLATION MISSING
|
||
^(2)^ It is recommended to compile with libncurses**w**5-dev (the *w* is
|
||
important). WeeChat can compile with libncurses5-dev, but it is *NOT* recommended:
|
||
you may experience display bugs with wide chars. +
|
||
// TRANSLATION MISSING
|
||
^(3)^ GnuTLS ≥ 3.0.21 is required for IRC SASL authentication with mechanism
|
||
ECDSA-NIST256P-CHALLENGE.
|
||
|
||
// TRANSLATION MISSING
|
||
The following table shows the list of packages that are optional to compile
|
||
WeeChat:
|
||
|
||
[width="100%",cols="5,^3,.^15",options="header"]
|
||
|===
|
||
| Pacchetto | Versione | Caratteristica
|
||
// TRANSLATION MISSING
|
||
| C++ compiler | | Build and run tests, plugin JavaScript.
|
||
| gettext | | Internazionalizzazione (traduzione dei messaggi; la lingua base è l'inglese).
|
||
| ca-certificates | | Certificati per le connessioni SSL.
|
||
| libaspell-dev
|
||
∥ libenchant-dev | | Plugin spell.
|
||
| python3-dev ^(1)^ | | Plugin python.
|
||
| libperl-dev | | Plugin perl.
|
||
| ruby2.5, ruby2.5-dev | ≥ 1.9.1 | 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.
|
||
| php-dev, libphp-embed | ≥ 7.0 | Plugin php.
|
||
| libxml2-dev | | Plugin php.
|
||
// TRANSLATION MISSING
|
||
| libargon2-0-dev | | Plugin php (if PHP ≥ 7.2).
|
||
// TRANSLATION MISSING
|
||
| libsodium-dev | | Plugin php (if PHP ≥ 7.2).
|
||
// TRANSLATION MISSING
|
||
| asciidoctor | ≥ 1.5.4 | Build man page and documentation.
|
||
// TRANSLATION MISSING
|
||
| libcpputest-dev | ≥ 3.4 | Build and run tests.
|
||
|===
|
||
|
||
[NOTE]
|
||
// TRANSLATION MISSING
|
||
^(1)^ By default Python 3.x is used. If you enable option `+ENABLE_PYTHON2+` (see
|
||
below), only the version 2.7 of Python is recommended.
|
||
|
||
// TRANSLATION MISSING
|
||
If you are using a Debian/Ubuntu based distribution, and if you have some
|
||
"deb-src" source entries in your file _/etc/apt/sources.list_, you can install
|
||
all dependencies with the command:
|
||
|
||
----
|
||
# apt-get build-dep weechat
|
||
----
|
||
|
||
[[compile_with_cmake]]
|
||
==== Compilazione con CMake
|
||
|
||
* Installazione nelle directory di sistema (richiede privilegi di _root_):
|
||
|
||
----
|
||
$ mkdir build
|
||
$ cd build
|
||
$ cmake ..
|
||
$ make
|
||
$ sudo make install
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
* Installazione in una directory personalizzata (for example your home):
|
||
|
||
----
|
||
$ 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.
|
||
|
||
// TRANSLATION MISSING
|
||
| WEECHAT_HOME | directory | (empty string) |
|
||
The default home directory when running WeeChat. +
|
||
With an empty value (recommended), XDG directories are used by default.
|
||
If non empty, a single directory for all files is used.
|
||
The value can also be 4 directories separated by colons, in this order:
|
||
config, data, cache, runtime.
|
||
|
||
| 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_BUFLIST | `ON`, `OFF` | ON |
|
||
Compile <<buflist_plugin,Buflist plugin>>.
|
||
|
||
| ENABLE_CHARSET | `ON`, `OFF` | ON |
|
||
Compile <<charset_plugin,Charset plugin>>.
|
||
|
||
| ENABLE_MAN | `ON`, `OFF` | OFF |
|
||
Build man page.
|
||
|
||
| ENABLE_DOC | `ON`, `OFF` | OFF |
|
||
Build HTML documentation.
|
||
|
||
| ENABLE_ENCHANT | `ON`, `OFF` | OFF |
|
||
Compile <<spell_plugin,Spell plugin>> with Enchant.
|
||
|
||
| ENABLE_EXEC | `ON`, `OFF` | ON |
|
||
Compile <<exec_plugin,Exec plugin>>.
|
||
|
||
| ENABLE_FIFO | `ON`, `OFF` | ON |
|
||
Compile <<fifo_plugin,Fifo plugin>>.
|
||
|
||
| ENABLE_FSET | `ON`, `OFF` | ON |
|
||
Compile <<fset_plugin,Fset plugin>>.
|
||
|
||
| 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` | OFF |
|
||
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_PHP | `ON`, `OFF` | ON |
|
||
Compile <<scripts_plugins,PHP plugin>>.
|
||
|
||
| ENABLE_PYTHON | `ON`, `OFF` | ON |
|
||
Compile <<scripts_plugins,Python plugin>>.
|
||
|
||
// TRANSLATION MISSING
|
||
| ENABLE_PYTHON2 | `ON`, `OFF` | OFF |
|
||
Compile <<scripts_plugins,Python plugin>> using Python 2 instead of 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, PHP).
|
||
|
||
| ENABLE_SPELL | `ON`, `OFF` | ON |
|
||
Compile <<spell_plugin,Spell plugin>>.
|
||
|
||
| 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>>.
|
||
|
||
| ENABLE_TESTS | `ON`, `OFF` | OFF |
|
||
Compile tests.
|
||
|
||
| ENABLE_CODE_COVERAGE | `ON`, `OFF` | OFF |
|
||
Compile with code coverage options. +
|
||
This option should be used only for tests, to measure test coverage.
|
||
|===
|
||
|
||
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
|
||
$ sudo make install
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
* Installazione in una directory personalizzata (for example your home):
|
||
|
||
----
|
||
$ ./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
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[run_tests]]
|
||
==== Run tests
|
||
|
||
Following packages are *required* to compile tests:
|
||
|
||
* libcpputest-dev
|
||
* C++ compiler
|
||
|
||
Tests must be enabled when compiling WeeChat (with CMake):
|
||
|
||
----
|
||
$ cmake .. -DENABLE_TESTS=ON
|
||
----
|
||
|
||
They can be launched after compilation from the build directory (with CMake):
|
||
|
||
----
|
||
$ ctest -V
|
||
----
|
||
|
||
[[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:
|
||
|
||
// TRANSLATION MISSING
|
||
* compile with:
|
||
** informazioni di debug (o installare il pacchetto binario con le informazioni di debug)
|
||
// TRANSLATION MISSING
|
||
** address sanitizer (optional)
|
||
* abilitare i file _core_ sul proprio sistema
|
||
* installare gdb
|
||
|
||
// TRANSLATION MISSING
|
||
[[build_debug]]
|
||
==== Build with debug options
|
||
|
||
Se si compila con CMake:
|
||
|
||
----
|
||
$ cmake .. -DCMAKE_BUILD_TYPE=Debug
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[build_debug_address_sanitizer]]
|
||
==== Build with debug options and address sanitizer
|
||
|
||
// TRANSLATION MISSING
|
||
You can additionally enable the address sanitizer, which causes WeeChat to
|
||
crash immediately in case of problem:
|
||
|
||
----
|
||
$ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[WARNING]
|
||
You should enable address sanitizer only if you're trying to cause a crash,
|
||
this is not recommended in production.
|
||
|
||
// TRANSLATION MISSING
|
||
Then once compiled and installed, you must run WeeChat like this:
|
||
|
||
----
|
||
$ ASAN_OPTIONS="detect_odr_violation=0 log_path=asan.log" weechat
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
In case of crash, the backtrace is in file `asan.log`.
|
||
|
||
[[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
|
||
|
||
// TRANSLATION MISSING
|
||
When WeeChat crashes, your system will create a file _core_ or _core.12345_
|
||
(_12345_ is process id) if the <<core_files,option is enabled>>.
|
||
Questo file viene creato nella directory in cui è in esecuzione WeeChat (e
|
||
*non* la directory dove WeeChat è installato!).
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
On some systems like Archlinux, core dumps could be in another directory like
|
||
_/var/lib/systemd/coredump_ and you must use the command `coredumpctl` to read it. +
|
||
For more information, see this wiki page: https://wiki.archlinux.org/index.php/Core_dump
|
||
|
||
Ad esempio, se _weechat_ è installato in _/usr/bin/_ ed il file _core_
|
||
si trova in _/home/user/_, allora eseguire gdb con questo comando:
|
||
|
||
----
|
||
gdb /usr/bin/weechat /home/user/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
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[upgrade]]
|
||
=== Upgrade
|
||
|
||
If a new stable version of WeeChat is released, this is time for you to
|
||
switch to this version.
|
||
|
||
First of all, you must install the new version of WeeChat, either with your
|
||
package manager or by compiling yourself, so that the `weechat` binary and all
|
||
required files are in the same paths. +
|
||
This can be done while WeeChat is running.
|
||
|
||
// TRANSLATION MISSING
|
||
[[upgrade_command]]
|
||
==== Upgrade command
|
||
|
||
WeeChat can restart the new binary, in place, using the
|
||
<<command_weechat_upgrade,/upgrade>> command: the buffer contents and non-SSL
|
||
connections are preserved. +
|
||
The SSL connections are lost during upgrade and you are automatically
|
||
reconnected after the upgrade (reload of SSL sessions is currently not possible
|
||
with GnuTLS).
|
||
|
||
The command can also be used if you have to restart the machine, for example
|
||
to upgrade the kernel or to move your WeeChat to another machine:
|
||
|
||
----
|
||
/upgrade -quit
|
||
----
|
||
|
||
This saves the current state in `*.upgrade` files. You can then either reboot
|
||
or move the whole WeeChat directories (config, data, cache) to another machine,
|
||
and restart WeeChat later with this command:
|
||
|
||
----
|
||
$ weechat --upgrade
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[restart_after_upgrade]]
|
||
==== Restart after upgrade
|
||
|
||
[[restart_release_notes]]
|
||
===== Release notes
|
||
|
||
After an upgrade, it is *strongly recommended* to read the
|
||
https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
|
||
which contain important information about breaking changes and some
|
||
manual actions that could be required.
|
||
|
||
You must read the release notes of all versions between your old (excluded) and
|
||
your new version (included). +
|
||
For example if you switch from version 3.0 to 3.2, you must read release notes
|
||
of versions 3.1 and 3.2.
|
||
|
||
[[restart_configuration_upgrade]]
|
||
===== Configuration upgrade
|
||
|
||
WeeChat has an automatic upgrade of configuration files (`*.conf`):
|
||
|
||
* new options are silently added with default value
|
||
* obsolete options are automatically discarded and WeeChat displays a warning
|
||
with the value read from file.
|
||
|
||
Example of warning when an option has been removed:
|
||
|
||
----
|
||
=!= Attenzione: /home/user/.config/weechat/sec.conf, riga 15: opzione sconosciuta per la sezione "crypt": passphrase_file = ""
|
||
----
|
||
|
||
That means the option `sec.crypt.passphrase_file` has been removed, and you
|
||
had value set to empty string, which was the default value in the previous version
|
||
(in this case no manual action is required).
|
||
|
||
[[usage]]
|
||
== Utilizzo
|
||
|
||
[[running_weechat]]
|
||
=== Esecuzione di WeeChat
|
||
|
||
Per avviare WeeChat, digitare questo comando:
|
||
|
||
----
|
||
$ weechat
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
When you run WeeChat for the first time, the default configuration files are
|
||
created in _~/.config/weechat_ with default options and values
|
||
(see <<files_and_directories,Files and directories>>).
|
||
|
||
// TRANSLATION MISSING
|
||
[[command_line_options]]
|
||
==== Command line options
|
||
|
||
include::includes/cmdline_options.it.adoc[tag=standard]
|
||
|
||
// TRANSLATION MISSING
|
||
[[extra_debug_options]]
|
||
==== Extra debug options
|
||
|
||
[WARNING]
|
||
These options are for debug purposes only, *DO NOT USE IN PRODUCTION!*
|
||
|
||
include::includes/cmdline_options.it.adoc[tag=debug]
|
||
|
||
// TRANSLATION MISSING
|
||
[[environment_variables]]
|
||
=== Environment variables
|
||
|
||
Some environment variables are used by WeeChat if they are defined:
|
||
|
||
[width="100%",cols="1m,6",options="header"]
|
||
|===
|
||
| Name | Description
|
||
| WEECHAT_HOME | The WeeChat home (with configuration files, logs, scripts, ...). Same behavior as <<compile_with_cmake,CMake option>> `WEECHAT_HOME`.
|
||
| WEECHAT_PASSPHRASE | The passphrase used to decrypt secured data.
|
||
| WEECHAT_EXTRA_LIBDIR | An extra directory to load plugins (from the "plugins" directory in this path).
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[files_and_directories]]
|
||
=== Files and directories
|
||
|
||
[[xdg_directories]]
|
||
==== XDG directories
|
||
|
||
WeeChat uses XDG directories by default
|
||
(according to the https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html[XDG Base Directory Specification]). +
|
||
A single home directory for all files can be forced by CMake option `WEECHAT_HOME`,
|
||
the environment variable `WEECHAT_HOME` or the command-line option `-d` / `--dir`.
|
||
|
||
When a single WeeChat home directory is not forced, XDG directories are used
|
||
and set like this:
|
||
|
||
[width="100%",cols="1,2m,5",options="header"]
|
||
|===
|
||
| Directory | Default value | Fallback value
|
||
| config | $XDG_CONFIG_HOME/weechat | `$HOME/.config/weechat` if `$XDG_CONFIG_HOME` is not defined or empty.
|
||
| data | $XDG_DATA_HOME/weechat | `$HOME/.local/share/weechat` if `$XDG_DATA_HOME` is not defined or empty.
|
||
| cache | $XDG_CACHE_HOME/weechat | `$HOME/.cache/weechat` if `$XDG_CACHE_HOME` is not defined or empty.
|
||
| runtime | $XDG_RUNTIME_DIR/weechat | Same as _cache_ directory if `$XDG_RUNTIME_DIR` is not defined or empty.
|
||
|===
|
||
|
||
The configuration files are created with default values the first time you run WeeChat.
|
||
|
||
[[weechat_directories]]
|
||
==== WeeChat directories
|
||
|
||
The WeeChat directories are:
|
||
|
||
[width="100%",cols="1m,3",options="header"]
|
||
|===
|
||
| Path ^(1)^ | Description
|
||
| ~/.config/weechat/ | WeeChat configuration files: `*.conf`, certificates, etc.
|
||
| ~/.local/share/weechat/ | WeeChat data files: logs, scripts, scripts data, xfer files, etc.
|
||
| logs/ | Log files (one file per buffer).
|
||
| python/ | Python scripts.
|
||
| autoload/ | Python scripts auto-loaded on startup ^(2)^.
|
||
| perl/ | Perl scripts.
|
||
| autoload/ | Perl scripts auto-loaded on startup ^(2)^.
|
||
| ruby/ | Ruby scripts.
|
||
| autoload/ | Ruby scripts auto-loaded on startup ^(2)^.
|
||
| lua/ | Lua scripts.
|
||
| autoload/ | Lua scripts auto-loaded on startup ^(2)^.
|
||
| tcl/ | Tcl scripts.
|
||
| autoload/ | Tcl scripts auto-loaded on startup ^(2)^.
|
||
| guile/ | Guile scripts.
|
||
| autoload/ | Guile scripts auto-loaded on startup ^(2)^.
|
||
| javascript/ | JavaScript scripts.
|
||
| autoload/ | JavaScript scripts auto-loaded on startup ^(2)^.
|
||
| php/ | PHP scripts.
|
||
| autoload/ | PHP scripts auto-loaded on startup ^(2)^.
|
||
| ~/.cache/weechat/ | WeeChat cache files: scripts cache.
|
||
| /run/user/1000/weechat/ | WeeChat runtime files: FIFO pipe, Relay UNIX sockets.
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ XDG directories may be different according to your environment variables `XDG_*`. +
|
||
^(2)^ This directory often contains only symbolic links to scripts in parent directory.
|
||
|
||
[[weechat_files]]
|
||
==== WeeChat files
|
||
|
||
The files in the WeeChat home directory are:
|
||
|
||
[width="100%",cols="1m,3,6",options="header"]
|
||
|===
|
||
| File | Description | Sensitive data
|
||
| weechat.conf | Main WeeChat configuration file | Possible (example: list of channels in a saved buffers layout).
|
||
| sec.conf | Configuration file with secured data | *Yes, highly sensitive*: this file must never be shared with anyone.
|
||
| plugins.conf | Plugins configuration file | Possible, depends on plugins/scripts.
|
||
| alias.conf | Configuration file for _alias_ plugin | Possible, depends on aliases.
|
||
| buflist.conf | Configuration file for _buflist_ plugin | No.
|
||
| charset.conf | Configuration file for _charset_ plugin | No.
|
||
| exec.conf | Configuration file for _exec_ plugin | No.
|
||
| fifo.conf | Configuration file for _fifo_ plugin | No.
|
||
| fset.conf | Configuration file for _fset_ plugin | No.
|
||
| guile.conf | Configuration file for _guile_ plugin | No.
|
||
| irc.conf | Configuration file for _irc_ plugin | *Yes*: it can contain passwords for servers, nickserv and channels (if not stored in `sec.conf`).
|
||
| javascript.conf | Configuration file for _javascript_ plugin | No.
|
||
| logger.conf | Configuration file for _logger_ plugin | No.
|
||
| lua.conf | Configuration file for _lua_ plugin | No.
|
||
| perl.conf | Configuration file for _perl_ plugin | No.
|
||
| php.conf | Configuration file for _php_ plugin | No.
|
||
| python.conf | Configuration file for _python_ plugin | No.
|
||
// TRANSLATION MISSING
|
||
| relay.conf | Configuration file for _relay_ plugin | *Yes*: it can contain relay password and TOTP secret (if not stored in `sec.conf`), allowed IP addresses/websocket origins and opened ports.
|
||
| ruby.conf | Configuration file for _ruby_ plugin | No.
|
||
| script.conf | Configuration file for _script_ plugin | No.
|
||
| spell.conf | Configuration file for _spell_ plugin | No.
|
||
| tcl.conf | Configuration file for _tcl_ plugin | No.
|
||
| trigger.conf | Configuration file for _trigger_ plugin | Possible, depends on triggers.
|
||
| xfer.conf | Configuration file for _xfer_ plugin | No.
|
||
| weechat.log | WeeChat log file | No.
|
||
|===
|
||
|
||
[IMPORTANT]
|
||
It is *not recommended* to edit configuration files by hand because WeeChat
|
||
may write them at any time (for example on <<command_weechat_quit,/quit>>)
|
||
and after any change you must run the command <<command_weechat_reload,/reload>>
|
||
(with the risk of losing other changes that were not yet saved with
|
||
<<command_weechat_save,/save>>). +
|
||
You can use the command <<command_weechat_set,/set>>, which checks the value
|
||
and applies immediately the changes.
|
||
|
||
[[screen_layout]]
|
||
=== Layout dello schermo
|
||
|
||
Esempio di terminale con WeeChat:
|
||
|
||
// TRANSLATION MISSING
|
||
....
|
||
▼ bar "buflist" ▼ bar "title"
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.freenode│Welcome to #test, this is a test channel │
|
||
│ weechat │12:52:27 --> | Flashy (flashcode@weechat.org) has joined #test │@Flashy│
|
||
│2. #test │12:52:27 -- | Nicks #test: [@Flashy @joe +weebot peter] │@joe │
|
||
│3. #abc │12:52:27 -- | Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│
|
||
│4. #def │12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │peter │
|
||
│5. #ghi │12:54:15 peter | hey! │ │
|
||
│ │12:55:01 @joe | hello │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 2:#test(+n){4}* [H: 3:#abc(2,5), 5] │
|
||
│ │[@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:
|
||
// TRANSLATION MISSING
|
||
** barra _buflist_, on the left
|
||
** 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 _buflist_ ha i seguenti elementi predefiniti:
|
||
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Elemento | Esempio | Descrizione
|
||
// TRANSLATION MISSING
|
||
| buflist | `1.weechat` | List of buffers.
|
||
|===
|
||
|
||
La barra _title_ ha i seguenti elementi predefiniti:
|
||
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Elemento | Esempio | Descrizione
|
||
// TRANSLATION MISSING
|
||
| buffer_title | `Welcome to #test` | Buffer title.
|
||
|===
|
||
|
||
La barra _status_ ha i seguenti elementi predefiniti:
|
||
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Elemento | Esempio | Descrizione
|
||
| time | `[12:55]` | Ora.
|
||
// TRANSLATION MISSING
|
||
| buffer_last_number | `[5]` | 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 | `2` | Numero del buffer corrente.
|
||
| buffer_name | `#test` | Nome del buffer attivo.
|
||
| buffer_modes | `+n` | Modalità canale IRC.
|
||
// TRANSLATION MISSING
|
||
| buffer_nicklist_count | `{4}` | Number of nicks displayed in nicklist.
|
||
// 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: 3:#abc(2,5), 5]` | 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 #5).
|
||
| 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,^3,9",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.
|
||
|===
|
||
|
||
La barra _nicklist_ ha i seguenti elementi predefiniti:
|
||
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Elemento | Esempio | Descrizione
|
||
// TRANSLATION MISSING
|
||
| buffer_nicklist | `@Flashy` | List of nicks on current buffer.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Other items available (not used in bars by default):
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Item | Example | Description
|
||
| buffer_count | `10` | Total number of buffers opened.
|
||
| buffer_last_number | `10` | Number of the latest buffer (can be different from `buffer_count` if option <<option_weechat.look.buffer_auto_renumber,weechat.look.buffer_auto_renumber>> is `off`).
|
||
| buffer_nicklist_count_all | `4` | Number of visible groups and nicks in nicklist.
|
||
| buffer_nicklist_count_groups | `0` | Number of visible groups in nicklist.
|
||
| buffer_short_name | `#test` | Current buffer short name.
|
||
| buflist2 | `1.weechat` | List of buffers, second bar item (see option <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
| buflist3 | `1.weechat` | List of buffers, third bar item (see option <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
| fset | `+buflist.look.sort: …+` | Help on currently selected option on fset buffer.
|
||
| irc_channel | `#test` | Current IRC channel name.
|
||
| irc_host | `+user@host.com+` | Current IRC host.
|
||
| irc_nick | `+Flashy+` | Current IRC nick.
|
||
| irc_nick_host | `+Flashy!user@host.com+` | Current IRC nick and host.
|
||
| irc_nick_modes | `i` | IRC modes for self nick.
|
||
| irc_nick_prefix | `@` | IRC nick prefix on channel.
|
||
| mouse_status | `M` | Mouse status (empty if mouse is disabled).
|
||
| spell_dict | `fr,en` | Spelling dictionaries used on current buffer.
|
||
| spell_suggest | `print,prone,prune` | Spelling suggestions for word under cursor (if misspelled).
|
||
| window_number | `2` | Current window number.
|
||
|===
|
||
|
||
[[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="100%",cols="1,2",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::includes/autogen_user_irc_colors.it.adoc[tag=irc_colors]
|
||
|
||
// 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 Alice!" con "ciao" scritto in blu chiaro grassetto
|
||
e "Alice" in rosso chiaro sottolineato:
|
||
|
||
----
|
||
^Cc12^Cbciao ^Cb^Cc04^C_Alice^C_^Cc !
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
Keys:
|
||
|
||
kbd:[Ctrl+c] kbd:[c] kbd:[1] kbd:[2] kbd:[Ctrl+c] kbd:[b] +
|
||
kbd:[c] kbd:[i] kbd:[a] kbd:[o] kbd:[Space] +
|
||
kbd:[Ctrl+c] kbd:[b] kbd:[Ctrl+c] kbd:[c] kbd:[0] kbd:[4] kbd:[Ctrl+c] kbd:[pass:[_]] +
|
||
kbd:[A] kbd:[l] kbd:[i] kbd:[c] kbd:[e] +
|
||
kbd:[Ctrl+c] kbd:[pass:[_]] kbd:[Ctrl+c] kbd:[c] +
|
||
kbd:[!]
|
||
|
||
[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 32767 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="75%",cols="8,>3,>3",options="header"]
|
||
|===
|
||
| $TERM | Colori | Coppie
|
||
| "rxvt-unicode", "xterm", ... | 88 | 32767
|
||
| "rxvt-256color", "xterm-256color", ... | 256 | 32767
|
||
| "screen" | 8 | 64
|
||
| "screen-256color" | 256 | 32767
|
||
| "tmux" | 8 | 64
|
||
| "tmux-256color" | 256 | 32767
|
||
|===
|
||
|
||
È 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="75%",cols="1m,4",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
|
||
----
|
||
|
||
[[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)
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.freenode│Welcome to #def │
|
||
│ weechat │12:55:12 Max | hi │@Flashy│
|
||
│2. #test │12:55:20 @Flashy | hi Max! │Max │
|
||
│3. #abc │ │ │
|
||
│4. #def │ │ │
|
||
│5. #ghi │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 4:#def(+n){2} │
|
||
│ │[@Flashy] │
|
||
│ │───────────────────────────────────────────────────────────────────────────│
|
||
│ │Welcome to #abc │
|
||
│ │12:54:15 peter | hey! │@Flashy│
|
||
│ │12:55:01 @joe | hello │@joe │
|
||
│ │ │+weebot│
|
||
│ │ │peter │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 3:#abc(+n){4} │
|
||
│ │[@Flashy] hi peter!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ window #1 (buffer #3)
|
||
....
|
||
|
||
Esempio di split verticale (`/window splitv`):
|
||
|
||
// TRANSLATION MISSING
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.freenode│Welcome to #abc │Welcome to #def │
|
||
│ weechat │12:54:15 peter | hey! │@Flashy│12:55:12 Max | hi │@Flashy│
|
||
│2. #test │12:55:01 @joe | hello │@joe │12:55:20 @Flashy | hi Max! │Max │
|
||
│3. #abc │ │+weebot│ │ │
|
||
│4. #def │ │peter │ │ │
|
||
│5. #ghi │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 3:#abc(+n)│[12:55] [5] [irc/freenode] 4:#def(+n)│
|
||
│ │[@Flashy] hi peter!█ │[@Flashy] │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ window #1 (buffer #3) ▲ window #2 (buffer #4)
|
||
....
|
||
|
||
Esempio di split orizzontale + verticale:
|
||
|
||
// TRANSLATION MISSING
|
||
....
|
||
▼ window #3 (buffer #5)
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.freenode│Welcome to #abc │Welcome to #ghi │
|
||
│ weechat │12:54:15 peter | hey! │@Flashy│12:55:42 @Flashy | hi │@Flashy│
|
||
│2. #test │12:55:01 @joe | hello │@joe │12:55:56 alex | hi Flashy │alex │
|
||
│3. #abc │ │+weebot│ │ │
|
||
│4. #def │ │peter │ │ │
|
||
│5. #ghi │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │[12:55] [5] [irc/freenode] 5:#ghi(+n)│
|
||
│ │ │ │[@Flashy] │
|
||
│ │ │ │─────────────────────────────────────│
|
||
│ │ │ │Welcome to #def │
|
||
│ │ │ │12:55:12 Max | hi │@Flashy│
|
||
│ │ │ │12:55:20 @Flashy | hi Max! │Max │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 3:#abc(+n)│[12:55] [5] [irc/freenode] 4:#def(+n)│
|
||
│ │[@Flashy] hi peter!█ │[@Flashy] │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ window #1 (buffer #3) ▲ window #2 (buffer #4)
|
||
....
|
||
|
||
// TRANSLATION MISSING
|
||
[[buffers]]
|
||
=== Buffers
|
||
|
||
[[lines_format]]
|
||
==== Format of lines
|
||
|
||
Lines displayed in formatted buffers have following fields:
|
||
|
||
[width="100%",cols="2,2,10",options="header"]
|
||
|===
|
||
| Field | Displayed | Description
|
||
| date/time (message) | Yes | Date/time of message (may be past).
|
||
| date/time (print) | No | Date/time when WeeChat prints the message.
|
||
| prefix | Yes | Prefix of message, commonly a nick.
|
||
| message | Yes | The message itself.
|
||
| displayed | No | Boolean: true if line is displayed, false if line is filtered with command <<command_weechat_filter,/filter>>.
|
||
| highlight | No | Boolean: true if line has a highlight, false otherwise.
|
||
| tags | With `/debug tags` | Tags associated with the line (see <<lines_tags,lines tags>>).
|
||
|===
|
||
|
||
The display of lines can be customized with many look options
|
||
(_pass:[weechat.look.*]_) and color options (_pass:[weechat.color.chat_*]_).
|
||
|
||
[[lines_tags]]
|
||
==== Lines tags
|
||
|
||
WeeChat uses tags in lines for different purposes:
|
||
|
||
* highlight
|
||
* notify level
|
||
* logging
|
||
* use of command <<command_weechat_filter,/filter>>
|
||
|
||
Tags can be displayed with the command `/debug tags` (same command to hide them).
|
||
|
||
Tag usati di frequente (elenco non esaustivo):
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Tag | Descrizione
|
||
| no_filter | La riga non può essere filtrata.
|
||
| no_highlight | Evidenziazione non possibile sulla riga.
|
||
| no_log | La riga non viene scritta nel file di log.
|
||
| log0 … log9 | Livello di log per la riga (consultare `/help logger`).
|
||
// TRANSLATION MISSING
|
||
| notify_none | The line must not be added to hotlist. ^(1)^
|
||
// TRANSLATION MISSING
|
||
| notify_message | The line is a user message. ^(1)^
|
||
// TRANSLATION MISSING
|
||
| notify_private | The line is a private message. ^(1)^
|
||
// TRANSLATION MISSING
|
||
| notify_highlight | The line is a message with highlight. ^(1)^
|
||
// TRANSLATION MISSING
|
||
| self_msg | Self message.
|
||
| nick_xxx | Il messaggio viene dal nick "xxx".
|
||
| prefix_nick_ccc | Il prefisso è un nick con il colore "ccc".
|
||
// TRANSLATION MISSING
|
||
| host_xxx | Username and host in message.
|
||
| irc_xxx | Messaggio IRC "xxx" (può essere un comando o un numero di 3 cifre).
|
||
| irc_numeric | Messaggio IRC numerico.
|
||
| irc_error | Errore dal server IRC.
|
||
| irc_action | Azione da un nic (comando `/me`).
|
||
| irc_ctcp | Messaggio CTCP.
|
||
| irc_ctcp_reply | Risposta ad un messaggio CTCP.
|
||
| irc_smart_filter | Messaggio IRC filtrabile tramite lo "smart filter" (filtro intelligente).
|
||
| away_info | Messagio con informazioni sull'assenza.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
^(1)^ When no tag "notify_xxx" is present, the default level is "low". If a tag
|
||
"notify_xxx" is present, the real notify level can be different, for example
|
||
if a max hotlist level is used for a nick, the notify level can be lower than
|
||
the value in the tag.
|
||
|
||
// TRANSLATION MISSING
|
||
[[local_variables]]
|
||
==== Local variables
|
||
|
||
Local variables can be defined in all buffers.
|
||
|
||
A local variable has:
|
||
|
||
* a name (string)
|
||
* a value (string, can be empty).
|
||
|
||
Local variables can be set by WeeChat, plugins, scripts, or manually on the
|
||
command line in the buffer.
|
||
|
||
For example to add the local variable "completion_default_template":
|
||
|
||
----
|
||
/buffer setvar completion_default_template %(my_completion)
|
||
----
|
||
|
||
To list local variables in the current buffer:
|
||
|
||
----
|
||
/buffer listvar
|
||
----
|
||
|
||
To remove the local variable "completion_default_template":
|
||
|
||
----
|
||
/buffer delvar completion_default_template
|
||
----
|
||
|
||
By default WeeChat and its default plugins interpret these variables:
|
||
|
||
[width="100%",cols="^2m,2,5",options="header"]
|
||
|===
|
||
| Name | Value | Description
|
||
|
||
| away |
|
||
any string |
|
||
Away message on the server, set by irc plugin.
|
||
|
||
| channel |
|
||
any string |
|
||
Channel name, set by irc/xfer plugins and debug buffer of relay/trigger plugins.
|
||
|
||
| charset_modifier |
|
||
any string |
|
||
Charset modifier for the server buffer, set by irc plugin.
|
||
|
||
| completion_default_template |
|
||
any string |
|
||
Default completion template for the buffer, overriding the option
|
||
`weechat.completion.default_template`.
|
||
|
||
| filter |
|
||
any string |
|
||
Filter defined on some buffers like `/fset`, `/server raw` (irc) and `/script`.
|
||
|
||
| host |
|
||
any string |
|
||
Self host (if known), set by irc plugin.
|
||
|
||
| lag |
|
||
any string |
|
||
Lag on the server, set by irc plugin.
|
||
|
||
| name |
|
||
any string |
|
||
Buffer name (be careful, this is not the full name and this name is not
|
||
enough to identify or search a buffer).
|
||
|
||
| nick |
|
||
any string |
|
||
Self nick, set by irc and xfer plugins.
|
||
|
||
| no_log |
|
||
`1` (or any non-empty string) |
|
||
If set, the logger plugin does not log anything for the buffer.
|
||
|
||
| plugin |
|
||
any string |
|
||
Name of plugin which created the buffer (`core` for WeeChat buffers).
|
||
|
||
| script_close_cb |
|
||
any string |
|
||
Close callback defined by a script for a buffer.
|
||
|
||
| script_close_cb_data |
|
||
any string |
|
||
Data for close callback defined by a script for a buffer.
|
||
|
||
| script_input_cb |
|
||
any string |
|
||
Input callback defined by a script for a buffer.
|
||
|
||
| script_input_cb_data |
|
||
any string |
|
||
Data for input callback defined by a script for a buffer.
|
||
|
||
| script_name |
|
||
any string |
|
||
Name of the script which created the buffer.
|
||
|
||
| server |
|
||
any string |
|
||
Server name, set by irc plugin and debug buffer of relay/trigger plugins.
|
||
|
||
| spell_suggest |
|
||
any string |
|
||
Misspelled word and suggestions (format: "misspelled:suggestions"), set by
|
||
spell plugin.
|
||
|
||
| trigger_filter |
|
||
any string |
|
||
Trigger filter, set by trigger plugin.
|
||
|
||
| type |
|
||
any string, for example:
|
||
`channel`,
|
||
`debug`,
|
||
`exec`,
|
||
`option`,
|
||
`private`,
|
||
`relay`,
|
||
`script`,
|
||
`server`,
|
||
`user`,
|
||
`xfer` |
|
||
Type of buffer, set by WeeChat and many plugins.
|
||
|
||
|===
|
||
|
||
[NOTE]
|
||
External plugins and scripts can define and use other local variables.
|
||
|
||
// 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` |
|
||
// TRANSLATION MISSING
|
||
A bar with type `root` is displayed exactly one time on screen, outside all
|
||
windows. The default bar _buflist_ has type `root`. +
|
||
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 default bars _title_, _status_,
|
||
_input_ and _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 terminal is > 100:
|
||
|
||
----
|
||
/set weechat.bar.nicklist.conditions "${nicklist} && ${info:term_width} > 100"
|
||
----
|
||
|
||
Same condition, but always display nicklist on buffer _&bitlbee_
|
||
(even if terminal is small):
|
||
|
||
----
|
||
/set weechat.bar.nicklist.conditions "${nicklist} && (${info:term_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 enable bare display is kbd:[Alt+l] (`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:
|
||
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.freenode│Welcome to #abc │
|
||
│ weechat │12:52:27 --> | Flashy (flashcode@weechat.org) has joined #abc │@Flashy│
|
||
│2. #test │12:52:27 -- | Nicks #abc: [@Flashy @joe +weebot peter] │@joe │
|
||
│3. #abc │12:52:27 -- | Channel #abc: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│
|
||
│4. #def │12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │peter │
|
||
│5. #ghi │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] [5] [irc/freenode] 3:#abc(+n){4} │
|
||
│ │[@Flashy(i)] hi peter!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
The screen will look like that in bare display:
|
||
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│12:52 --> Flashy (flashcode@weechat.org) has joined #abc │
|
||
│12:52 -- Nicks #abc: [@Flashy @joe +weebot peter] │
|
||
│12:52 -- Channel #abc: 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/weechat_plugin_a│
|
||
│pi.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
|
||
|
||
// TRANSLATION MISSING
|
||
[[setup_notify_levels]]
|
||
==== Setup notify levels
|
||
|
||
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="75%",cols="2m,7",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
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[max_hotlist_level_nicks]]
|
||
==== Max hotlist level for nicks
|
||
|
||
It is possible to set max hotlist level for some nicks, per buffer, or per group
|
||
of buffers (like IRC servers).
|
||
|
||
The buffer property "hotlist_max_level_nicks" can be set with a list of nicks
|
||
and for each nick the max hotlist level to trigger, possible levels are:
|
||
|
||
* -1: no hotlist changes for nick
|
||
* 0: low priority (like join/part messages)
|
||
* 1: message
|
||
* 2: private message
|
||
* 3: highlight (in fact useless, since it's already the default max for all messages)
|
||
|
||
For example to disable highlights from "joe" and "mike" on current buffer:
|
||
|
||
----
|
||
/buffer set hotlist_max_level_nicks_add joe:2,mike:2
|
||
----
|
||
|
||
[NOTE]
|
||
The buffer property "hotlist_max_level_nicks" is not saved in configuration. +
|
||
You can easily save it with the script _buffer_autoset.py_: you can install it
|
||
with `+/script install buffer_autoset.py+` and get help with `+/help buffer_autoset+`.
|
||
|
||
// TRANSLATION MISSING
|
||
[[highlights]]
|
||
=== Highlights
|
||
|
||
[[highlights_words]]
|
||
==== Add words to highlight
|
||
|
||
By default, WeeChat highlights messages from other users containing your nick,
|
||
therefore the highlight depends on the buffer (the nick can be different from
|
||
one buffer to another).
|
||
|
||
You can add other words to highlight with the option
|
||
<<option_weechat.look.highlight,weechat.look.highlight>>, for example to
|
||
highlight your nick and "word1", "word2" and all words beginning with "test":
|
||
|
||
----
|
||
/set weechat.look.highlight word1,word2,test*
|
||
----
|
||
|
||
If you need a more specific rule for the word, you can use regular expressions
|
||
with the option <<option_weechat.look.highlight_regex,weechat.look.highlight_regex>>,
|
||
for example to highlight words "flashcode", "flashcöde" and "flashy":
|
||
|
||
----
|
||
/set weechat.look.highlight_regex flashc[oö]de|flashy
|
||
----
|
||
|
||
The delimiters around words to highlight can be customized with the option
|
||
<<option_weechat.look.word_chars_highlight,weechat.look.word_chars_highlight>>.
|
||
|
||
[[highlights_tags]]
|
||
==== Add tags to highlight
|
||
|
||
Lines displayed can contain "tags", which give some info about the origin of
|
||
message or the message itself. +
|
||
You can display tags with the command `/debug tags` (same command to hide them).
|
||
|
||
You can add specific tags to highlight with the option
|
||
<<option_weechat.look.highlight_tags,weechat.look.highlight_tags>>.
|
||
Tags are separated by commas, and multiple tags can be separated by `+++` to do
|
||
a logical "and" between them.
|
||
|
||
For example to highlight all messages from nick "FlashCode" and all notices
|
||
from nicks beginning with "toto":
|
||
|
||
----
|
||
/set weechat.look.highlight_tags "nick_flashcode,irc_notice+nick_toto*"
|
||
----
|
||
|
||
[[highlights_regex_buffer]]
|
||
==== Set extra highlights on buffer
|
||
|
||
You can force highlight using a regular expression with the buffer property
|
||
"highlight_regex".
|
||
|
||
For example to force the highlight on all messages in the current buffer:
|
||
|
||
----
|
||
/buffer set highlight_regex .*
|
||
----
|
||
|
||
[NOTE]
|
||
The buffer property "highlight_regex" is not saved in configuration. +
|
||
You can easily save it with the script _buffer_autoset.py_: you can install it
|
||
with `+/script install buffer_autoset.py+` and get help with `+/help buffer_autoset+`.
|
||
|
||
[[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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+k] | Elimina dal cursore fino alla fine della riga di comando (deleted string is copied to the internal clipboard). | `+/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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+u] | Elimina dal cursore fino all'inizio della riga di comando (deleted string is copied to the internal clipboard). | `+/input delete_beginning_of_line+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+w] | Elimina la parola precedente nella riga di comando (deleted string is copied to the internal clipboard). | `+/input delete_previous_word+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+y] | Paste the internal clipboard content. | `+/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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+Enter] | Insert a newline. | `+/input insert \n+`
|
||
| 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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+d] | Elimina la parola successiva nella riga di comando (deleted string is copied to the internal clipboard). | `+/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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+s] | Toggle spell checker. | `+/mute spell toggle+`
|
||
|===
|
||
|
||
[[key_bindings_buffers_windows]]
|
||
==== Tasti per buffer / finestre
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
| kbd:[Ctrl+l] (`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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[F1] +
|
||
kbd:[Ctrl+F1] | Scroll up one page in buflist. | `+/bar scroll buflist * -100%+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[F2] +
|
||
kbd:[Ctrl+F2] | Scroll down one page in buflist. | `+/bar scroll buflist * +100%+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+F1] | Go to the beginning of buflist. | `+/bar scroll buflist * b+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+F2] | Go to the end of buflist. | `+/bar scroll buflist * e+`
|
||
| 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] +
|
||
kbd:[Ctrl+F11] | Scorre di una pagina in alto nella lista nick. | `+/bar scroll nicklist * -100%+`
|
||
| kbd:[F12] +
|
||
kbd:[Ctrl+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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+Shift+B] | Toggle buflist. | `+/buflist toggle+`
|
||
| 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] (`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] (`L`) | Toggle bare display. | `+/window bare+`
|
||
| kbd:[Alt+m] | Abilita/disabilita. | `+/mouse toggle+`
|
||
| kbd:[Alt+n] | Scorre fino alla notifica successiva. | `+/window scroll_next_highlight+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+Shift+N] | Toggle nicklist bar. | `+/bar toggle nicklist+`
|
||
| 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 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"]
|
||
|===
|
||
// TRANSLATION MISSING
|
||
| Tasto/Wheel ^(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+`
|
||
| kbd:[▲] | - | chat | Scorre di qualche riga in alto nella cronologia del buffer. | `+/window scroll_up -window ${_window_number}+`
|
||
| kbd:[▼] | - | chat | Scorre di qualche riga in basso nella cronologia del buffer. | `+/window scroll_down -window ${_window_number}+`
|
||
| 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%+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[▲] | - | chat: fset buffer | Move five lines up in fset buffer. | `+/fset -up 5+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[▼] | - | chat: fset buffer | Move five lines down in fset buffer. | `+/fset -down 5+`
|
||
// TRANSLATION MISSING
|
||
| ◾◽◽ | - | chat: fset buffer | Select line in fset buffer. | `+/window ${_window_number};/fset -go ${_chat_line_y}+`
|
||
// TRANSLATION MISSING
|
||
| ◽◽◾ | - | chat: fset buffer | Toggle boolean (on/off) or edit the option value. | `+hsignal:fset_mouse+`
|
||
// TRANSLATION MISSING
|
||
| ◽◽◾ | left | chat: fset buffer | Decrease value for integer/color, set/append to value for other types. | `+hsignal:fset_mouse+`
|
||
// TRANSLATION MISSING
|
||
| ◽◽◾ | right | chat: fset buffer | Increase value for integer/color, set/append to value for other types. | `+hsignal:fset_mouse+`
|
||
// TRANSLATION MISSING
|
||
| ◽◽◾ | up / down | chat: fset buffer | Mark/unmark multiple options. | `+hsignal:fset_mouse+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[▲] | - | chat: script buffer | Move 5 lines up in script buffer. | `+/script up 5+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[▼] | - | chat: script buffer | Move 5 lines down in script buffer. | `+/script down 5+`
|
||
// TRANSLATION MISSING
|
||
| ◾◽◽ | - | chat: script buffer | Select line in script buffer. | `+/script go ${_chat_line_y}+`
|
||
// TRANSLATION MISSING
|
||
| ◽◽◾ | - | chat: script buffer | Install/remove script. | `+/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}+`
|
||
// TRANSLATION MISSING
|
||
| ◾◽◽ | up / left | buflist | Move buffer to a lower number. | Signal `+buflist_mouse+`.
|
||
// TRANSLATION MISSING
|
||
| ◾◽◽ | down / right | buflist | Move buffer to a higher number. | Signal `+buflist_mouse+`.
|
||
// TRANSLATION MISSING
|
||
| ◾◽◽ | - | buflist | Switch to buffer (previously visited buffer if the buffer is the current one). | Signal `+buflist_mouse+`.
|
||
// TRANSLATION MISSING
|
||
| ◽◽◾ | - | buflist | Switch to next visited buffer if the buffer is the current one. | Signal `+buflist_mouse+`.
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+▲] | - | buflist | Switch to previous buffer. | Signal `+buflist_mouse+`.
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+▼] | - | buflist | Switch to next buffer. | Signal `+buflist_mouse+`.
|
||
| ◾◽◽ | 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+`
|
||
| kbd:[▲] | - | ogni barra | Scorre la barra del -20%. | `+/bar scroll ${_bar_name} ${_window_number} -20%+`
|
||
| kbd:[▼] | - | 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)^ kbd:[▲] and kbd:[▼] are wheel up and down.
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_fset_buffer]]
|
||
==== Keys for fset buffer
|
||
|
||
// TRANSLATION MISSING
|
||
These keys and actions are used on the fset buffer (see <<fset_plugin,Fset plugin>>).
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="^.^3,^.^2,.^8,.^5",options="header"]
|
||
|===
|
||
| Key | Action ^(1)^ | Description | Command
|
||
| kbd:[↑] | | Move one line up. | `+/fset -up+`
|
||
| kbd:[↓] | | Move one line down. | `+/fset -down+`
|
||
| kbd:[PgUp] | | Move one page up. | `+/window page_up+`
|
||
| kbd:[PgDn] | | Move one page down. | `+/window page_down+`
|
||
| kbd:[Alt+Home] | `pass:[<<]` | Move to first line. | `+/fset -go 0+`
|
||
| kbd:[Alt+End] | `pass:[>>]` | Move to last line. | `+/fset -go end+`
|
||
| kbd:[F11] | `pass:[<]` | Scroll horizontally on the left. | `+/fset -left+`
|
||
| kbd:[F12] | `pass:[>]` | Scroll horizontally on the right. | `+/fset -right+`
|
||
| kbd:[Alt+Space] | `t` | Toggle boolean value. | `+/fset -toggle+`
|
||
| kbd:[Alt+-] | `-` | Subtract 1 from value for integer/color, set value for other types. | `+/fset -add -1+`
|
||
| kbd:[Alt++] | `+` | Add 1 to value for integer/color, append to value for other types. | `+/fset -add 1+`
|
||
| kbd:[Alt+f],
|
||
kbd:[Alt+r] | `r` | Reset value. | `+/fset -reset+`
|
||
| kbd:[Alt+f],
|
||
kbd:[Alt+u] | `u` | Unset value. | `+/fset -unset+`
|
||
| kbd:[Alt+Enter] | `s` | Set value. | `+/fset -set+`
|
||
| kbd:[Alt+f],
|
||
kbd:[Alt+n] | `n` | Set new value. | `+/fset -setnew+`
|
||
| kbd:[Alt+f],
|
||
kbd:[Alt+a] | `a` | Append to value. | `+/fset -append+`
|
||
| kbd:[Alt+,] | `,` | Mark/unmark option. | `+/fset -mark 1+`
|
||
| kbd:[Shift+↑] | | Move one line up and mark/unmark option. | `+/fset -up; /fset -mark+`
|
||
| kbd:[Shift+↓] | | Mark/unmark option and move one line down. | `+/fset -mark; /fset -down+`
|
||
| | `m:xxx` | Mark options displayed that are matching filter "xxx" (any filter on option or value is allowed, see <<command_fset_fset,fset command>>). |
|
||
| | `u:xxx` | Unmark options displayed that are matching filter "xxx" (any filter on option or value is allowed, see <<command_fset_fset,fset command>>). |
|
||
| kbd:[Ctrl+l] (`L`) | | Refresh options and whole screen. | `+/fset -refresh+`
|
||
| | `$` | Refresh options (keep marked options). |
|
||
| | `$$` | Refresh options (unmark all options). |
|
||
| kbd:[Alt+p] | | Toggle plugin description options (`pass:[plugins.desc.*]`). | `+/mute /set fset.look.show_plugins_desc toggle+`
|
||
| kbd:[Alt+v] | | Toggle help bar. | `+/bar toggle fset+`
|
||
| | `s:x,y` | Sort options by fields x,y (see option <<option_fset.look.sort,fset.look.sort>>). | `+/mute /set fset.look.sort x,y+`
|
||
| | `s:` | Reset sort to its default value (see option <<option_fset.look.sort,fset.look.sort>>). | `+/mute /unset fset.look.sort+`
|
||
| | `w:xxx` | Export options in file "xxx". | `+/fset -export xxx+`
|
||
| | `w-:xxx` | Export options in file "xxx" without help. | `+/fset -export -nohelp xxx+`
|
||
| | `w+:xxx` | Export options in file "xxx" with help. | `+/fset -export -help xxx+`
|
||
| kbd:[Ctrl+x] | `x` | Switch the format used to display options. | `+/fset -format+`
|
||
| | `q` | Close fset buffer. | `+/buffer close+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
^(1)^ The action must be entered as input on the command line, followed by kbd:[Enter].
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_script_buffer]]
|
||
==== Keys for script buffer
|
||
|
||
// TRANSLATION MISSING
|
||
These keys and actions are used on the script buffer (see <<scripts_plugins,Script plugin>>).
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="^.^3,^.^2,.^8,.^5",options="header"]
|
||
|===
|
||
| Key | Action ^(1)^ | Description | Command
|
||
| kbd:[↑] | | Move one line up. | `+/script up+`
|
||
| kbd:[↓] | | Move one line down. | `+/script down+`
|
||
| kbd:[PgUp] | | Move one page up. | `+/window page_up+`
|
||
| kbd:[PgDn] | | Move one page down. | `+/window page_down+`
|
||
| kbd:[Alt+i] | `i` | Install script. | `+/script install+`
|
||
| kbd:[Alt+r] | `r` | Remove script. | `+/script remove+`
|
||
| kbd:[Alt+l] (`L`) | `l` | Load script. | `+/script load+`
|
||
| kbd:[Alt+u] | `u` | Unload script. | `+/script unload+`
|
||
| kbd:[Alt+Shift+A] | `A` | Autoload script. | `+/script toggleautoload+`
|
||
| kbd:[Alt+h] | `h` | Hold/unhold script. | `+/script hold+`
|
||
| kbd:[Alt+v] | `v` | View script. | `+/script show+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
^(1)^ The action must be entered as input on the command line, followed by kbd:[Enter].
|
||
|
||
[[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
|
||
link:weechat_faq.it.html#mouse[FAQ di WeeChat / Mouse].
|
||
|
||
[[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="100%",cols="2m,3",options="header"]
|
||
|===
|
||
| Modificatore | Descrizione
|
||
| ctrl | Tasto kbd:[Ctrl]
|
||
| alt | Tasto kbd:[Alt]
|
||
| ctrl-alt | Tasto kbd:[Ctrl] + kbd:[Alt]
|
||
|===
|
||
|
||
Elenco di pulsanti/rotellina:
|
||
|
||
[width="100%",cols="2m,3",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="100%",cols="2m,3",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="100%",cols="2m,3",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.
|
||
|
||
// 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
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[secured_data_passphrase_on_startup]]
|
||
===== Passphrase on startup
|
||
|
||
When a passphrase is set, WeeChat will ask you to enter it on startup
|
||
(but not on `/upgrade`).
|
||
|
||
If you are using a password manager, you can run an external program to read
|
||
the passphrase instead of having to type it manually on WeeChat startup. +
|
||
For example with password-store (command `pass`):
|
||
|
||
----
|
||
/set sec.crypt.passphrase_command "/usr/bin/pass show weechat/passphrase"
|
||
----
|
||
|
||
The program may ask you unlock your GPG key or enter another passphrase to
|
||
read the secret. WeeChat will wait for the end of the command to read the
|
||
passphrase on the standard output (it must be on the first line without any
|
||
extra character). +
|
||
If the output contains no passphrase or if it is wrong, WeeChat will then ask
|
||
you to enter it.
|
||
|
||
[[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
|
||
[[commands_and_options]]
|
||
=== Commands and options
|
||
|
||
[[weechat_commands]]
|
||
==== Comandi di WeeChat
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=weechat_commands]
|
||
|
||
// TRANSLATION MISSING
|
||
[[sec_options]]
|
||
==== Secured data options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _sec.conf_:
|
||
|
||
// 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::includes/autogen_user_options.it.adoc[tag=sec_options]
|
||
|
||
[[weechat_options]]
|
||
==== Opzioni di WeeChat
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _weechat.conf_:
|
||
|
||
// 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.
|
||
// TRANSLATION MISSING
|
||
| plugin | /set weechat.plugin.* | Options on plugins.
|
||
// TRANSLATION MISSING
|
||
| signal | /set weechat.signal.* | Options on signals.
|
||
| 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::includes/autogen_user_options.it.adoc[tag=weechat_options]
|
||
|
||
[[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.
|
||
|
||
// TRANSLATION MISSING
|
||
When a plugin is unloaded, WeeChat removes:
|
||
|
||
* buffers
|
||
* configuration options (options are written in files)
|
||
* all hooks: commands, modifiers, process, etc.
|
||
* infos and infolists
|
||
* hdata
|
||
* bar items.
|
||
|
||
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.
|
||
// TRANSLATION MISSING
|
||
| buflist | Bar item with list of buffers.
|
||
| 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.
|
||
// TRANSLATION MISSING
|
||
| fset | Fast set of WeeChat and plugins options.
|
||
| 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.
|
||
| php | API per lo scripting in PHP.
|
||
| spell | Controllo ortografico per la riga di comando.
|
||
// 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 link:weechat_plugin_api.it.html[Riferimento API dei Plugin per WeeChat]
|
||
oppure link:weechat_scripting.it.html[Guida allo Scripting di WeeChat].
|
||
|
||
[[alias_plugin]]
|
||
=== Alias
|
||
|
||
Il plugin Alias consente di creare alias per i comandi (da WeeChat o altri
|
||
plugin).
|
||
|
||
// TRANSLATION MISSING
|
||
Some aliases are created by default, with name in upper case (to make them
|
||
different from standard commands); commands are not case sensitive in WeeChat,
|
||
so for example `/close` runs the alias `/CLOSE`.
|
||
|
||
// TRANSLATION MISSING
|
||
List of default aliases:
|
||
|
||
include::includes/autogen_user_default_aliases.it.adoc[tag=default_aliases]
|
||
|
||
[[alias_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=alias_commands]
|
||
|
||
[[alias_options]]
|
||
==== Options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _alias.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| cmd | <<command_alias_alias,/alias>> +
|
||
/set alias.cmd.* | Commands for aliases.
|
||
| completion | <<command_alias_alias,/alias>> +
|
||
/set alias.completion.* | Completions for aliases.
|
||
|===
|
||
|
||
[[buflist_plugin]]
|
||
=== Buflist
|
||
|
||
// TRANSLATION MISSING
|
||
Buflist plugin displays a list of buffers in a bar item called "buflist"
|
||
(two other bar items "buflist2" and "buflist3" are available as well). +
|
||
A default bar "buflist" is created on startup with this item.
|
||
|
||
[[buflist_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=buflist_commands]
|
||
|
||
[[buflist_options]]
|
||
==== Opzioni
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _buflist.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| format | /set buflist.format.* | Formats used to display list of buffers.
|
||
| look | /set buflist.look.* | Look and feel.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=buflist_options]
|
||
|
||
[[charset_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_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 link:weechat_faq.it.html#charset[Domande Frequenti di WeeChat / Charset].
|
||
|
||
[[charset_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=charset_commands]
|
||
|
||
[[charset_options]]
|
||
==== Opzioni
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _charset.conf_:
|
||
|
||
// 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::includes/autogen_user_options.it.adoc[tag=charset_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[exec_plugin]]
|
||
=== Exec
|
||
|
||
The `/exec` command lets you execute external commands inside WeeChat and
|
||
display the output locally, or send it to a buffer.
|
||
|
||
[[exec_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=exec_commands]
|
||
|
||
[[exec_options]]
|
||
==== Opzioni
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _exec.conf_:
|
||
|
||
[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::includes/autogen_user_options.it.adoc[tag=exec_options]
|
||
|
||
[[fifo_plugin]]
|
||
=== Fifo
|
||
|
||
È possibile controllare da remoto WeeChat, inviando comandi o del testo ad una
|
||
pipe FIFO (se l'opzione "fifo.file.enabled" è abilitata, e lo è per default).
|
||
|
||
// TRANSLATION MISSING
|
||
The FIFO pipe is located in WeeChat runtime directory and is called
|
||
_weechat_fifo_ by default.
|
||
|
||
La sintassi per i comandi/testo della pipe FIFO è una delle seguenti:
|
||
|
||
....
|
||
plugin.buffer *testo o comando qui
|
||
*testo o comando qui
|
||
....
|
||
|
||
Alcuni esempi:
|
||
|
||
// TRANSLATION MISSING
|
||
* Change nick on IRC server freenode to "newnick":
|
||
|
||
----
|
||
$ echo 'irc.server.freenode */nick newnick' >/run/user/1000/weechat/weechat_fifo
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
* Send a message on IRC #weechat channel:
|
||
|
||
----
|
||
$ echo 'irc.freenode.#weechat *hello!' >/run/user/1000/weechat/weechat_fifo
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
* Send a message on current buffer:
|
||
|
||
----
|
||
$ echo '*hello!' >/run/user/1000/weechat/weechat_fifo
|
||
----
|
||
|
||
* Inviare due comandi per scaricare/caricare gli script Python (è necessario
|
||
separarli con "\n"):
|
||
|
||
----
|
||
$ printf '%b' '*/python unload\n*/python autoload\n' >/run/user/1000/weechat/weechat_fifo
|
||
----
|
||
|
||
[[fifo_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=fifo_commands]
|
||
|
||
[[fifo_options]]
|
||
==== Opzioni
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _fifo.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| file | /set fifo.file.* | FIFO pipe control.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=fifo_options]
|
||
|
||
[[fset_plugin]]
|
||
=== Fset
|
||
|
||
// TRANSLATION MISSING
|
||
Fast Set plugin displays a list of options in a buffer, and helps to set WeeChat
|
||
and plugin options.
|
||
|
||
[[fset_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=fset_commands]
|
||
|
||
[[fset_options]]
|
||
==== Opzioni
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _fset.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| color | /set fset.color.* | Colors.
|
||
| format | /set fset.format.* | Formats used to display list of options.
|
||
| look | /set fset.look.* | Look and feel.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=fset_options]
|
||
|
||
[[irc_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_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à
|
||
|
||
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 ~/.config/weechat/ssl
|
||
$ wget -O ~/.config/weechat/ssl/CAs.pem https://www.spi-inc.org/ca/spi-cacert.crt
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
You must replace `~/.config/weechat` by the path to your WeeChat config directory
|
||
which can also be for example `~/.weechat`.
|
||
|
||
// 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 ~/.config/weechat/ssl
|
||
$ cd ~/.config/weechat/ssl
|
||
$ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
You must replace `~/.config/weechat` by the path to your WeeChat config directory
|
||
which can also be for example `~/.weechat`.
|
||
|
||
// TRANSLATION MISSING
|
||
* In WeeChat, with "oftc" server already added:
|
||
|
||
----
|
||
/set irc.server.oftc.ssl_cert "${weechat_config_dir}/ssl/nick.pem"
|
||
/connect oftc
|
||
/msg nickserv cert add
|
||
----
|
||
|
||
Per maggiori informazioni consultare https://www.oftc.net/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)
|
||
|
||
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 -out ~/.config/weechat/ecdsa.pem
|
||
----
|
||
|
||
[NOTE]
|
||
You must replace `~/.config/weechat` by the path to your WeeChat config directory
|
||
which can also be for example `~/.weechat`.
|
||
|
||
Get the public key (encoded as base64) with this command:
|
||
|
||
----
|
||
$ openssl ec -noout -text -conv_form compressed -in ~/.config/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 "${weechat_config_dir}/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 ajnvpgl6prmkb7yktvue6im5wiedlz2w32uhcwaamdiecdrfpwwgnlqd.onion
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
If you are using an old version of TOR (before 0.3.5) you should use the address
|
||
`freenodeok2gncmy.onion` instead.
|
||
|
||
Impostare il proxy per TOR:
|
||
|
||
----
|
||
/set irc.server.freenode-tor.proxy "tor"
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
Set SASL authentication with ECDSA-NIST256P-CHALLENGE (see the chapter
|
||
<<irc_sasl_ecdsa_nist256p_challenge,SASL ECDSA-NIST256P-CHALLENGE>> to generate
|
||
a private key):
|
||
|
||
----
|
||
/set irc.server.freenode-tor.sasl_mechanism ecdsa-nist256p-challenge
|
||
/set irc.server.freenode-tor.sasl_username "your_nickname"
|
||
/set irc.server.freenode-tor.sasl_key "${weechat_config_dir}/ecdsa.pem"
|
||
----
|
||
|
||
E alla fine, connettersi al server:
|
||
|
||
----
|
||
/connect freenode-tor
|
||
----
|
||
|
||
Per maggiori informazioni su Freenode e TOR:
|
||
https://freenode.net/kb/answer/chat#accessing-freenode-via-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="100%",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
|
||
----
|
||
|
||
[[irc_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=irc_commands]
|
||
|
||
[[irc_options]]
|
||
==== Opzioni
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _irc.conf_:
|
||
|
||
// 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::includes/autogen_user_options.it.adoc[tag=irc_options]
|
||
|
||
[[logger_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_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
|
||
|
||
// TRANSLATION MISSING
|
||
È possibile definire un mask per il nome del file di ogni buffer, ed utilizzare
|
||
le variabili buffer locali per costruire il nome del file. To see available
|
||
local variables for current buffer:
|
||
|
||
----
|
||
/buffer listvar
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
Masks will be matched on options in descending order of specificity on
|
||
`logger.mask.$plugin.*`, with `logger.file.mask` as fallback option.
|
||
|
||
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:
|
||
|
||
....
|
||
~/.local/share/weechat
|
||
└── logs
|
||
├── 2010
|
||
│ ├── 11
|
||
│ │ ├── irc.server.freenode.weechatlog
|
||
│ │ └── irc.freenode.#weechat.weechatlog
|
||
│ └── 12
|
||
│ ├── irc.server.freenode.weechatlog
|
||
│ └── irc.freenode.#weechat.weechatlog
|
||
├── 2011
|
||
│ ├── 01
|
||
│ │ ├── irc.server.freenode.weechatlog
|
||
│ │ └── irc.freenode.#weechat.weechatlog
|
||
│ ├── 02
|
||
...
|
||
....
|
||
|
||
[[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:
|
||
|
||
....
|
||
~/.local/share/weechat
|
||
└── logs
|
||
└── irc
|
||
├── freenode
|
||
│ ├── freenode.weechatlog
|
||
│ ├── #weechat.weechatlog
|
||
│ └── #mychan.weechatlog
|
||
├── oftc
|
||
│ ├── oftc.weechatlog
|
||
│ ├── #chan1.weechatlog
|
||
│ └── #chan2.weechatlog
|
||
...
|
||
....
|
||
|
||
[[logger_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=logger_commands]
|
||
|
||
[[logger_options]]
|
||
==== Opzioni
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _logger.conf_:
|
||
|
||
// 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::includes/autogen_user_options.it.adoc[tag=logger_options]
|
||
|
||
[[relay_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:
|
||
** Glowing Bear (HTML5): https://www.glowing-bear.org/
|
||
** QWeeChat (Qt): https://weechat.org/download
|
||
** WeeChat-Android (Android): https://github.com/ubergeek42/weechat-android
|
||
** weechat.el (Emacs): https://github.com/the-kenny/weechat.el
|
||
** WeeCloud (JavaScript): https://github.com/eirikb/weecloud
|
||
|
||
// 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.
|
||
|
||
// TRANSLATION MISSING
|
||
[[relay_totp]]
|
||
==== TOTP
|
||
|
||
TOTP (Time-based One-Time Password) can be used as secondary authentication
|
||
factor for _weechat_ protocol, in addition to the password.
|
||
|
||
This is optional and increases the security level.
|
||
|
||
One-time passwords can be generated with applications, for example:
|
||
|
||
* FreeOTP:
|
||
https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp[Android],
|
||
https://itunes.apple.com/fr/app/freeotp-authenticator/id872559395[iOS]
|
||
(https://freeotp.github.io/[website])
|
||
* Google Authenticator:
|
||
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2[Android],
|
||
https://itunes.apple.com/fr/app/google-authenticator/id388497605[iOS]
|
||
|
||
The TOTP secret must be set in WeeChat and the application used to generate
|
||
one-time passwords.
|
||
|
||
It must be a string encoded in base32, with only letters and digits from 2 to 7,
|
||
for example:
|
||
|
||
----
|
||
/set relay.network.totp_secret "secretpasswordbase32"
|
||
----
|
||
|
||
[[relay_ssl]]
|
||
==== SSL
|
||
|
||
È possibile usare SSL creando un certificato e una chiave privata, e usando il
|
||
prefisso "ssl." nel nome del protocollo.
|
||
|
||
// TRANSLATION MISSING
|
||
The default path to certificate/key is defined by option
|
||
<<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 ~/.config/weechat/ssl
|
||
$ cd ~/.config/weechat/ssl
|
||
$ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
You must replace `~/.config/weechat` by the path to your WeeChat config directory
|
||
which can also be for example `~/.weechat`.
|
||
|
||
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 (see example below):
|
||
|
||
----
|
||
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).
|
||
|
||
For example if you use WeeChat as IRC client of the relay, with a server called
|
||
"relay" and the relay password "secret", you can setup the password with this
|
||
command:
|
||
|
||
----
|
||
/set irc.server.relay.password "freenode:secret"
|
||
----
|
||
|
||
[[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 in <<relay_plugin>>.
|
||
|
||
[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 (https://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).
|
||
|
||
// TRANSLATION MISSING
|
||
[[relay_unix_socket]]
|
||
==== UNIX domain sockets
|
||
|
||
Using the protocol option "unix" with the `/relay add` command, you can listen
|
||
using any protocol on a UNIX domain socket at a given path. For example:
|
||
|
||
----
|
||
/relay add unix.weechat ${weechat_runtime_dir}/relay_socket
|
||
----
|
||
|
||
This allows clients to connect using the weechat protocol to
|
||
_/run/user/1000/weechat/relay_socket_. This is particularly useful to allow
|
||
SSH forwarding for relay clients, when other ports cannot be opened.
|
||
|
||
Using OpenSSH:
|
||
|
||
----
|
||
$ ssh -L 9000:.weechat/relay_socket user@hostname
|
||
----
|
||
|
||
This redirects local relay clients connecting on port 9000 to the WeeChat
|
||
instance running on "hostname".
|
||
|
||
[[relay_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=relay_commands]
|
||
|
||
[[relay_options]]
|
||
==== Opzioni
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _relay.conf_:
|
||
|
||
// 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::includes/autogen_user_options.it.adoc[tag=relay_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[scripts_plugins]]
|
||
=== Scripts
|
||
|
||
WeeChat fornisce 8 plugin per lo scripting: Python, Perl, Ruby, Lua, Tcl, Guile
|
||
(scheme), JavaScript, PHP.
|
||
Questi plugin possono caricare, eseguire e scaricare gli script per questi
|
||
linguaggi.
|
||
|
||
// TRANSLATION MISSING
|
||
Another plugin called "script" is a script 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 link:weechat_scripting.it.html[Guida allo Scripting di WeeChat].
|
||
|
||
[[script_commands]]
|
||
==== Comandi Script
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=script_commands]
|
||
|
||
[[python_commands]]
|
||
==== Comandi Python
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=python_commands]
|
||
|
||
[[perl_commands]]
|
||
==== Comandi Perl
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=perl_commands]
|
||
|
||
[[ruby_commands]]
|
||
==== Comandi Ruby
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=ruby_commands]
|
||
|
||
[[lua_commands]]
|
||
==== Comandi Lua
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=lua_commands]
|
||
|
||
[[tcl_commands]]
|
||
==== Comandi Tcl
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=tcl_commands]
|
||
|
||
[[guile_commands]]
|
||
==== Comandi Guile
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=guile_commands]
|
||
|
||
[[javascript_commands]]
|
||
==== Comandi JavaScript
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=javascript_commands]
|
||
|
||
[[php_commands]]
|
||
==== Comandi PHP
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=php_commands]
|
||
|
||
// TRANSLATION MISSING
|
||
[[script_options]]
|
||
==== Script options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _script.conf_:
|
||
|
||
// 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::includes/autogen_user_options.it.adoc[tag=script_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[python_options]]
|
||
==== Python options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _python.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| look | /set python.look.* | Look and feel.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=python_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[perl_options]]
|
||
==== Perl options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _perl.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| look | /set perl.look.* | Look and feel.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=perl_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[ruby_options]]
|
||
==== Ruby options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _ruby.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| look | /set ruby.look.* | Look and feel.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=ruby_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[lua_options]]
|
||
==== Lua options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _lua.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| look | /set lua.look.* | Look and feel.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=lua_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[tcl_options]]
|
||
==== Tcl options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _tcl.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| look | /set tcl.look.* | Look and feel.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=tcl_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[guile_options]]
|
||
==== Guile options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _guile.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| look | /set guile.look.* | Look and feel.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=guile_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[javascript_options]]
|
||
==== Javascript options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _javascript.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| look | /set javascript.look.* | Look and feel.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=javascript_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[php_options]]
|
||
==== PHP options
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _php.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| look | /set php.look.* | Look and feel.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=php_options]
|
||
|
||
[[spell_plugin]]
|
||
=== Spell
|
||
|
||
Il plugin Spell consente di verificare l'ortografia nella riga di comando.
|
||
È possibile utilizzare più lingue per buffer.
|
||
|
||
// TRANSLATION MISSING
|
||
Spell checking is disabled by default and can be toggled with key kbd:[Alt+s].
|
||
|
||
// TRANSLATION MISSING
|
||
[[spell_dictionaries]]
|
||
==== Dictionaries
|
||
|
||
Before using spell checking, dictionaries must be defined, either globally or
|
||
specific to buffers.
|
||
|
||
Multiple dictionaries can be used at same time: WeeChat will check words in all
|
||
dictionaries.
|
||
|
||
For example to use English and French:
|
||
|
||
----
|
||
/set spell.check.default_dict "en,fr"
|
||
----
|
||
|
||
It is possible to use a different dictionary on a specific buffer, for example
|
||
on a German channel:
|
||
|
||
----
|
||
/spell setdict de
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
You can also specify a dictionary for a group of buffers, for example English
|
||
for all channels on freenode IRC server:
|
||
|
||
----
|
||
/set spell.dict.irc.freenode en
|
||
----
|
||
|
||
For more information, see the command <<command_spell_spell,/spell>>.
|
||
|
||
[[spell_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 spell.option.ignore-case "true"
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[spell_suggestions]]
|
||
==== Suggestions
|
||
|
||
Suggestions are displayed in a bar item called "spell_suggest". The number of
|
||
suggestions is set in option _spell.check.suggestions_.
|
||
|
||
To enable suggestions you must set option _spell.check.suggestions_ to an
|
||
integer ≥ 0 and add the bar item "spell_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 █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[spell_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=spell_commands]
|
||
|
||
[[spell_options]]
|
||
==== Opzioni
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _spell.conf_:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| color | /set spell.color.* | Colors.
|
||
| check | /set spell.check.* | Options to control spell checking.
|
||
| dict | <<command_spell_spell,/spell setdict>> +
|
||
/set spell.dict.* | Dictionaries used by buffer (options can be added/removed in section).
|
||
| look | /set spell.look.* | Look and feel.
|
||
| option | /set spell.option.* | <<spell_speller_options,Opzioni ortografiche>> (options can be added/removed in section).
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::includes/autogen_user_options.it.adoc[tag=spell_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[trigger_plugin]]
|
||
=== Trigger
|
||
|
||
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
|
||
link:weechat_plugin_api.it.html#hooks[WeeChat plugin API reference / Hooks].
|
||
|
||
[[trigger_default]]
|
||
==== Default triggers
|
||
|
||
WeeChat creates 5 triggers by default, which can be disabled, updated or
|
||
deleted:
|
||
|
||
* a _beep_ trigger for notifications
|
||
* four other triggers to hide passwords on screen
|
||
|
||
List of default triggers:
|
||
|
||
[width="100%",cols="5m,3,22",options="header"]
|
||
|===
|
||
| Name | Hook | Description
|
||
|
||
| beep | print |
|
||
Beep on highlight/private message.
|
||
|
||
| cmd_pass | modifier |
|
||
Hide password in commands:
|
||
`pass:[/msg nickserv id\|identify\|set password\|ghost\|release\|regain\|recover]`,
|
||
`pass:[/oper]`,
|
||
`pass:[/quote pass]`,
|
||
`pass:[/secure passphrase\|decrypt\|set]`.
|
||
|
||
| cmd_pass_register | modifier |
|
||
Hide password in command `pass:[/msg nickserv register]`.
|
||
|
||
| msg_auth | modifier |
|
||
Hide password in IRC auth message displayed (message received from server
|
||
after the user issued the command).
|
||
|
||
| server_pass | modifier |
|
||
Hide server password in commands `/server` and `/connect`.
|
||
|===
|
||
|
||
[[trigger_anatomy]]
|
||
==== Anatomy of a trigger
|
||
|
||
A trigger has the following options (names are
|
||
`trigger.trigger.<name>.<option>`):
|
||
|
||
[width="100%",cols="2m,3,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+`, `+line+`, `+print+`, `+command+`,
|
||
`+command_run+`, `+timer+`, `+config+`, `+focus+`, `+info+`, `+info_hashtable+` |
|
||
The hook used in trigger. For more information, see
|
||
link:weechat_plugin_api.it.html#hooks[WeeChat plugin API reference / 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).
|
||
|
||
| post_action | `none`, `disable`, `delete` |
|
||
Action to take on the trigger after execution (default is `none` 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_displayed} && (${tg_highlight} || ${tg_msg_pv})"
|
||
trigger.trigger.beep.regex = ""
|
||
trigger.trigger.beep.command = "/print -beep"
|
||
trigger.trigger.beep.return_code = ok
|
||
trigger.trigger.beep.post_action = none
|
||
----
|
||
|
||
[[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_, _line_, _focus_,
|
||
_info_ and _info_hashtable_)
|
||
. perform post action (if different from `none`).
|
||
|
||
[[trigger_hook_arguments]]
|
||
==== Hook arguments
|
||
|
||
The arguments depend on the hook used. They are separated by semicolons.
|
||
|
||
[width="100%",cols="2,6,7,2",options="header"]
|
||
|===
|
||
| Hook | Arguments | Examples | Documentation (API)
|
||
|
||
| signal |
|
||
1. signal name (priority allowed) (required) +
|
||
2. signal name (priority allowed) +
|
||
3. ... |
|
||
`+*,irc_in_privmsg+` +
|
||
`+*,irc_in_privmsg;*,irc_in_notice+` +
|
||
`+signal_sigwinch+` |
|
||
link:weechat_plugin_api.it.html#_hook_signal[hook_signal]
|
||
|
||
| hsignal |
|
||
1. signal name (priority allowed) (required) +
|
||
2. signal name (priority allowed) +
|
||
3. ... |
|
||
`+nicklist_nick_added+` |
|
||
link:weechat_plugin_api.it.html#_hook_hsignal[hook_hsignal]
|
||
|
||
| modifier |
|
||
1. modifier name (priority allowed) (required) +
|
||
2. modifier name (priority allowed) +
|
||
3. ... |
|
||
`+weechat_print+` +
|
||
`+5000\|input_text_display;5000\|history_add+` |
|
||
link:weechat_plugin_api.it.html#_hook_modifier[hook_modifier]
|
||
|
||
| line |
|
||
1. buffer type +
|
||
2. buffer name +
|
||
3. tags |
|
||
`+formatted+` +
|
||
`+free+` +
|
||
`+*;irc.freenode.*+` +
|
||
`+*;irc.freenode.#weechat+` +
|
||
`+formatted;irc.freenode.#weechat;irc_notice+` |
|
||
link:weechat_plugin_api.en.html#_hook_line[hook_line]
|
||
|
||
| print |
|
||
1. buffer name +
|
||
2. tags +
|
||
3. message +
|
||
4. strip colors (0/1) |
|
||
`+irc.freenode.*+` +
|
||
`+irc.freenode.#weechat+` +
|
||
`+irc.freenode.#weechat;irc_notice+` +
|
||
`+*;;;1+` |
|
||
link:weechat_plugin_api.it.html#_hook_print[hook_print]
|
||
|
||
| command |
|
||
1. command name (priority allowed) (required) +
|
||
2. description (evaluated, see command <<command_weechat_eval,/eval>>) +
|
||
3. arguments (evaluated, see command <<command_weechat_eval,/eval>>) +
|
||
4. description of arguments (evaluated, see command <<command_weechat_eval,/eval>>) +
|
||
5. completion (evaluated, see command <<command_weechat_eval,/eval>>) |
|
||
`+test+` +
|
||
`+5000\|test+` +
|
||
`+test;test command;arg1 arg2;arg1: description 1${\n}arg2: description 2+` |
|
||
link:weechat_plugin_api.it.html#_hook_command[hook_command]
|
||
|
||
| command_run |
|
||
1. command (priority allowed) (required) +
|
||
2. command (priority allowed) +
|
||
3. ... |
|
||
`+/cmd arguments+` |
|
||
link:weechat_plugin_api.it.html#_hook_command_run[hook_command_run]
|
||
|
||
| 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+` |
|
||
link:weechat_plugin_api.it.html#_hook_timer[hook_timer]
|
||
|
||
| config |
|
||
1. option name (priority allowed) (required) +
|
||
2. option name (priority allowed) +
|
||
3. ... |
|
||
`+weechat.look.*+` |
|
||
link:weechat_plugin_api.it.html#_hook_config[hook_config]
|
||
|
||
| focus |
|
||
1. area name (priority allowed) (required) +
|
||
2. area name (priority allowed) +
|
||
3. ... |
|
||
`+buffer_nicklist+` |
|
||
link:weechat_plugin_api.it.html#_hook_focus[hook_focus]
|
||
|
||
| info |
|
||
1. info name (priority allowed) (required) +
|
||
2. info name (priority allowed) +
|
||
3. ... |
|
||
`+my_info+` |
|
||
link:weechat_plugin_api.it.html#_hook_info[hook_info]
|
||
|
||
| info_hashtable |
|
||
1. info name (priority allowed) (required) +
|
||
2. info name (priority allowed) +
|
||
3. ... |
|
||
`+my_info+` |
|
||
link:weechat_plugin_api.it.html#_hook_info_hashtable[hook_info_hashtable]
|
||
|===
|
||
|
||
[[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_displayed} && (${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).
|
||
|
||
// TRANSLATION MISSING
|
||
If _var_ does not exist in the hashtable, it is created automatically with an
|
||
empty value. This allows to create custom temporary variables.
|
||
|
||
If _var_ is not specified, the default variable is used, it depends on hook
|
||
type:
|
||
|
||
[width="100%",cols="2,3,7",options="header"]
|
||
|===
|
||
| Hook | Default variable | Update allowed ^(1)^
|
||
| signal | tg_signal_data |
|
||
| hsignal | |
|
||
| modifier | tg_string | tg_string
|
||
| line | message | buffer, buffer_name, y, date, date_printed, str_time, tags, notify_level, highlight, prefix, message
|
||
| print | tg_message |
|
||
| command | tg_argv_eol1 |
|
||
| command_run | tg_command |
|
||
| timer | tg_remaining_calls |
|
||
| config | tg_value |
|
||
| focus | |
|
||
| info | tg_info | tg_info
|
||
| info_hashtable | | all variables received in hashtable
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ All variables can be updated in the trigger, but only these variables
|
||
have an effect on the value returned by the trigger and used by WeeChat.
|
||
|
||
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 `+*+`:
|
||
|
||
----
|
||
/\*([^ ]+)\*/*${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=)([^ ]+)(.*)==${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
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
All callbacks set following variables in hashtable:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Type | Description
|
||
| tg_trigger_name | string | Name of trigger.
|
||
|===
|
||
|
||
[[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
|
||
| irc_server | pointer | Pointer to IRC server (variables in hdata of type "irc_server" can be used, like `+${irc_server.name}+`).
|
||
| irc_channel | pointer | Pointer to IRC channel (variables in hdata of type "irc_channel" can be used, like `+${irc_channel.name}+`).
|
||
| 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).
|
||
| pos_command | string | The index of _command_ in message ("-1" if _command_ was not found).
|
||
| pos_arguments | string | The index of _arguments_ in message ("-1" if _arguments_ was not found).
|
||
| pos_channel | string | The index of _channel_ in message ("-1" if _channel_ was not found).
|
||
| 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_line]]
|
||
===== Line
|
||
|
||
The "line" callback sets following variables in hashtable:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Type | Description
|
||
| buffer | pointer | Buffer.
|
||
| buffer_name | string | Buffer name.
|
||
| buffer_type | string | Buffer type ("formatted" or "free").
|
||
| y | string | Line number for a buffer with free content (≥ 0), -1 for a buffer with formatted content.
|
||
| date | string | Line date (timestamp).
|
||
| date_printed | string | Date when line was displayed (timestamp).
|
||
| str_time | string | Date for display. It may contain color codes.
|
||
| tags | string | Tags of message (with comma added at beginning/end of string).
|
||
| displayed | string | "1" if displayed, "0" if line filtered.
|
||
// TRANSLATION MISSING
|
||
| notify_level | string | "-1" = no notify, "0" = low level, "1" = message, "2" = private message, "3" = highlight
|
||
| highlight | string | "1" if highlight, otherwise "0".
|
||
| prefix | string | Prefix.
|
||
| tg_prefix_nocolor | string | Prefix without color codes.
|
||
| message | string | Message.
|
||
| tg_message_nocolor | string | Message without color codes.
|
||
|===
|
||
|
||
Variables set using tags in message:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Type | Description
|
||
| 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").
|
||
| 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_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:
|
||
|
||
[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").
|
||
| 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_argc | string | The number of arguments (the command itself counts for one).
|
||
| tg_argvN | string | Argument #N (`+tg_argv0+` is the command itself, the others are command arguments).
|
||
| tg_argv_eolN | string | From argument #N until end of arguments (`+tg_argv_eol0+` includes the command itself).
|
||
// TRANSLATION MISSING
|
||
| tg_shell_argc | string | The number of arguments with a split like the shell does (the command itself counts for one).
|
||
// TRANSLATION MISSING
|
||
| tg_shell_argvN | string | Argument #N with a split like the shell does (`+tg_shell_argv0+` is the command itself, the others are command 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_data_info]]
|
||
===== Info
|
||
|
||
The "info" callback sets following variables in hashtable:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Type | Description
|
||
| tg_info_name | string | Name of info.
|
||
| tg_arguments | string | Arguments.
|
||
| tg_info | string | Empty string (the info to return).
|
||
|===
|
||
|
||
[[trigger_data_info_hashtable]]
|
||
===== Info_hashtable
|
||
|
||
The "info_hashtable" callback sets following variables in hashtable:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Type | Description
|
||
| tg_info_name | string | Name of info.
|
||
|===
|
||
|
||
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}" "==[a-zA-Z0-9_]+://[^ ]+==${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).
|
||
|
||
[[trigger_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=trigger_commands]
|
||
|
||
[[trigger_options]]
|
||
==== Opzioni
|
||
|
||
Sections in file _trigger.conf_:
|
||
|
||
[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::includes/autogen_user_options.it.adoc[tag=trigger_options]
|
||
|
||
[[xfer_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_commands]]
|
||
==== Comandi
|
||
|
||
include::includes/autogen_user_commands.it.adoc[tag=xfer_commands]
|
||
|
||
[[xfer_options]]
|
||
==== Opzioni
|
||
|
||
// TRANSLATION MISSING
|
||
Sections in file _xfer.conf_:
|
||
|
||
// 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::includes/autogen_user_options.it.adoc[tag=xfer_options]
|
||
|
||
[[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)
|
||
** _#weechat-fi_ (Finlandese)
|
||
|
||
// TRANSLATION MISSING
|
||
For other ways of support, see: https://weechat.org/about/support
|