mirror of
https://github.com/weechat/weechat.git
synced 2026-06-12 14:14:48 +02:00
d4ed290a37
Theme files saved with /theme save and automatic backups now always contain every themable option (full snapshot), so a theme file is self-contained and round-trips exactly regardless of the current configuration. The diff-only mode and the "-full" argument of /theme save are removed.
6638 lines
238 KiB
Plaintext
6638 lines
238 KiB
Plaintext
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||
// SPDX-FileCopyrightText: 2009-2012 Marco Paolone <marcopaolone@gmail.com>
|
||
//
|
||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
||
= Guida per l'Utente di WeeChat
|
||
:author: Sébastien Helleu
|
||
:email: flashcode@flashtux.org
|
||
:lang: it
|
||
include::includes/attributes-it.adoc[]
|
||
|
||
Questo manuale documenta il client di chat WeeChat, ed è parte
|
||
del programma stesso.
|
||
|
||
// TRANSLATION MISSING
|
||
Latest version of this document can be found on
|
||
https://weechat.org/doc/[this page ^↗^^].
|
||
|
||
[[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 TLS, IPv6, proxy)
|
||
* piccolo, veloce e leggero
|
||
* personalizzabile ed estensibile con plugin e script
|
||
* conforme alle RFC di IRC
|
||
https://datatracker.ietf.org/doc/html/rfc1459[1459 ^↗^^],
|
||
https://datatracker.ietf.org/doc/html/rfc2810[2810 ^↗^^],
|
||
https://datatracker.ietf.org/doc/html/rfc2811[2811 ^↗^^],
|
||
https://datatracker.ietf.org/doc/html/rfc2812[2812 ^↗^^],
|
||
https://datatracker.ietf.org/doc/html/rfc2813[2813 ^↗^^] e
|
||
https://datatracker.ietf.org/doc/html/rfc7194[7194 ^↗^^]
|
||
// TRANSLATION MISSING
|
||
* IRC proxy and relay for WeeChat and remote interfaces
|
||
* multi-piattaforma (GNU/Linux, *BSD, macOS, Windows ed altre)
|
||
* 100% GPL, software libero
|
||
|
||
// TRANSLATION MISSING
|
||
The list of all features can be found on
|
||
https://weechat.org/about/features/[this page ^↗^^].
|
||
|
||
[[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/[Debian repositories ^↗^^]
|
||
* Fedora Core: `dnf install weechat`
|
||
* FreeBSD: `pkg 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`
|
||
// TRANSLATION MISSING
|
||
* macOS (with https://brew.sh/[Homebrew ^↗^^]): `brew install weechat`
|
||
(for help: `brew info weechat`)
|
||
|
||
Potrebbero risultare utili alcuni pacchetti addizionali, come
|
||
weechat-plugins.
|
||
|
||
Per altre distribuzioni, consultare il manuale per le istruzioni di
|
||
installazione.
|
||
|
||
// TRANSLATION MISSING
|
||
[[containers]]
|
||
=== Containers
|
||
|
||
// TRANSLATION MISSING
|
||
Containers with WeeChat can be built or installed directly from the
|
||
https://hub.docker.com/r/weechat/weechat[Docker Hub ^↗^^]. +
|
||
For more information, see the README in the
|
||
https://github.com/weechat/weechat-container[weechat-container ^↗^^]
|
||
repository.
|
||
|
||
[[source_package]]
|
||
=== Sorgenti
|
||
|
||
// TRANSLATION MISSING
|
||
WeeChat must be built with CMake.
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
On macOS, you can use https://brew.sh/[Homebrew ^↗^^]:
|
||
`brew install --build-from-source weechat`.
|
||
|
||
[[dependencies]]
|
||
==== Dipendenze
|
||
|
||
// TRANSLATION MISSING
|
||
The following table shows the list of packages that are *required* to build
|
||
WeeChat:
|
||
|
||
[width="100%",cols="5,^3,.^15",options="header"]
|
||
|===
|
||
// TRANSLATION MISSING
|
||
| Pacchetto ^(1)^ | Versione | Features
|
||
|
||
// TRANSLATION MISSING
|
||
| C compiler (gcc / clang) |
|
||
| Compile C sources.
|
||
|
||
// TRANSLATION MISSING
|
||
| cmake | ≥ 3.0
|
||
| Build.
|
||
|
||
// TRANSLATION MISSING
|
||
| pkgconf / pkg-config |
|
||
| Detect installed libraries.
|
||
|
||
| libncurses-dev |
|
||
| Interfaccia ncurses.
|
||
|
||
| libcurl4-gnutls-dev |
|
||
| Trasferimento URL.
|
||
|
||
// TRANSLATION MISSING
|
||
| libgcrypt20-dev |
|
||
| Secured data, IRC SASL authentication.
|
||
|
||
// TRANSLATION MISSING
|
||
| libgnutls28-dev | ≥ 2.2.0 ^(2)^
|
||
| IRC plugin: support of TLS connections, IRC SASL authentication (ECDSA-NIST256P-CHALLENGE). +
|
||
Relay plugin: support of TLS connections.
|
||
|
||
// TRANSLATION MISSING
|
||
| zlib1g-dev |
|
||
| Logger plugin: compression of rotated log files (gzip). +
|
||
Relay plugin: compression of messages (WeeChat -> client) with https://zlib.net/[zlib ^↗^^]
|
||
(api and weechat protocols). +
|
||
Script plugin: read of repository index file (gzip).
|
||
|===
|
||
|
||
[NOTE]
|
||
// TRANSLATION MISSING
|
||
^(1)^ Name comes from the Debian GNU/Linux Bookworm distribution, version and
|
||
name can be different in other distributions. +
|
||
// TRANSLATION MISSING
|
||
^(2)^ 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"]
|
||
|===
|
||
// TRANSLATION MISSING
|
||
| Pacchetto ^(1)^ | Versione | Features
|
||
|
||
// TRANSLATION MISSING
|
||
| {cpp} compiler (pass:[g++ / clang++]) |
|
||
| Build and run tests, plugin JavaScript.
|
||
|
||
| gettext |
|
||
| Internazionalizzazione (traduzione dei messaggi; la lingua base è l'inglese).
|
||
|
||
| ca-certificates |
|
||
| Certificati per le connessioni TLS.
|
||
|
||
// TRANSLATION MISSING
|
||
| libcjson-dev |
|
||
| Relay plugin: protocol "api" (HTTP REST API).
|
||
|
||
// TRANSLATION MISSING
|
||
| libzstd-dev | ≥ 0.8.1
|
||
| Logger plugin: compression of rotated log files (zstandard). +
|
||
Relay plugin: compression of messages (WeeChat -> client) with https://facebook.github.io/zstd/[Zstandard ^↗^^]
|
||
(api and weechat protocols).
|
||
|
||
| libaspell-dev / libenchant-dev |
|
||
| Plugin spell.
|
||
|
||
| python3-dev | ≥ 3.0
|
||
| Plugin python.
|
||
|
||
| libperl-dev |
|
||
| Plugin perl.
|
||
|
||
| ruby3.1, ruby3.1-dev | ≥ 1.9.1
|
||
| Plugin ruby.
|
||
|
||
| liblua5.4-dev |
|
||
| Plugin lua.
|
||
|
||
| tcl-dev | ≥ 8.5
|
||
| Plugin tcl.
|
||
|
||
| guile-3.0-dev | ≥ 2.0
|
||
| Plugin guile (scheme).
|
||
|
||
| libv8-dev | ≤ 3.24.3
|
||
| Plugin javascript.
|
||
|
||
| php-dev | ≥ 7.0
|
||
| Plugin php.
|
||
|
||
| libphp-embed | ≥ 7.0
|
||
| Plugin php.
|
||
|
||
| libxml2-dev |
|
||
| Plugin php.
|
||
|
||
// TRANSLATION MISSING
|
||
| libargon2-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
|
||
| python3-pygments, ruby-pygments.rb |
|
||
| Build documentation.
|
||
|
||
// TRANSLATION MISSING
|
||
| libcpputest-dev | ≥ 3.4
|
||
| Build and run tests.
|
||
|===
|
||
|
||
[NOTE]
|
||
// TRANSLATION MISSING
|
||
^(1)^ Name comes from the Debian GNU/Linux Bookworm distribution, version and
|
||
name can be different in other distributions.
|
||
|
||
// 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:
|
||
|
||
[source,shell]
|
||
----
|
||
sudo apt-get build-dep weechat
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[build]]
|
||
==== Build
|
||
|
||
* Installazione nelle directory di sistema (richiede privilegi di _root_):
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir build
|
||
cd build
|
||
cmake ..
|
||
make
|
||
sudo make install
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
* Installazione in una directory personalizzata (for example your home):
|
||
|
||
[source,shell]
|
||
----
|
||
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 available options:
|
||
|
||
// TRANSLATION MISSING
|
||
[width="100%",cols="3m,3,3m,10",options="header"]
|
||
|===
|
||
| Option | Values | Default value | Description
|
||
|
||
| CMAKE_BUILD_TYPE | `Debug`, `Release`, `RelWithDebInfo`, `MinSizeRel` |
|
||
| The type of build: `Debug` (or `RelWithDebInfo`) is recommended if you are
|
||
running development version of WeeChat.
|
||
|
||
| CMAKE_INSTALL_PREFIX | directory | /usr/local
|
||
| The directory where WeeChat will be installed.
|
||
|
||
| WEECHAT_HOME | directory | (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.
|
||
|
||
| ENABLE_ALIAS | `ON`, `OFF` | ON
|
||
| Compile <<command_aliases,Alias plugin>>.
|
||
|
||
| ENABLE_BUFLIST | `ON`, `OFF` | ON
|
||
| Compile <<buflist,Buflist plugin>>.
|
||
|
||
| ENABLE_CHARSET | `ON`, `OFF` | ON
|
||
| Compile <<charset,Charset plugin>>.
|
||
|
||
// TRANSLATION MISSING
|
||
| ENABLE_CJSON | `ON`, `OFF` | ON
|
||
| Support of JSON with https://github.com/DaveGamble/cJSON[cJSON ^↗^^] library.
|
||
|
||
| ENABLE_MAN | `ON`, `OFF` | OFF
|
||
| Build man page.
|
||
|
||
| ENABLE_DOC | `ON`, `OFF` | OFF
|
||
| Build HTML documentation.
|
||
|
||
| ENABLE_DOC_INCOMPLETE | `ON`, `OFF` | OFF
|
||
| Force build of documentation even if some plugins are not compiled
|
||
(not recommended: docs will be incomplete).
|
||
|
||
| ENABLE_ENCHANT | `ON`, `OFF` | OFF
|
||
| Compile <<spell_checking,Spell plugin>> with Enchant.
|
||
|
||
| ENABLE_EXEC | `ON`, `OFF` | ON
|
||
| Compile <<external_commands,Exec plugin>>.
|
||
|
||
| ENABLE_FIFO | `ON`, `OFF` | ON
|
||
| Compile <<fifo_pipe,Fifo plugin>>.
|
||
|
||
| ENABLE_FSET | `ON`, `OFF` | ON
|
||
| Compile <<fset,Fset plugin>>.
|
||
|
||
| ENABLE_GUILE | `ON`, `OFF` | ON
|
||
| Compile <<scripting_plugins,Guile plugin>> (Scheme).
|
||
|
||
| ENABLE_HEADLESS | `ON`, `OFF` | ON
|
||
| Compile headless binary.
|
||
|
||
| ENABLE_IRC | `ON`, `OFF` | ON
|
||
| Compile <<irc,IRC plugin>>.
|
||
|
||
| ENABLE_JAVASCRIPT | `ON`, `OFF` | OFF
|
||
| Compile <<scripting_plugins,JavaScript plugin>>.
|
||
|
||
| ENABLE_LARGEFILE | `ON`, `OFF` | ON
|
||
| Support of large files.
|
||
|
||
| ENABLE_LOGGER | `ON`, `OFF` | ON
|
||
| Compile <<buffer_logging,Logger plugin>>.
|
||
|
||
| ENABLE_LUA | `ON`, `OFF` | ON
|
||
| Compile <<scripting_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 <<scripting_plugins,Perl plugin>>.
|
||
|
||
| ENABLE_PHP | `ON`, `OFF` | ON
|
||
| Compile <<scripting_plugins,PHP plugin>>.
|
||
|
||
| ENABLE_PYTHON | `ON`, `OFF` | ON
|
||
| Compile <<scripting_plugins,Python plugin>>.
|
||
|
||
| ENABLE_RELAY | `ON`, `OFF` | ON
|
||
| Compile <<relay,Relay plugin>>.
|
||
|
||
| ENABLE_RUBY | `ON`, `OFF` | ON
|
||
| Compile <<scripting_plugins,Ruby plugin>>.
|
||
|
||
| ENABLE_SCRIPT | `ON`, `OFF` | ON
|
||
| Compile <<script_manager,Script plugin>>.
|
||
|
||
| ENABLE_SCRIPTS | `ON`, `OFF` | ON
|
||
| Compile <<scripting_plugins,script plugins>> (Python, Perl, Ruby, Lua, Tcl,
|
||
Guile, PHP).
|
||
|
||
| ENABLE_SPELL | `ON`, `OFF` | ON
|
||
| Compile <<spell_checking,Spell plugin>>.
|
||
|
||
| ENABLE_TCL | `ON`, `OFF` | ON
|
||
| Compile <<scripting_plugins,Tcl plugin>>.
|
||
|
||
| ENABLE_TRIGGER | `ON`, `OFF` | ON
|
||
| Compile <<trigger,Trigger plugin>>.
|
||
|
||
| ENABLE_TYPING | `ON`, `OFF` | ON
|
||
| Compile <<typing_notifications,Typing plugin>>.
|
||
|
||
| ENABLE_XFER | `ON`, `OFF` | ON
|
||
| Compile <<xfer,Xfer plugin>>.
|
||
|
||
// TRANSLATION MISSING
|
||
| ENABLE_ZSTD | `ON`, `OFF` | ON
|
||
| Enable https://facebook.github.io/zstd/[Zstandard ^↗^^] compression.
|
||
|
||
| 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:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake -LA
|
||
----
|
||
|
||
Or with Curses interface:
|
||
|
||
[source,shell]
|
||
----
|
||
ccmake ..
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[tests]]
|
||
==== Tests
|
||
|
||
Following packages are *required* to compile tests:
|
||
|
||
* libcpputest-dev
|
||
* C++ compiler
|
||
|
||
Tests must be enabled when compiling WeeChat:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake .. -DENABLE_TESTS=ON
|
||
----
|
||
|
||
They can be launched after compilation from the build directory:
|
||
|
||
[source,shell]
|
||
----
|
||
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:
|
||
|
||
[source,shell]
|
||
----
|
||
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
|
||
[[debug_build]]
|
||
==== Debug build
|
||
|
||
Se si compila con CMake:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake .. -DCMAKE_BUILD_TYPE=Debug
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[address_sanitizer]]
|
||
==== Address sanitizer
|
||
|
||
// TRANSLATION MISSING
|
||
You can additionally enable the address sanitizer, which causes WeeChat to
|
||
crash immediately in case of problem:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[CAUTION]
|
||
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:
|
||
|
||
[source,shell]
|
||
----
|
||
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`:
|
||
|
||
[source,shell]
|
||
----
|
||
ulimit -c unlimited
|
||
----
|
||
|
||
Oppure impostare una dimensione massima:
|
||
|
||
[source,shell]
|
||
----
|
||
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
|
||
https://wiki.archlinux.org/title/Core_dump[wiki page ^↗^^].
|
||
|
||
Ad esempio, se _weechat_ è installato in _/usr/bin/_ ed il file _core_
|
||
si trova in _/home/user/_, allora eseguire gdb con questo comando:
|
||
|
||
[source,shell]
|
||
----
|
||
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/core-hook.c:1364
|
||
hook_process = 0x254eb90
|
||
status = <value optimized out>
|
||
#5 0x000000000044cc7d in hook_timer_exec ()
|
||
at /some_path/src/core/core-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):
|
||
|
||
[source,shell]
|
||
----
|
||
gdb /usr/bin/weechat 12345
|
||
----
|
||
|
||
Poi, come per un crash, usare il comando `bt full`:
|
||
|
||
----
|
||
(gdb) bt full
|
||
----
|
||
|
||
[[running_weechat]]
|
||
== Esecuzione di WeeChat
|
||
|
||
Per avviare WeeChat, digitare questo comando:
|
||
|
||
[source,shell]
|
||
----
|
||
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
|
||
Some extra options are available for debug purposes only:
|
||
|
||
// TRANSLATION MISSING
|
||
[CAUTION]
|
||
Do *NOT* use any of these options 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 <<build,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
|
||
[[colors_support]]
|
||
=== Colors support
|
||
|
||
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
|
||
----
|
||
|
||
// 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 if $XDG_XXX is not defined
|
||
| config | $XDG_CONFIG_HOME/weechat | `$HOME/.config/weechat`
|
||
| data | $XDG_DATA_HOME/weechat | `$HOME/.local/share/weechat`
|
||
| cache | $XDG_CACHE_HOME/weechat | `$HOME/.cache/weechat`
|
||
| runtime | $XDG_RUNTIME_DIR/weechat | Same as _cache_ directory
|
||
|===
|
||
|
||
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.
|
||
| typing.conf | Configuration file for _typing_ plugin | No.
|
||
| 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.
|
||
|
||
// 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-TLS
|
||
connections are preserved. +
|
||
The TLS connections are lost during upgrade and are restored automatically
|
||
after the upgrade (reload of TLS 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:
|
||
|
||
[source,shell]
|
||
----
|
||
weechat --upgrade
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[restart_after_upgrade]]
|
||
=== Restart after upgrade
|
||
|
||
// TRANSLATION MISSING
|
||
[[restart_upgrading_notes]]
|
||
==== Upgrading notes
|
||
|
||
// TRANSLATION MISSING
|
||
After an upgrade, it is *strongly recommended* to read the file
|
||
https://github.com/weechat/weechat/blob/main/UPGRADING.md[UPGRADING.md ^↗^^]
|
||
which contains important information about breaking changes and some
|
||
manual actions that could be required.
|
||
|
||
// TRANSLATION MISSING
|
||
You must read the versions between your old (excluded) and your new version (included). +
|
||
For example if you switch from version 4.0.0 to 4.3.0, you must read versions
|
||
4.0.1 to 4.3.0.
|
||
|
||
[[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).
|
||
|
||
// TRANSLATION MISSING
|
||
[[interface]]
|
||
== Interface
|
||
|
||
[[screen_layout]]
|
||
=== Layout dello schermo
|
||
|
||
Esempio di terminale con WeeChat:
|
||
|
||
// TRANSLATION MISSING
|
||
....
|
||
▼ bar "buflist" ▼ bar "title"
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.libera │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/libera] 2:#test(+n){4}* M [H: 3:#abc(2,5), 5] │
|
||
│ │[@Flashy(i)] hi peter!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ bars "status" and "input" bar "nicklist" ▲
|
||
....
|
||
|
||
// TRANSLATION MISSING
|
||
By default, the screen is divided up into the following areas:
|
||
|
||
* 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 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_plugin | `irc/libera` | 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.
|
||
// TRANSLATION MISSING
|
||
| mouse_status | `M` | Mouse status (empty if mouse is disabled), see command <<command_weechat_mouse,/mouse>> and <<key_bindings_toggle_keys,Toggle keys>>.
|
||
| 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).
|
||
// TRANSLATION MISSING
|
||
| typing | `Typing: bob, (alice)` | Typing notification, see <<typing_notifications,typing notifications>>.
|
||
| 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 libera).
|
||
| away | `assente` | Indicatore di assenza.
|
||
// TRANSLATION MISSING
|
||
| input_search | `Search lines (~ str,msg)` | Search indicator (see below).
|
||
| input_paste | `Incollare 7 righe ? [ctrl-y] Sì [ctrl-n] No` | Chiede all'utente se incollare le righe.
|
||
| input_text | `ciao peter!` | Testo in input.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
There are two search modes:
|
||
|
||
// TRANSLATION MISSING
|
||
* search in lines, for example `[Search lines (~ str,msg)]`, with the following info:
|
||
** `~`: 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.
|
||
* search in commands history, for example `[Search command (~ str,local)]`,
|
||
with the following info:
|
||
** `~`: case-insensitive
|
||
** `==`: case-sensitive
|
||
** `str`: search string
|
||
** `regex`: search regular expression
|
||
** `local`: search in buffer local history
|
||
** `global`: search in global history.
|
||
|
||
|
||
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 | `5` | Total number of buffers opened.
|
||
| 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>>).
|
||
// TRANSLATION MISSING
|
||
| buflist4 | `1.weechat` | List of buffers, fourth bar item (see option <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
// TRANSLATION MISSING
|
||
| buflist5 | `1.weechat` | List of buffers, fifth 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.
|
||
// TRANSLATION MISSING
|
||
| spacer | | Special item used to align text in bars, see <<item_spacer,Spacer item>>.
|
||
| spell_dict | `fr,en` | Spelling dictionaries used on current buffer.
|
||
| spell_suggest | `print,prone,prune` | Spelling suggestions for word under cursor (if misspelled).
|
||
| tls_version | `TLS1.3` | TLS version in use for current IRC server.
|
||
| window_number | `2` | Current window number.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Each aspect of the layout can be customized with the appropriate <<command_line,command>>:
|
||
<<command_weechat_bar,`/bar`>> to customize the bars,
|
||
<<command_weechat_buffer,/buffer>> and <<command_weechat_window,`/window`>>
|
||
to customize <<buffers_and_windows,buffers and windows>>,
|
||
and <<command_weechat_layout,/layout>> to name, save and restore the screen layout
|
||
and the association between windows and buffers.
|
||
|
||
[[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:[d],
|
||
kbd:[xxxxxx] | Text color `xxxxxx` (RGB as hexadecimal, for example `FF0000` for red).
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+c], kbd:[d],
|
||
kbd:[xxxxxx], kbd:[,],
|
||
kbd:[yyyyyy] | Text color `xxxxxx` and background `yyyyyy` (RGB as hexadecimal).
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+c], kbd:[i] | italic text.
|
||
| kbd:[Ctrl+c], kbd:[o] | disabilita colori ed attributi.
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+c], kbd:[s] | Strikethrough text (displayed as half bright in ncurses interface because strikethrough is not supported).
|
||
| kbd:[Ctrl+c], kbd:[v] | video inverso (inverte il colore del testo con quello di sfondo).
|
||
| kbd:[Ctrl+c], kbd:[_] | testo sottolineato.
|
||
|===
|
||
|
||
[NOTE]
|
||
// TRANSLATION MISSING
|
||
The same code (without number for kbd:[Ctrl+c], kbd:[c] and kbd:[Ctrl+c], kbd:[d])
|
||
can be used to stop the attribute.
|
||
|
||
I codici colore per kbd:[Ctrl+c], kbd:[c] sono:
|
||
|
||
include::{autogendir}/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>>.
|
||
|
||
[[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
|
||
|
||
// TRANSLATION MISSING
|
||
Una _finestra_ (o window) è un'area dello schermo in cui viene visualizzato
|
||
un buffer. È possibile dividere lo schermo in più finestre (examples
|
||
<<window_split_examples,below>>, see the <<command_weechat_window,/window>>
|
||
command for details).
|
||
|
||
Ogni finestra visualizza un buffer. Un buffer può essere nascosto (non visualizzato
|
||
da una finestra) o visualizzato da una o più finestre.
|
||
|
||
// TRANSLATION MISSING
|
||
Screen layouts and the association between windows and buffers can be
|
||
<<command_weechat_layout,saved and restored>>.
|
||
|
||
// TRANSLATION MISSING
|
||
[[window_split_examples]]
|
||
==== Examples
|
||
|
||
Esempio di split orizzontale (`/window splith`):
|
||
|
||
// TRANSLATION MISSING
|
||
....
|
||
▼ window #2 (buffer #4)
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.libera │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/libera] 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/libera] 3:#abc(+n){4} │
|
||
│ │[@Flashy] hi peter!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ window #1 (buffer #3)
|
||
....
|
||
|
||
Esempio di split verticale (`/window splitv`):
|
||
|
||
// TRANSLATION MISSING
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.libera │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/libera] 3:#abc(+n) │[12:55] [5] [irc/libera] 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.libera │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/libera] 5:#ghi(+n) │
|
||
│ │ │ │[@Flashy] │
|
||
│ │ │ │──────────────────────────────────────│
|
||
│ │ │ │Welcome to #def │
|
||
│ │ │ │12:55:12 Max | hi │@Flashy│
|
||
│ │ │ │12:55:20 @Flashy | hi Max! │Max │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │[12:55] [5] [irc/libera] 3:#abc(+n) │[12:55] [5] [irc/libera] 4:#def(+n) │
|
||
│ │[@Flashy] hi peter!█ │[@Flashy] │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ window #1 (buffer #3) ▲ window #2 (buffer #4)
|
||
....
|
||
|
||
// 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.libera │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/doc │ │
|
||
│ │ | /weechat/devel/weechat_plugin_api.en.html#_weechat │ │
|
||
│ │ | _hook_process │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │[12:55] [5] [irc/libera] 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/weechat/devel/weechat_│
|
||
│plugin_api.en.html#_weechat_hook_process │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
So you can click the URL from _joe_ without any problem in your terminal (of
|
||
course this supposes that your terminal supports click on URLs).
|
||
|
||
// 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.
|
||
// TRANSLATION MISSING
|
||
| log0 … log9 | Livello di log per la riga (see the <<command_logger_logger,/logger>> command).
|
||
// 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`, `/list` (irc), `/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
|
||
[[buflist]]
|
||
=== List of buffers
|
||
|
||
// TRANSLATION MISSING
|
||
Buflist plugin displays a list of buffers in a bar item called "buflist"
|
||
(four other bar items "buflist2", "buflist3", "buflist4" and "buflist5" are
|
||
available as well). +
|
||
A default bar "buflist" is created on startup with this item.
|
||
|
||
[[buflist_commands]]
|
||
==== Comandi
|
||
|
||
include::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=buflist_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[cursor_mode]]
|
||
=== Cursor mode
|
||
|
||
The cursor mode allows you to move freely the cursor anywhere on screen, in chat
|
||
area and bars, and lets you perform actions at the given position. +
|
||
You can enter in cursor mode either with the command `/cursor` or with a mouse
|
||
middle click (mouse must have been enabled with key kbd:[Alt+m] or command
|
||
`/mouse enable`).
|
||
|
||
Typical use is to quote messages (chat area) or interact with nicks (nicklist bar).
|
||
|
||
See command <<command_weechat_cursor,/cursor>> and
|
||
<<key_bindings_cursor_context,key bindings in cursor context>> for the list
|
||
of actions you can perform in this mode.
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings]]
|
||
== Key bindings
|
||
|
||
// TRANSLATION MISSING
|
||
WeeChat provides a lot of default key bindings, listed in the following chapters. +
|
||
They can be changed and new ones can be added with the <<command_weechat_key,/key>> command.
|
||
|
||
[[key_bindings_command_line]]
|
||
=== Tasti per la riga di comando
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_cmdline_cursor_movement]]
|
||
==== Cursor movement
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
| kbd:[←] +
|
||
kbd:[Shift+←] +
|
||
kbd:[Ctrl+b] | Passa al carattere precedente nella riga di comando. | `+/input move_previous_char+`
|
||
| kbd:[→] +
|
||
kbd:[Shift+→] +
|
||
kbd:[Ctrl+f] | Passa al carattere successivo nella riga di comando. | `+/input move_next_char+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Shift+↑] | Go to previous line. | `+/input move_previous_line+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Shift+↓] | Go to next line. | `+/input move_next_line+`
|
||
| 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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Home] +
|
||
kbd:[Ctrl+a] | Go to the beginning of current line. | `+/input move_beginning_of_line+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Shift+Home] | Go to the beginning of command line. | `+/input move_beginning_of_input+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[End] +
|
||
kbd:[Ctrl+e] | Go to the end of current line. | `+/input move_end_of_line+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Shift+End] | Go to the end of command line. | `+/input move_end_of_input+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_cmdline_editing]]
|
||
==== Editing
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
| kbd:[Del] +
|
||
kbd:[Ctrl+d] | Elimina il carattere successivo nella riga di comando. | `+/input delete_next_char+`
|
||
| kbd:[Backspace] +
|
||
kbd:[Ctrl+h] | Elimina il carattere precedente nella riga di comando. | `+/input delete_previous_char+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+k] | Delete from cursor until end of current line (deleted string is copied to the internal clipboard). | `+/input delete_end_of_line+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+Ctrl+k] | Delete from cursor until end of command line (deleted string is copied to the internal clipboard). | `+/input delete_end_of_input+`
|
||
| kbd:[Ctrl+t] | Inverti caratteri. | `+/input transpose_chars+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+u] | Delete from cursor until beginning of current line (deleted string is copied to the internal clipboard). | `+/input delete_beginning_of_line+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+Ctrl+u] | Delete from cursor until beginning of command line (deleted string is copied to the internal clipboard). | `+/input delete_beginning_of_input+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+Backspace] | Elimina la parola precedente nella riga di comando (deleted string is copied to the internal clipboard). | `+/input delete_previous_word+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+w] | Delete previous word of command line until whitespace (deleted string is copied to the internal clipboard). | `+/input delete_previous_word_whitespace+`
|
||
// 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+`
|
||
// 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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+r] | Delete current line. | `+/input delete_line+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+R] | Delete entire command line. | `+/input delete_input+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_cmdline_color_codes]]
|
||
==== Color codes
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
| 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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+c], kbd:[d] | Insert code for colored text (RGB color, as hexadecimal). | `+/input insert \x04+`
|
||
| 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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+c], kbd:[s] | Insert code for strikethrough text. | `+/input insert \x1E+`
|
||
| 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+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_cmdline_history]]
|
||
==== Command history
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
| 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
|
||
[[key_bindings_cmdline_system]]
|
||
==== System
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
| kbd:[Ctrl+z] | Suspend WeeChat process. | `+/sys suspend+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_buffers]]
|
||
=== Buffers
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+r] | Search for text in commands history (see <<key_bindings_histsearch_context,keys for context "histsearch">>). | `+/input search_history+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+s] | Search for text in buffer lines (see <<key_bindings_search_context,keys for context "search">>). | `+/input search_text_here+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+x] | Switch current buffer if buffers are merged with same number, for example switch to another IRC server buffer. | `+/buffer switch+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+x] | Zoom on merged buffer (kbd:[Alt+x] again: display all merged buffers). | `+/buffer zoom+`
|
||
| kbd:[PgUp] | Scorre in alto di una pagina nella cronologia del buffer. | `+/window page_up+`
|
||
| kbd:[PgDn] | Scorre di una pagina in basso nella cronologia del buffer. | `+/window page_down+`
|
||
| kbd:[Alt+PgUp] | Scorre di qualche riga in alto nella cronologia del buffer. | `+/window scroll_up+`
|
||
| kbd:[Alt+PgDn] | Scorre di qualche riga in basso nella cronologia del buffer. | `+/window scroll_down+`
|
||
| kbd:[Alt+Home] | Scorre in cima al buffer. | `+/window scroll_top+`
|
||
| kbd:[Alt+End] | Scorre alla fine del del buffer. | `+/window scroll_bottom+`
|
||
| kbd:[Alt+←] +
|
||
kbd:[Alt+↑] +
|
||
kbd:[Ctrl+p] +
|
||
kbd:[F5] | Passa al buffer precedente. | `+/buffer -1+`
|
||
| kbd:[Alt+→] +
|
||
kbd:[Alt+↓] +
|
||
kbd:[Ctrl+n] +
|
||
kbd:[F6] | Passa al buffer successivo. | `+/buffer +1+`
|
||
// 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+`
|
||
| kbd:[Alt+n] | Scorre fino alla notifica successiva. | `+/window scroll_next_highlight+`
|
||
| kbd:[Alt+p] | Scorre fino alla notifica precedente. | `+/window scroll_previous_highlight+`
|
||
| kbd:[Alt+u] | Scorre fino alla prima riga non letta nel buffer. | `+/window scroll_unread+`
|
||
| kbd:[Alt+Shift+U] | Imposta l'evidenziatore dei messaggi non letti su tutti i buffer. | `+/allbuf /buffer set unread+`
|
||
| kbd:[Alt+<] | Passa al buffer precedente nella lista dei buffer visitati. | `+/buffer jump prev_visited+`
|
||
| kbd:[Alt+>] | Passa al buffer successivo nella lista dei buffer visitati. | `+/buffer jump next_visited+`
|
||
| kbd:[Alt+/] | Passa all'ultimo buffer mostrato (prima dell'ultimo passaggio ad un buffer). | `+/buffer jump last_displayed+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_windows]]
|
||
=== Windows
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
| kbd:[Ctrl+l] (`L`) | Ridisegna l'intera finestra. | `+/window refresh+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+l] (`L`) | Toggle bare display. | `+/window bare+`
|
||
| kbd:[F7] | Passa alla finestra precedente. | `+/window -1+`
|
||
| kbd:[F8] | Passa alla finestra successiva. | `+/window +1+`
|
||
| 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+`
|
||
|===
|
||
|
||
[[key_bindings_bars]]
|
||
=== Bars
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
// 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:[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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+Shift+B] | Toggle buflist. | `+/buflist toggle+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+Shift+N] | Toggle nicklist bar. | `+/bar toggle nicklist+`
|
||
|===
|
||
|
||
[[key_bindings_hotlist]]
|
||
=== Hotlist
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
| kbd:[Alt+a] | Passa al buffer successivo con attività (con priorità: highligh, messagge, altro). | `+/buffer jump smart+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+h], kbd:[Alt+c] | Clear hotlist (activity notification on buffers). | `+/hotlist clear+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+h], kbd:[Alt+m] | Remove current buffer from hotlist. | `+/hotlist remove+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+h], kbd:[Alt+r] | Restore latest hotlist removed in the current buffer. | `+/hotlist restore+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+h], kbd:[Alt+Shift+R] | Restore latest hotlist removed in all buffers. | `+/hotlist restore -all+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_toggle_keys]]
|
||
=== Toggle keys
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
| kbd:[Alt+m] | Abilita/disabilita. | `+/mouse toggle+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+s] | Toggle spell checker. | `+/mute spell toggle+`
|
||
| kbd:[Alt+=] | Attiva/disattiva filtri. | `+/filter toggle+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+-] | Toggle filters in current buffer. | `+/filter toggle @+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+Ctrl+l] (`L`) | Toggle between remote and local commands on a remote buffer (relay "api"). | `+/remote togglecmd+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_search_context]]
|
||
=== Search context
|
||
|
||
// TRANSLATION MISSING
|
||
These keys are used in context "search" (when kbd:[Ctrl+s] is pressed to search
|
||
text in buffer lines).
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+x] | 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:[Ctrl+r] +
|
||
kbd:[↑] | Cerca riga precedente. | `+/input search_previous+`
|
||
| kbd:[Ctrl+s] +
|
||
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 reset scroll to pre-text search state. | `+/input search_stop+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_histsearch_context]]
|
||
=== History search context
|
||
|
||
// TRANSLATION MISSING
|
||
These keys are used in context "histsearch" (when kbd:[Ctrl+r] is pressed to
|
||
search text in commands history).
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Tasti | Descrizione | Comando
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+x] | Switch search type: string (default), regular expression. | `+/input search_switch_regex+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+c] | Switch exact case for search. | `+/input search_switch_case+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Tab] | Switch search in: buffer local history (default), global history. | `+/input search_switch_where+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+r] +
|
||
kbd:[↑] | Search in previous (older) history entries. | `+/input search_previous+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+s] +
|
||
kbd:[↓] | Search in next (newer) history entries. | `+/input search_next+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Enter] +
|
||
kbd:[Ctrl+j] +
|
||
kbd:[Ctrl+m] | Stop search and use matching input. | `+/input search_stop_here+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+o] | Execute the command found in history and insert the next one in the command line. | `+/input history_use_get_next+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Ctrl+q] | Stop search and restore input to its initial value. | `+/input search_stop+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_cursor_context]]
|
||
=== Cursor context
|
||
|
||
// TRANSLATION MISSING
|
||
Questi tasti sono usati nel contesto "cursor" (movimento libero del cursore
|
||
sullo schermo, see <<cursor_mode,Cursor mode>>.
|
||
|
||
[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+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+↑] | - | Move cursor to the first line of the area. | `+/cursor move edge_top+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+↓] | - | Move cursor to the last line of the area. | `+/cursor move edge_bottom+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+←] | - | Move cursor to the first column of the area. | `+/cursor move edge_left+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+→] | - | Move cursor to the last column of the area. | `+/cursor move edge_right+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+Home] | - | Move cursor to the top left corner of the area. | `+/cursor move top_left+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[Alt+End] | - | Move cursor to the bottom right corner of the area. | `+/cursor move bottom_right+`
|
||
| kbd:[Alt+Shift+↑] | - | Sposta il cursore nell'area in alto. | `+/cursor move area_up+`
|
||
| kbd:[Alt+Shift+↓] | - | Sposta il cursore nell'area in basso. | `+/cursor move area_down+`
|
||
| kbd:[Alt+Shift+←] | - | Sposta il cursore nell'area a sinistra. | `+/cursor move area_left+`
|
||
| kbd:[Alt+Shift+→] | - | Sposta il cursore nell'area a destra. | `+/cursor move area_right+`
|
||
| kbd:[m] | chat | Cita messaggio. | `+hsignal:chat_quote_message;/cursor stop+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[l] | chat | Quote focused line. | `+hsignal:chat_quote_focused_line;/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+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_mouse]]
|
||
=== Mouse
|
||
|
||
// TRANSLATION MISSING
|
||
These mouse actions are possible only if mouse is enabled with key kbd:[Alt+m]
|
||
(command: `+/mouse toggle+`).
|
||
|
||
// TRANSLATION MISSING (6)
|
||
[width="100%",cols="^.^3,^.^3,^.^3,.^8,.^8",options="header"]
|
||
|===
|
||
// TRANSLATION MISSING
|
||
| Tasto/Wheel ^(1)^ | Azione | Zona | Descrizione | Comando
|
||
| kbd:[■ □ □] | - | chat | Passa alla finestra. | `+/window ${_window_number}+`
|
||
| kbd:[■ □ □] | sinistra | chat | Passa al buffer precedente. | `+/window ${_window_number};/buffer +1+`
|
||
| kbd:[■ □ □] | destra | chat | Passa al buffer successivo. | `+/window ${_window_number};/buffer +1+`
|
||
| kbd:[■ □ □] | sinistra (lungo) | chat | Switch to first buffer. | `+/window ${_window_number};/buffer 1+`
|
||
| kbd:[■ □ □] | destra (lungo) | chat | Passa all'ultimo buffer. | `+/window ${_window_number};/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
|
||
| kbd:[■ □ □] | - | chat: fset buffer | Select line in fset buffer. | `+/window ${_window_number};/fset -go ${fset_option_index}+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[□ □ ■] | - | chat: fset buffer | Toggle boolean (on/off) or edit the option value. | `+hsignal:fset_mouse+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[□ □ ■] | left | chat: fset buffer | Decrease value for integer/color/enum, set/append to value for other types. | `+hsignal:fset_mouse+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[□ □ ■] | right | chat: fset buffer | Increase value for integer/color/enum, set/append to value for other types. | `+hsignal:fset_mouse+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[□ □ ■] | up / down | chat: fset buffer | Mark/unmark multiple options. | `+hsignal:fset_mouse+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[▲] | - | chat: /list buffer | Move five lines up in /list buffer. | `+/list -up 5+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[▼] | - | chat: /list buffer | Move five lines down in /list buffer. | `+/list -down 5+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[■ □ □] | - | chat: /list buffer | Select line in /list buffer. | `+/window ${_window_number};/list -go ${_chat_line_y}+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[□ □ ■] | - | chat: /list buffer | Join IRC channel on selected line. | `+hsignal:irc_list_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
|
||
| kbd:[■ □ □] | - | chat: script buffer | Select line in script buffer. | `+/script -go ${_chat_line_y}+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[□ □ ■] | - | chat: script buffer | Install/remove script. | `+/script -go ${_chat_line_y};/script installremove -q ${script_name_with_extension}+`
|
||
// TRANSLATION MISSING
|
||
| kbd:[■ □ □] | up / left | buflist | Move buffer to a lower number. | Signal `+buflist_mouse+`.
|
||
// TRANSLATION MISSING
|
||
| kbd:[■ □ □] | down / right | buflist | Move buffer to a higher number. | Signal `+buflist_mouse+`.
|
||
// TRANSLATION MISSING
|
||
| kbd:[■ □ □] | - | buflist | Switch to buffer (previously visited buffer if the buffer is the current one). | Signal `+buflist_mouse+`.
|
||
// TRANSLATION MISSING
|
||
| kbd:[□ □ ■] | - | 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+`.
|
||
| kbd:[■ □ □] | su | lista nick | Scorre di una pagina in alto nella lista nick. | `+/bar scroll nicklist ${_window_number} -100%+`
|
||
| kbd:[■ □ □] | giù | lista nick | Scorre di una pagina in basso nella lista nick. | `+/bar scroll nicklist ${_window_number} +100%+`
|
||
| kbd:[■ □ □] | up (lungo) | lista nick | Sposta all'inizio della lista nick. | `+/bar scroll nicklist ${_window_number} b+`
|
||
| kbd:[■ □ □] | giù (lungo) | lista nick | Sposta alla fine della lista nick. | `+/bar scroll nicklist ${_window_number} e+`
|
||
| kbd:[■ □ □] | - | lista nick | Apre una query con un nick. | `+/window ${_window_number};/query ${nick}+`
|
||
| kbd:[□ □ ■] | - | lista nick | Effettua un whois su un nick. | `+/window ${_window_number};/whois ${nick}+`
|
||
| kbd:[■ □ □] | sinistra | lista nick | Kick di un nick. | `+/window ${_window_number};/kick ${nick}+`
|
||
| kbd:[■ □ □] | sinistra (lungo) | lista nick | Kick e ban di un nick. | `+/window ${_window_number};/kickban ${nick}+`
|
||
| kbd:[□ □ ■] | sinistra | lista nick | Ban di un nick. | `+/window ${_window_number};/ban ${nick}+`
|
||
| kbd:[□ □ ■] | - | 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%+`
|
||
| kbd:[□ ■ □] | - | ovunque | Avvia la modalità cursore in questo punto. | `+/cursor go ${_x},${_y}+`
|
||
|===
|
||
|
||
[NOTE]
|
||
// TRANSLATION MISSING
|
||
^(1)^ Buttons: +
|
||
kbd:[◼ □ □]: click on left button +
|
||
kbd:[□ ◼ □]: click on middle button +
|
||
kbd:[□ □ ◼]: click on right button +
|
||
Wheel: +
|
||
kbd:[▲]: wheel up +
|
||
kbd:[▼]: wheel down
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_fset_buffer]]
|
||
=== Fset buffer
|
||
|
||
// TRANSLATION MISSING
|
||
These keys and actions are used on the fset buffer (see <<fset,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/enum, set value for other types. | `+/fset -add -1+`
|
||
| kbd:[Alt++] | `+` | Add 1 to value for integer/color/enum, 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] | `p` | Toggle plugin description options (`pass:[plugins.desc.*]`). | `+/mute /set fset.look.show_plugins_desc toggle+`
|
||
| kbd:[Alt+v] | `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_irc_list_buffer]]
|
||
=== IRC /list buffer
|
||
|
||
These keys and actions are used on the IRC /list buffer (see command <<command_irc_list,/list>>).
|
||
|
||
[width="100%",cols="^.^3,^.^2,.^8,.^5",options="header"]
|
||
|===
|
||
| Key | Action ^(1)^ | Description | Command
|
||
| kbd:[↑] | | Move one line up. | `+/list -up+`
|
||
| kbd:[↓] | | Move one line down. | `+/list -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. | `+/list -go 0+`
|
||
| kbd:[Alt+End] | `pass:[>>]` | Move to last line. | `+/list -go end+`
|
||
| kbd:[F11] | `pass:[<]` | Scroll horizontally on the left. | `+/list -left+`
|
||
| kbd:[F12] | `pass:[>]` | Scroll horizontally on the right. | `+/list -right+`
|
||
| kbd:[Ctrl+j] | `j` | Join IRC channel on selected line. | `+/list -join+`
|
||
| | `xxx` | Show only channels with "xxx" in name or topic (case-insensitive). |
|
||
| | `n:xxx` | Show only channels with "xxx" in name (case-insensitive). |
|
||
| | `t:xxx` | Show only channels with "xxx" in topic (case-insensitive). |
|
||
| | `u:n` | Show only channels with at least "n" users. |
|
||
| | `u:>n` | Show only channels with more than "n" users. |
|
||
| | `u:<n` | Show only channels with less than "n" users. |
|
||
| | `c:xxx` | Show only channels matching the evaluated condition "xxx", using following variables: name, name2, users, topic. |
|
||
| | `s:x,y` | Sort channels by fields x,y (see command <<command_irc_list,/list>>). |
|
||
| | `s:` | Reset sort to its default value (see command <<command_irc_list,/list>>). |
|
||
| | `$` | Refresh list (run again command <<command_irc_list,/list>>). |
|
||
| | `q` | Close buffer. | `+/buffer close+`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ The action must be entered as input on the command line, followed by kbd:[Enter].
|
||
|
||
// TRANSLATION MISSING
|
||
[[key_bindings_script_buffer]]
|
||
=== Script buffer
|
||
|
||
// TRANSLATION MISSING
|
||
These keys and actions are used on the script buffer (see <<script_manager,script manager>>).
|
||
|
||
// 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` | Load script. | `+/script load+`
|
||
| kbd:[Alt+L] | `L` | Reload script. | `+/script reload+`
|
||
| 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+`
|
||
| | `s:x,y` | Sort scripts by fields x,y (see option <<option_script.look.sort,script.look.sort>>). |
|
||
| | `s:` | Reset sort to its default value (see option <<option_script.look.sort,script.look.sort>>). |
|
||
| | `$` | Refresh list. |
|
||
| | `q` | Close buffer. | `+/buffer close+`
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
^(1)^ The action must be entered as input on the command line, followed by kbd:[Enter].
|
||
|
||
// TRANSLATION MISSING
|
||
[[configuration]]
|
||
== Configuration
|
||
|
||
[[fset]]
|
||
=== Fset
|
||
|
||
// TRANSLATION MISSING
|
||
Fast Set plugin displays a list of options in a buffer, and helps to set WeeChat
|
||
and plugin options.
|
||
|
||
// TRANSLATION MISSING
|
||
Example of fset buffer displaying options starting with `weechat.look` :
|
||
|
||
[subs="quotes"]
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.weechat│7/125 | Filter: weechat.look.* | Sort: ~name | Key(input): alt+space=toggl>>│
|
||
│2.fset │weechat.look.bare_display_exit_on_input: exit the bare display mode on any c│
|
||
│ │hanges in input [predefinito: on] │
|
||
│ │----------------------------------------------------------------------------│
|
||
│ │ weechat.look.align_end_of_lines enum message │
|
||
│ │ weechat.look.align_multiline_words bool on │
|
||
│ │ weechat.look.bar_more_down stringa "++" │
|
||
│ │ weechat.look.bar_more_left stringa "<<" │
|
||
│ │ weechat.look.bar_more_right stringa ">>" │
|
||
│ │ weechat.look.bar_more_up stringa "--" │
|
||
│ │## weechat.look.bare_display_exit_on_input bool on ##│
|
||
│ │ weechat.look.bare_display_time_format stringa "%H:%M" │
|
||
│ │ weechat.look.buffer_auto_renumber bool on │
|
||
│ │ weechat.look.buffer_notify_default enum all │
|
||
│ │ weechat.look.buffer_position enum end │
|
||
│ │ weechat.look.buffer_search_case_sensitive bool off │
|
||
│ │ weechat.look.buffer_search_force_default bool off │
|
||
│ │ weechat.look.buffer_search_history enum local │
|
||
│ │ weechat.look.buffer_search_regex bool off │
|
||
│ │ weechat.look.buffer_search_where enum prefix_message │
|
||
│ │ weechat.look.buffer_time_format stringa "%H:%M:%S" │
|
||
│ │[12:55] [2] [fset] 2:fset │
|
||
│ │█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[fset_commands]]
|
||
==== Comandi
|
||
|
||
include::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=fset_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[colors]]
|
||
=== Colors
|
||
|
||
[[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:
|
||
|
||
// TRANSLATION MISSING
|
||
* `+%+`: blink
|
||
// TRANSLATION MISSING
|
||
* `+.+`: "dim" (half bright)
|
||
* `+*+` : testo in grassetto
|
||
* `+!+` : video inverso
|
||
* `+/+` : testo in corsivo
|
||
* `+_+` : testo sottolineato
|
||
// TRANSLATION MISSING
|
||
* `+|+`: keep attributes: do not reset blink/dim/bold/reverse/italic/underlined
|
||
when changing color
|
||
|
||
Ad esempio se si vuole il proprio nick bianco e sottolineato:
|
||
|
||
----
|
||
/set weechat.color.chat_nick_self _white
|
||
----
|
||
|
||
O se si desidera l'ora nella barra di stato arancione sottolineata
|
||
e in grassetto:
|
||
|
||
----
|
||
/set weechat.color.status_time *_214
|
||
----
|
||
|
||
Per usare un attributo con il colore predefinito del terminale (-1), bisogna
|
||
usare un numero maggiore dell'ultimo colore del terminale, ad esempio il
|
||
numero massimo in WeeChat: 99999.
|
||
|
||
Esempio di grassetto con il colore di primo piano del terminale:
|
||
|
||
----
|
||
/set weechat.color.status_time *99999
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[themes]]
|
||
=== Themes
|
||
|
||
A theme is a named bundle of option overrides that can be applied with
|
||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
||
`"light"` theme tuned for light-background terminals and supports
|
||
user-defined themes loaded transiently from files.
|
||
|
||
[[themes_themable_options]]
|
||
==== Themable options
|
||
|
||
Themes can only set options marked as _themable_. All `*.color.*`
|
||
options are themable by default; a few string options that hold format
|
||
expressions with `+${color:...}+` references (such as
|
||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
||
`+buflist.format.*+` formats) are explicitly opted in.
|
||
|
||
You can list the full themable surface area from the
|
||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
||
|
||
[[themes_apply]]
|
||
==== Applying a theme
|
||
|
||
To switch to the built-in light-background theme:
|
||
|
||
----
|
||
/theme apply light
|
||
----
|
||
|
||
The current state of every themable option is saved beforehand to a
|
||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
||
directory `+themes+` inside the WeeChat configuration directory, so the
|
||
previous look can be restored at any time with:
|
||
|
||
----
|
||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
||
----
|
||
|
||
Backup creation can be disabled (not recommended):
|
||
|
||
----
|
||
/set weechat.look.theme_backup off
|
||
----
|
||
|
||
If backup is enabled and the backup file cannot be written, the apply
|
||
is aborted before any option is changed.
|
||
|
||
The name of the last applied theme is stored in
|
||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
||
|
||
[[themes_reset]]
|
||
==== Resetting to defaults
|
||
|
||
To restore the look shipped with WeeChat, reset every themable option
|
||
to its default value:
|
||
|
||
----
|
||
/theme reset
|
||
----
|
||
|
||
A backup is written first (same gate as `+/theme apply+`); on backup
|
||
failure the reset is aborted before any option is changed.
|
||
`+weechat.look.theme+` is cleared too.
|
||
|
||
[[themes_save_delete]]
|
||
==== Saving and deleting user themes
|
||
|
||
Save the current themable options as a new user theme file:
|
||
|
||
----
|
||
/theme save mytheme
|
||
----
|
||
|
||
Every themable option is written, so the file is self-contained and
|
||
applies the exact same look on any WeeChat, regardless of its current
|
||
configuration.
|
||
|
||
Reserved names (built-in theme names like `+light+` and any name
|
||
starting with `+backup-+`) are refused. Files live at
|
||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
||
|
||
Rename a user theme (typical use: keep a useful automatic backup
|
||
under a meaningful name):
|
||
|
||
----
|
||
/theme rename backup-20260525-094210-123456 mybackup
|
||
----
|
||
|
||
Built-in themes have no file and cannot be renamed; the target name
|
||
cannot match a built-in name or start with `+backup-+`, and the
|
||
target file must not already exist. The `+[info]+` `+name+` field
|
||
inside the file is rewritten so `/theme info` reports the new name
|
||
consistently.
|
||
|
||
Delete a user theme:
|
||
|
||
----
|
||
/theme delete mytheme
|
||
----
|
||
|
||
This removes the file on disk; built-in themes cannot be deleted.
|
||
|
||
[[themes_file_format]]
|
||
==== Theme file format
|
||
|
||
A theme file is INI-like with two sections:
|
||
|
||
----
|
||
[info]
|
||
name = "solarized_light"
|
||
description = "Light-background theme inspired by Solarized"
|
||
date = "2026-05-25 09:42:10"
|
||
weechat = "4.10.0-dev"
|
||
|
||
[options]
|
||
weechat.color.chat = "darkgray"
|
||
weechat.color.separator = "blue"
|
||
irc.color.input_nick = "magenta"
|
||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
||
----
|
||
|
||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
||
holds the actual overrides; keys are the full option names that would
|
||
appear in `/set`. String values can be enclosed in double or single
|
||
quotes; quotes are stripped at parse time. Non-themable options listed
|
||
in a theme file are refused at apply time and logged to the core
|
||
buffer (so a `.theme` file imported from an untrusted source cannot
|
||
overwrite passwords, autoload lists, or startup commands).
|
||
|
||
User theme files are never cached: on every `/theme apply <name>` the
|
||
file is parsed, applied, and freed.
|
||
|
||
[[themes_resolution]]
|
||
==== Resolution order
|
||
|
||
When `+/theme apply <name>+` is run:
|
||
|
||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
||
is parsed and used (it shadows any built-in with the same name).
|
||
* Otherwise the built-in theme registry is consulted; built-ins are
|
||
registered programmatically by core, plugins and scripts (see the
|
||
plugin and scripting documentation for `+weechat_theme_register+`).
|
||
|
||
If neither source provides the name, the apply is refused.
|
||
|
||
[[charset]]
|
||
=== 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.libera 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::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=charset_options]
|
||
|
||
[[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 "libera":
|
||
|
||
----
|
||
/set weechat.notify.irc.libera message
|
||
----
|
||
|
||
Imposta il livello di notifica _highlight_ solo sul canale _#weechat_:
|
||
|
||
----
|
||
/set weechat.notify.irc.libera.#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 setauto hotlist_max_level_nicks_add joe:2,mike:2
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[highlights]]
|
||
=== Highlights
|
||
|
||
// TRANSLATION MISSING
|
||
[[highlights_disable]]
|
||
==== Disable highlights
|
||
|
||
You can disable highlights with option
|
||
<<option_weechat.look.highlight_disable_regex,weechat.look.highlight_disable_regex>>
|
||
(regular expression). +
|
||
When a highlight is disabled with this option, the other highlight options are
|
||
ignored.
|
||
|
||
For example to disable any highlight on messages with a word beginning
|
||
with "flash" between chevrons:
|
||
|
||
----
|
||
/set weechat.look.highlight_disable_regex "<flash.*>"
|
||
----
|
||
|
||
This can also be set with the buffer property "highlight_disable_regex".
|
||
|
||
Same example, specific to the current buffer:
|
||
|
||
----
|
||
/buffer setauto highlight_disable_regex <flash.*>
|
||
----
|
||
|
||
[[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 setauto highlight_regex .*
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[buffer_logging]]
|
||
=== Buffer logging
|
||
|
||
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.libera.#weechat 3
|
||
----
|
||
|
||
* set level 3 for libera server buffer:
|
||
|
||
----
|
||
/set logger.level.irc.server.libera 3
|
||
----
|
||
|
||
* imposta il livello 3 per tutti i canali sul server libera:
|
||
|
||
----
|
||
/set logger.level.irc.libera 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.libera.#weechat", WeeChat cercherà un mask con il
|
||
nome dell'opzione, in quest'ordine:
|
||
|
||
----
|
||
logger.mask.irc.libera.#weechat
|
||
logger.mask.irc.libera
|
||
logger.mask.irc
|
||
logger.file.mask
|
||
----
|
||
|
||
Ciò vuol dire che si hanno dei mask specifici per alcuni server
|
||
IRC ("logger.mask.irc.libera") 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.libera.weechatlog
|
||
│ │ └── irc.libera.#weechat.weechatlog
|
||
│ └── 12
|
||
│ ├── irc.server.libera.weechatlog
|
||
│ └── irc.libera.#weechat.weechatlog
|
||
├── 2011
|
||
│ ├── 01
|
||
│ │ ├── irc.server.libera.weechatlog
|
||
│ │ └── irc.libera.#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
|
||
├── libera
|
||
│ ├── libera.weechatlog
|
||
│ ├── #weechat.weechatlog
|
||
│ └── #mychan.weechatlog
|
||
├── oftc
|
||
│ ├── oftc.weechatlog
|
||
│ ├── #channel1.weechatlog
|
||
│ └── #channel2.weechatlog
|
||
...
|
||
....
|
||
|
||
// TRANSLATION MISSING
|
||
[[logger_rotation_compression]]
|
||
==== Rotation and compression
|
||
|
||
It is possible to define a max size for log files, and when it is reached,
|
||
there is automatic rotation of log file.
|
||
|
||
The rotated log files can be compressed with gzip or
|
||
https://facebook.github.io/zstd/[zstd ^↗^^].
|
||
|
||
[NOTE]
|
||
As the compression of a file can take some time, it is performed in background.
|
||
|
||
Example with a max size of 2GB and compression with gzip, using good compression
|
||
level (slower than default one):
|
||
|
||
----
|
||
/set logger.file.rotation_compression_type gzip
|
||
/set logger.file.rotation_compression_level 80
|
||
/set logger.file.rotation_size_max "2g"
|
||
----
|
||
|
||
If you want to use a decimal number, you can use the unit below and multiply
|
||
by 1000, for example to set max size to 2.5GB:
|
||
|
||
----
|
||
/set logger.file.rotation_size_max "2500m"
|
||
----
|
||
|
||
With these settings, you'll end with files like these ones (in this example
|
||
there is rotation only for the log of #weechat channel):
|
||
|
||
....
|
||
~/.local/share/weechat
|
||
└── logs
|
||
├── core.weechat.weechatlog
|
||
├── irc.server.libera.weechatlog
|
||
├── irc.libera.#weechat.weechatlog
|
||
├── irc.libera.#weechat.weechatlog.1.gz
|
||
├── irc.libera.#weechat.weechatlog.2.gz
|
||
└── irc.libera.#weechat.weechatlog.3.gz
|
||
....
|
||
|
||
[[logger_commands]]
|
||
==== Comandi
|
||
|
||
include::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=logger_options]
|
||
|
||
[[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
|
||
|
||
// TRANSLATION MISSING
|
||
Molti eventi del mouse predefiniti sono già definiti da WeeChat (consultare
|
||
<<key_bindings_mouse,mouse actions>>).
|
||
|
||
È 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 `+-+`.
|
||
|
||
// TRANSLATION MISSING
|
||
List of modifiers (by order in the event name):
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Modificatore | Descrizione
|
||
| alt | Tasto kbd:[Alt]
|
||
| ctrl | Tasto kbd:[Ctrl]
|
||
| shift | Tasto kbd:[Shift] ^(1)^
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
^(1)^ The `shift` modifier can rarely be used in WeeChat because many terminals
|
||
use this modifier to catch directly mouse events.
|
||
|
||
// TRANSLATION MISSING
|
||
Several modifiers can be combined, for example:
|
||
|
||
* `alt-ctrl`
|
||
* `ctrl-shift`
|
||
* `alt-ctrl-shift`
|
||
|
||
Elenco di pulsanti/rotellina:
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Pulsante/rotellina | Descrizione
|
||
| button1 | Click sul tasto sinistro
|
||
| button2 | Click sul tasto destro
|
||
| button3 | Click sul tasto centrale (spesso click sulla rotellina)
|
||
| button4 ... button11 | Click sui pulsanti extra
|
||
| wheelup | Rotellina (su)
|
||
| wheeldown | Rotellina (giù)
|
||
|===
|
||
|
||
Elenco di azioni (solo per i pulsanti, non la rotellina):
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Azione | Distanza
|
||
| gesture-up | 3 ... 19
|
||
| gesture-up-long | ≥ 20
|
||
| gesture-down | 3 ... 19
|
||
| gesture-down-long | ≥ 20
|
||
| gesture-left | 3 ... 39
|
||
| gesture-left-long | ≥ 40
|
||
| gesture-right | 3 ... 39
|
||
| gesture-right-long | ≥ 40
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
List of incomplete events (only for buttons, useful for plugins/scripts):
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Event | Description
|
||
| event-down | Button was pressed but not released yet
|
||
| event-drag | Mouse was moved with button pressed down
|
||
|===
|
||
|
||
Esempio di eventi:
|
||
|
||
* `button1`
|
||
* `ctrl-button1`
|
||
* `button1-gesture-right`
|
||
* `button1-event-down`
|
||
* `button1-event-drag`
|
||
* `alt-button2-gesture-down-long`
|
||
* `wheelup`
|
||
* `alt-ctrl-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
|
||
[[spell_checking]]
|
||
=== Spell checking
|
||
|
||
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 libera IRC server:
|
||
|
||
----
|
||
/set spell.dict.irc.libera 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:
|
||
|
||
[source,shell]
|
||
----
|
||
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/libera] 3:#test(+n){4} [print,prone,prune] │
|
||
│[@Flashy] prinr █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
Example of suggestions with English and French dictionaries (`en,fr`):
|
||
|
||
....
|
||
│[12:55] [6] [irc/libera] 3:#test(+n){4} [print,prone,prune/prime,primer,primé] │
|
||
│[@Flashy] prinr █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[spell_commands]]
|
||
==== Comandi
|
||
|
||
include::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=spell_options]
|
||
|
||
// 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,[buffer_last_number]":
|
||
|
||
....
|
||
┌───────────────────────────────────────────────────────────────────────────┐
|
||
│[12:55] 3:irc/libera.#weechat [9] │
|
||
└───────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
// TRANSLATION MISSING
|
||
[[item_spacer]]
|
||
===== Spacer item
|
||
|
||
An item called `spacer` can be used to align items (left, center, right).
|
||
|
||
When at least one `spacer` item is used in a bar, the whole bar width is used:
|
||
the spacers auto expand with the same size (or almost). +
|
||
When the bar is not large enough for all items, spacers are not displayed.
|
||
|
||
[NOTE]
|
||
The `spacer` bar item can be used only in bars with position `top` or `bottom`,
|
||
filling `horizontal` and size `1`.
|
||
|
||
Example of bar with items
|
||
"[time],spacer,buffer_number+:+buffer_plugin+.+buffer_name,spacer,[buffer_last_number]":
|
||
|
||
....
|
||
┌───────────────────────────────────────────────────────────────────────────┐
|
||
│[12:55] 3:irc/libera.#weechat [9]│
|
||
└───────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
// TRANSLATION MISSING
|
||
[[item_force_buffer]]
|
||
===== Force buffer
|
||
|
||
// 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"
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[custom_bar_items]]
|
||
===== Custom bar items
|
||
|
||
Custom bar items can be added with the <<command_weechat_item,/item>> command,
|
||
each new item having two properties defined via configuration options:
|
||
|
||
* `conditions`: evaluated conditions to display the bar item, for example to
|
||
restrict the bar item to some specific buffers (if empty, the bar item is
|
||
displayed everywhere)
|
||
* `content`: evaluated content of bar item.
|
||
|
||
In both options, the following variables can be used:
|
||
|
||
* `window`: pointer to the window where the bar is displayed (`NULL` for root bars)
|
||
* `buffer`: pointer to buffer where the bar is displayed (current buffer for root bars).
|
||
|
||
Examples of conditions:
|
||
|
||
[width="100%",cols="3,10",options="header"]
|
||
|===
|
||
| Condition | Description
|
||
| `${window}` | Displayed in window bars only
|
||
| `${buffer.number} == 1` | Displayed in all buffers with number = 1
|
||
| `${buffer.plugin.name} == irc` | Displayed in all IRC buffers
|
||
| `${type} == channel` | Displayed in all buffers where local variable `type` is set to `channel` (example: all IRC channels)
|
||
| `${type} == private` | Displayed in all buffers where local variable `type` is set to `private` (example: all IRC private buffers)
|
||
|===
|
||
|
||
[NOTE]
|
||
There's no builtin way to refresh the custom bar items. You can use the
|
||
<<trigger,Trigger>> plugin to force the refresh, for example via one or more
|
||
signals received.
|
||
|
||
For more information and examples, see the <<command_weechat_item,/item>> command.
|
||
|
||
[[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/libera] 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/libera] 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
|
||
[[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
|
||
libera = "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 _libera_
|
||
IRC server:
|
||
|
||
----
|
||
/secure set libera 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 the <<command_weechat_secure,/secure>> command.
|
||
|
||
To use the _libera_ password, for example with
|
||
<<irc_sasl_authentication,SASL authentication>>:
|
||
|
||
----
|
||
/set irc.server.libera.sasl_password "${sec.data.libera}"
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[command_aliases]]
|
||
=== Command aliases
|
||
|
||
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::{autogendir}/autogen_user_default_aliases.it.adoc[tag=default_aliases]
|
||
|
||
[[alias_commands]]
|
||
==== Comandi
|
||
|
||
include::{autogendir}/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.
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[[commands_and_options]]
|
||
=== Commands and options
|
||
|
||
[[weechat_commands]]
|
||
==== Comandi di WeeChat
|
||
|
||
include::{autogendir}/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::{autogendir}/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/TLS 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.
|
||
// TRANSLATION MISSING
|
||
| buffer | <<command_weechat_buffer,/buffer setauto>> | Properties auto-applied on buffers when they are opened.
|
||
| 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::{autogendir}/autogen_user_options.it.adoc[tag=weechat_options]
|
||
|
||
[[irc]]
|
||
== 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 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 _#weechat-fr_ sul server _irc.libera.chat_,
|
||
porta predefinita (6667), con il nick _alice_:
|
||
|
||
[source,shell]
|
||
----
|
||
weechat irc://alice@irc.libera.chat/#weechat,#weechat-fr
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[irc_servers]]
|
||
=== Servers
|
||
|
||
[[irc_servers_add]]
|
||
==== Add a server
|
||
|
||
By default no servers are defined. You can add as many servers as you want with
|
||
the <<command_irc_server,/server>> command.
|
||
|
||
For example to connect to https://libera.chat/[libera.chat ^↗^^]:
|
||
|
||
----
|
||
/server add libera irc.libera.chat
|
||
----
|
||
|
||
[NOTE]
|
||
Default port is 6697 and TLS (encrypted traffic) is enabled.
|
||
|
||
You can tell WeeChat to auto-connect to this server on startup:
|
||
|
||
----
|
||
/set irc.server.libera.autoconnect on
|
||
----
|
||
|
||
To authenticate, it is recommended to use SASL (if supported on the server),
|
||
with the password stored as secured data (see also chapter on
|
||
<<irc_sasl_authentication,SASL authentication>>):
|
||
|
||
----
|
||
/set irc.server.libera.sasl_username "alice"
|
||
/secure set libera xxxxxxx
|
||
/set irc.server.libera.sasl_password "${sec.data.libera}"
|
||
----
|
||
|
||
If SASL is not supported, you can use a command to send a message to nickserv:
|
||
|
||
----
|
||
/set irc.server.libera.command "/msg nickserv identify ${sec.data.libera}"
|
||
----
|
||
|
||
[NOTE]
|
||
By sending a message to nickserv, you may authenticate after joining channels
|
||
which could be a problem on some channels requiring you to be authenticated
|
||
to join. In this case, you can set a command delay:
|
||
`/set irc.server.libera.command_delay 5`.
|
||
|
||
[[irc_servers_options]]
|
||
==== Server options
|
||
|
||
Server options are named `irc.server.<server>.<option>` where `<server>` is the
|
||
internal name of the server and `<option>` the name of an option. +
|
||
The value of a server option is inherited from `irc.server_default.xxx`
|
||
if the server option has the special value `null`.
|
||
|
||
For example if you created the _libera_ server with the commands above, you'll
|
||
see this with the command `/fset libera`:
|
||
|
||
....
|
||
irc.server.libera.addresses stringa "irc.libera.chat"
|
||
irc.server.libera.anti_flood intero null -> 2000
|
||
irc.server.libera.autoconnect bool on
|
||
irc.server.libera.autojoin stringa null -> ""
|
||
irc.server.libera.autojoin_delay intero null -> 0
|
||
irc.server.libera.autojoin_dynamic bool null -> off
|
||
irc.server.libera.autoreconnect bool null -> on
|
||
irc.server.libera.autoreconnect_delay intero null -> 10
|
||
irc.server.libera.autorejoin bool null -> off
|
||
irc.server.libera.autorejoin_delay intero null -> 30
|
||
irc.server.libera.away_check intero null -> 0
|
||
irc.server.libera.away_check_max_nicks intero null -> 25
|
||
irc.server.libera.capabilities stringa null -> "*"
|
||
irc.server.libera.charset_message enum null -> message
|
||
irc.server.libera.command stringa null -> ""
|
||
irc.server.libera.command_delay intero null -> 0
|
||
irc.server.libera.connection_timeout intero null -> 60
|
||
irc.server.libera.default_chantypes stringa null -> "#&"
|
||
irc.server.libera.ipv6 enum null -> auto
|
||
irc.server.libera.local_hostname stringa null -> ""
|
||
irc.server.libera.msg_kick stringa null -> ""
|
||
irc.server.libera.msg_part stringa null -> "WeeChat ${info:version}"
|
||
irc.server.libera.msg_quit stringa null -> "WeeChat ${info:version}"
|
||
irc.server.libera.nicks stringa null -> "${username},${username}2,${username}3,${username}4,${username}5"
|
||
irc.server.libera.nicks_alternate bool null -> on
|
||
irc.server.libera.notify stringa null -> ""
|
||
irc.server.libera.password stringa null -> ""
|
||
irc.server.libera.proxy stringa null -> ""
|
||
irc.server.libera.realname stringa null -> ""
|
||
irc.server.libera.registered_mode stringa null -> "r"
|
||
irc.server.libera.sasl_fail enum null -> reconnect
|
||
irc.server.libera.sasl_key stringa null -> ""
|
||
irc.server.libera.sasl_mechanism enum null -> plain
|
||
irc.server.libera.sasl_password stringa "${sec.data.libera}"
|
||
irc.server.libera.sasl_timeout intero null -> 15
|
||
irc.server.libera.sasl_username stringa "alice"
|
||
irc.server.libera.split_msg_max_length intero null -> 512
|
||
irc.server.libera.tls bool null -> on
|
||
irc.server.libera.tls_cert stringa null -> ""
|
||
irc.server.libera.tls_dhkey_size intero null -> 2048
|
||
irc.server.libera.tls_fingerprint stringa null -> ""
|
||
irc.server.libera.tls_password stringa null -> ""
|
||
irc.server.libera.tls_priorities stringa null -> "NORMAL"
|
||
irc.server.libera.tls_verify bool null -> on
|
||
irc.server.libera.usermode stringa null -> ""
|
||
irc.server.libera.username stringa null -> "${username}"
|
||
....
|
||
|
||
For example if you want to automatically connect to all servers you define
|
||
without having to do it on each server, you can do:
|
||
|
||
----
|
||
/set irc.server_default.autoconnect on
|
||
----
|
||
|
||
And then you can reset the server option so that it uses the default inherited
|
||
value, which is now `on` instead of the default value `off`:
|
||
|
||
----
|
||
/unset irc.server.libera.autoconnect
|
||
----
|
||
|
||
[[irc_tls_certificates]]
|
||
==== Certificati TLS
|
||
|
||
Al momento della connessione al server IRC con TLS, WeeChat verifica in
|
||
maniera predefinita che la connessione sia completamente fidata.
|
||
|
||
Esistono alcune opzioni per controllare la connessione TLS:
|
||
|
||
// TRANSLATION MISSING
|
||
weechat.network.gnutls_ca_system::
|
||
load system's default trusted certificate authorities on startup
|
||
|
||
// TRANSLATION MISSING
|
||
weechat.network.gnutls_ca_user::
|
||
extra file(s) with certificate authorities
|
||
|
||
irc.server.xxx.tls_cert::
|
||
file del certificato TLS usato per identificare automaticamente il proprio
|
||
nick ad esempio CertFP su oftc (a seguire)
|
||
|
||
irc.server.xxx.tls_dhkey_size::
|
||
dimensione della chiave usata durante lo Scambio Chiavi Diffie-Hellman
|
||
(predefinita; 2048)
|
||
|
||
irc.server.xxx.tls_verify::
|
||
verifica che la connessione TLS sia totalmente fidata (opzione attivata
|
||
in maniera predefinita)
|
||
|
||
[NOTE]
|
||
L'opzione "tls_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:
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir -p ~/.config/weechat/tls
|
||
wget -O ~/.config/weechat/tls/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:
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir -p ~/.config/weechat/tls
|
||
cd ~/.config/weechat/tls
|
||
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.tls_cert "${weechat_config_dir}/tls/nick.pem"
|
||
/connect oftc
|
||
/msg nickserv cert add
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
For more information, please look at
|
||
https://www.oftc.net/NickServ/CertFP/[this page ^↗^^].
|
||
|
||
[[irc_sasl_authentication]]
|
||
==== Autenticazione SASL
|
||
|
||
// TRANSLATION MISSING
|
||
WeeChat supports SASL authentication, using different mechanisms:
|
||
|
||
// TRANSLATION MISSING
|
||
* _plain_: password in chiaro (default)
|
||
// TRANSLATION MISSING
|
||
* _scram-sha-1_: SCRAM with SHA-1 digest algorithm
|
||
// TRANSLATION MISSING
|
||
* _scram-sha-256_: SCRAM with SHA-256 digest algorithm
|
||
// TRANSLATION MISSING
|
||
* _scram-sha-512_: SCRAM with SHA-512 digest algorithm
|
||
// TRANSLATION MISSING
|
||
* _ecdsa-nist256p-challenge_: challenge with public/private key
|
||
* _external_: certificato TLS da lato client
|
||
|
||
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:
|
||
|
||
[source,shell]
|
||
----
|
||
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:
|
||
|
||
[source,shell]
|
||
----
|
||
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 libera
|
||
/msg nickserv identify your_password
|
||
/msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q
|
||
----
|
||
|
||
Configure the SASL options in the server:
|
||
|
||
----
|
||
/set irc.server.libera.sasl_mechanism ecdsa-nist256p-challenge
|
||
/set irc.server.libera.sasl_username "your_nickname"
|
||
/set irc.server.libera.sasl_key "${weechat_config_dir}/ecdsa.pem"
|
||
----
|
||
|
||
Reconnect to the server:
|
||
|
||
----
|
||
/reconnect libera
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[irc_servers_connection]]
|
||
==== Connection
|
||
|
||
You can connect to server with the <<command_irc_connect,/connect>> command:
|
||
|
||
----
|
||
/connect libera
|
||
----
|
||
|
||
To disconnect:
|
||
|
||
----
|
||
/disconnect libera
|
||
----
|
||
|
||
Or just this if you are on any buffer belonging to _libera_ server (server,
|
||
channel, private):
|
||
|
||
----
|
||
/disconnect
|
||
----
|
||
|
||
When you connect to multiple servers at same time, server buffers are merged
|
||
by default and you can switch between them with the kbd:[Ctrl+x] key. +
|
||
It is possible to disable auto merge of server buffers to have independent
|
||
server buffers:
|
||
|
||
----
|
||
/set irc.look.server_buffer independent
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[irc_tor_sasl]]
|
||
==== Connect with Tor and SASL
|
||
|
||
// TRANSLATION MISSING
|
||
Some servers support connections with https://www.torproject.org/[Tor ^↗^^],
|
||
a network of virtual tunnels that allows people and groups to improve their
|
||
privacy and security on the Internet.
|
||
|
||
Il primo passo consiste nell'installare Tor. Per Debian (e derivate):
|
||
|
||
[source,shell]
|
||
----
|
||
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 (replace server name "irc-tor" and the address by a valid one):
|
||
|
||
----
|
||
/server add irc-tor this.is.the.address.onion
|
||
----
|
||
|
||
Impostare il proxy per Tor:
|
||
|
||
----
|
||
/set irc.server.irc-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.irc-tor.sasl_mechanism ecdsa-nist256p-challenge
|
||
/set irc.server.irc-tor.sasl_username "your_nickname"
|
||
/set irc.server.irc-tor.sasl_key "${weechat_config_dir}/ecdsa.pem"
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
And finally, connect to the server:
|
||
|
||
----
|
||
/connect irc-tor
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[irc_ircv3_support]]
|
||
=== IRCv3 support
|
||
|
||
WeeChat supports the following https://ircv3.net/irc/[IRCv3 extensions ^↗^^]:
|
||
|
||
* <<irc_ircv3_account_notify,account-notify>>
|
||
* <<irc_ircv3_account_tag,account-tag>>
|
||
* <<irc_ircv3_away_notify,away-notify>>
|
||
* <<irc_ircv3_batch,batch>>
|
||
* <<irc_ircv3_cap_notify,cap-notify>>
|
||
* <<irc_ircv3_chghost,chghost>>
|
||
* <<irc_ircv3_draft_multiline,draft/multiline>>
|
||
* <<irc_ircv3_echo_message,echo-message>>
|
||
* <<irc_ircv3_extended_join,extended-join>>
|
||
* <<irc_ircv3_invite_notify,invite-notify>>
|
||
* <<irc_ircv3_message_tags,message-tags>>
|
||
* <<irc_ircv3_monitor,monitor>>
|
||
* <<irc_ircv3_multi_prefix,multi-prefix>>
|
||
* <<irc_ircv3_sasl,SASL v3.2>>
|
||
* <<irc_ircv3_server_time,server-time>>
|
||
* <<irc_ircv3_setname,setname>>
|
||
* <<irc_ircv3_typing,typing>>
|
||
* <<irc_ircv3_userhost_in_names,userhost-in-names>>
|
||
* <<irc_ircv3_whox,WHOX>>
|
||
|
||
By default all capabilities supported by the server and WeeChat are
|
||
automatically enabled
|
||
(see option <<option_irc.server_default.capabilities,irc.server_default.capabilities>>).
|
||
|
||
Tables with comparison of different IRC clients, including WeeChat, are available
|
||
on https://ircv3.net/software/clients[this page ^↗^^].
|
||
|
||
[[irc_ircv3_account_notify]]
|
||
==== account-notify
|
||
|
||
Specification: https://ircv3.net/specs/extensions/account-notify[account-notify ^↗^^]
|
||
|
||
This capability allows the server to send messages when users identify or
|
||
unidentify on the server. +
|
||
WeeChat displays such messages if the option
|
||
<<option_irc.look.display_account_message,irc.look.display_account_message>>
|
||
is enabled (default value).
|
||
|
||
Examples:
|
||
|
||
....
|
||
-- alice has identified as Alice01
|
||
|
||
-- alice has unidentified
|
||
....
|
||
|
||
[[irc_ircv3_account_tag]]
|
||
==== account-tag
|
||
|
||
Specification: https://ircv3.net/specs/extensions/account-tag[account-tag ^↗^^]
|
||
|
||
This capability allows the server to send account as message tag to commands
|
||
sent to the client. +
|
||
WeeChat parses this tag and saves it in the message, but it is not used or
|
||
displayed. It can be used in <<command_weechat_filter,/filter>> command to filter
|
||
messages matching specific accounts.
|
||
|
||
Example of raw IRC message received:
|
||
|
||
....
|
||
@account=Alice01 :user@example.com PRIVMSG #test :Hello!
|
||
....
|
||
|
||
Message displayed in channel:
|
||
|
||
....
|
||
<alice> Hello!
|
||
....
|
||
|
||
Message with tags:
|
||
|
||
....
|
||
<alice> Hello! [irc_privmsg,irc_tag_account_Alice01,notify_message,prefix_nick_lightcyan,nick_alice,host_user@example.com,log1]
|
||
....
|
||
|
||
[[irc_ircv3_away_notify]]
|
||
==== away-notify
|
||
|
||
Specification: https://ircv3.net/specs/extensions/away-notify[away-notify ^↗^^]
|
||
|
||
This capability allows the server to send away notifications for users present
|
||
on the same channels as you.
|
||
|
||
When the away status is changed for a user (away or back), this is reflected
|
||
with a specific color in the nicklist, using the following options:
|
||
|
||
* <<option_irc.server_default.away_check,irc.server_default.away_check>>
|
||
* <<option_irc.server_default.away_check_max_nicks,irc.server_default.away_check_max_nicks>>
|
||
* <<option_weechat.look.item_away_message,weechat.look.item_away_message>>
|
||
|
||
[[irc_ircv3_batch]]
|
||
==== batch
|
||
|
||
Specification: https://ircv3.net/specs/extensions/batch[batch ^↗^^]
|
||
|
||
This capability allows the server to send batched events (grouping of several
|
||
messages that are related).
|
||
|
||
For now, WeeChat only stores messages received in a batch and processes as usual
|
||
later, when the batch ends.
|
||
|
||
[[irc_ircv3_cap_notify]]
|
||
==== cap-notify
|
||
|
||
Specification: https://ircv3.net/specs/extensions/capability-negotiation#the-cap-new-subcommand[cap-notify ^↗^^]
|
||
|
||
This capability allows the server to advertise on new or removed capabilities
|
||
on the server (via `CAP NEW` and `CAP DEL` commands).
|
||
|
||
Examples:
|
||
|
||
....
|
||
-- irc: client capability, now available: sasl
|
||
|
||
-- irc: client capability, removed: sasl
|
||
....
|
||
|
||
[[irc_ircv3_chghost]]
|
||
==== chghost
|
||
|
||
Specification: https://ircv3.net/specs/extensions/chghost[chghost ^↗^^]
|
||
|
||
This capability allows the server to send messages when users change name or host. +
|
||
When the option <<option_irc.look.smart_filter_chghost,irc.look.smart_filter_chghost>>
|
||
is enabled (default value), the host changes are automatically hidden if the nick
|
||
has not spoken for several minutes. +
|
||
The color of the change host message is controlled by the option
|
||
<<option_irc.color.message_chghost,irc.color.message_chghost>>.
|
||
|
||
Example:
|
||
|
||
....
|
||
-- alice (user@example.com) has changed host to test.com
|
||
....
|
||
|
||
// TRANSLATION MISSING
|
||
[[irc_ircv3_draft_multiline]]
|
||
==== draft/multiline
|
||
|
||
Specification: https://ircv3.net/specs/extensions/multiline[multiline ^↗^^]
|
||
|
||
This capability allows the client and server to send messages with multiple lines,
|
||
using the <<irc_ircv3_batch,batch>> capability, that must be enabled as well.
|
||
|
||
There are limits in term of bytes or number of lines in a multiline message
|
||
that are given in the capability sent by the server, for example:
|
||
|
||
....
|
||
CAP alice LS * :draft/multiline=max-bytes=4096,max-lines=24
|
||
....
|
||
|
||
This sets a limit of 4096 bytes and 24 lines for a multiline batched content.
|
||
|
||
If the limits are not given by the server, the default in WeeChat are:
|
||
|
||
* max bytes: 4096
|
||
* max lines: 24
|
||
|
||
Only standard messages and those send by the <<command_irc_notice,/notice>>
|
||
command can be multiline. +
|
||
ACTION CTCP messages sent with command <<command_irc_me,/me>> are not affected
|
||
by this capability. That means multiline actions are sent as multiple actions.
|
||
|
||
[WARNING]
|
||
As the specification is a "draft", it may change and the multiline support can
|
||
possibly break at any time in WeeChat. +
|
||
The capability is automatically enabled if the server supports it and can be
|
||
disabled with this command:
|
||
`/set irc.server_default.capabilities "*,!draft/multiline"`. +
|
||
When the capability is disabled, a multiline message is sent as multiple messages,
|
||
as if they were sent sequentially to the server.
|
||
|
||
Example of IRC messages sent for a user message with two lines (`this is a test`
|
||
/ `on two lines`), send to channel #test:
|
||
|
||
....
|
||
BATCH +i8Je7M7gquddoyC9 draft/multiline #test
|
||
@batch=i8Je7M7gquddoyC9 PRIVMSG #test :this is a test
|
||
@batch=i8Je7M7gquddoyC9 PRIVMSG #test :on two lines
|
||
BATCH -i8Je7M7gquddoyC9
|
||
....
|
||
|
||
Display of the message sent in WeeChat:
|
||
|
||
....
|
||
19:01:45 alice | this is a test
|
||
| on two lines
|
||
....
|
||
|
||
// TRANSLATION MISSING
|
||
[[irc_ircv3_echo_message]]
|
||
==== echo-message
|
||
|
||
Specification: https://ircv3.net/specs/extensions/echo-message[echo-message ^↗^^]
|
||
|
||
This capability forces the server to send PRIVMSG, NOTICE and TAGMSG messages
|
||
back to WeeChat.
|
||
|
||
WeeChat displays only the message received and not the message sent, so a delay
|
||
can be noticed between the send and the display. When the message is displayed,
|
||
it means it has been properly received by the server and propagated to other
|
||
clients connected to the server as well.
|
||
|
||
[[irc_ircv3_extended_join]]
|
||
==== extended-join
|
||
|
||
Specification: https://ircv3.net/specs/extensions/extended-join[extended-join ^↗^^]
|
||
|
||
This capability allows the server to send account and real name when users
|
||
join channels. +
|
||
WeeChat displays this additional information in join messages if the option
|
||
<<option_irc.look.display_extended_join,irc.look.display_extended_join>>
|
||
is enabled (default value).
|
||
|
||
Example:
|
||
|
||
....
|
||
--> john [John01] (John Doe) (~user@example.com) has joined #test
|
||
....
|
||
|
||
[[irc_ircv3_invite_notify]]
|
||
==== invite-notify
|
||
|
||
Specification: https://ircv3.net/specs/extensions/invite-notify[invite-notify ^↗^^]
|
||
|
||
This capability allows the server to send invite messages when users are
|
||
invited to channels.
|
||
|
||
Example:
|
||
|
||
....
|
||
-- alice ha invitato bob in #test
|
||
....
|
||
|
||
[[irc_ircv3_message_tags]]
|
||
==== message-tags
|
||
|
||
Specification: https://ircv3.net/specs/extensions/message-tags[message-tags ^↗^^]
|
||
|
||
This capability allows to add metadata in messages. +
|
||
These tags can be displayed using the command `/debug tags`.
|
||
|
||
It must be enabled to use <<typing_notifications,typing notifications>>.
|
||
|
||
[[irc_ircv3_monitor]]
|
||
==== monitor
|
||
|
||
Specification: https://ircv3.net/specs/extensions/monitor[monitor ^↗^^]
|
||
|
||
This capability allows the server to send notifications when clients become
|
||
online/offline. +
|
||
WeeChat automatically uses this extension if available when using the
|
||
<<command_irc_notify,/notify>> command.
|
||
|
||
[[irc_ircv3_multi_prefix]]
|
||
==== multi-prefix
|
||
|
||
Specification: https://ircv3.net/specs/extensions/multi-prefix[multi-prefix ^↗^^]
|
||
|
||
This capability allows the server to send all user modes at once in
|
||
<<command_irc_names,/names>> and <<command_irc_whois,/whois>> responses. +
|
||
|
||
////
|
||
Example: output of `/names`:
|
||
|
||
....
|
||
-- Nick #test: [@%+alice bob +carol]
|
||
....
|
||
////
|
||
|
||
[NOTE]
|
||
For now, WeeChat doesn't display all prefixes in the `/names` output, even if
|
||
they are received and properly saved internally.
|
||
|
||
Example: output of `/whois alice`:
|
||
|
||
....
|
||
-- [alice] @%+#test
|
||
....
|
||
|
||
[[irc_ircv3_sasl]]
|
||
==== SASL
|
||
|
||
Specification: https://ircv3.net/specs/extensions/sasl-3.2[SASL 3.2 ^↗^^]
|
||
|
||
See the dedicated chapter <<irc_sasl_authentication,SASL authentication>>.
|
||
|
||
[[irc_ircv3_server_time]]
|
||
==== server-time
|
||
|
||
Specification: https://ircv3.net/specs/extensions/server-time[server-time ^↗^^]
|
||
|
||
This capability allows the server to send time for messages as message tag. +
|
||
When the time is received in a message, WeeChat uses it to display the message
|
||
(it can then be displayed with a past date).
|
||
|
||
The <<relay_irc_proxy,IRC proxy>> in Relay plugin supports this capability,
|
||
so any IRC client of Relay should enable it to display the real message time
|
||
in the backlog sent upon connection.
|
||
|
||
[[irc_ircv3_setname]]
|
||
==== setname
|
||
|
||
Specification: https://ircv3.net/specs/extensions/setname[setname ^↗^^]
|
||
|
||
This capability lets you change your real name by using the
|
||
<<command_irc_setname,/setname>> command.
|
||
|
||
[[irc_ircv3_typing]]
|
||
==== typing
|
||
|
||
Specification: https://ircv3.net/specs/client-tags/typing[typing ^↗^^]
|
||
|
||
See the dedicated chapter <<typing_notifications,Typing notifications>>.
|
||
|
||
[[irc_ircv3_userhost_in_names]]
|
||
==== userhost-in-names
|
||
|
||
Specification: https://ircv3.net/specs/extensions/userhost-in-names[userhost-in-names ^↗^^]
|
||
|
||
This capability allows the server to send hostnames in <<command_irc_names,/names>>
|
||
responses.
|
||
|
||
[NOTE]
|
||
WeeChat doesn't display hostnames in the `/names` output.
|
||
|
||
Example of raw IRC messages received without the capability:
|
||
|
||
....
|
||
:irc.server 353 alice = #test :@alice bob +carol
|
||
....
|
||
|
||
Example of raw IRC messages received with the capability:
|
||
|
||
....
|
||
:irc.server 353 alice = #test :@alice!user1@host1 bob!user2@host2 +carol!user3@host3
|
||
....
|
||
|
||
[[irc_ircv3_whox]]
|
||
==== WHOX
|
||
|
||
Specification: https://ircv3.net/specs/extensions/whox[WHOX ^↗^^]
|
||
|
||
This capability lets you request additional fields in the WHO response
|
||
(via the <<command_irc_who,/who>> command). +
|
||
WeeChat displays all additional information received in the WHO output.
|
||
|
||
// TRANSLATION MISSING
|
||
[[irc_channels]]
|
||
=== Channels
|
||
|
||
You can join channels with the <<command_irc_join,/join>> command:
|
||
|
||
----
|
||
/join #channel
|
||
----
|
||
|
||
Part a channel (keeping the buffer open):
|
||
|
||
----
|
||
/part [quit message]
|
||
----
|
||
|
||
The channels you joined are not saved. If you want to join them automatically
|
||
when connecting to the server, you must set the server `autojoin` option:
|
||
|
||
----
|
||
/set irc.server.libera.autojoin "#weechat,#weechat-fr"
|
||
----
|
||
|
||
[NOTE]
|
||
Some scripts can help to automatically set this option,
|
||
see `/script search autojoin`.
|
||
|
||
Be careful, spaces can be used only to separate list of channels from keys,
|
||
for example if `#channel1` requires a key but not `#channel2`:
|
||
|
||
----
|
||
/set irc.server.libera.autojoin "#channel1,#channel2 key1"
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
For help on the format, see option <<option_irc.server_default.autojoin,irc.server_default.autojoin>>.
|
||
|
||
[[irc_private_messages]]
|
||
=== Private messages
|
||
|
||
You can send a private message with the <<command_irc_query,/query>> command,
|
||
which opens a separate buffer:
|
||
|
||
----
|
||
/query bob hi, how are you?
|
||
----
|
||
|
||
Without arguments the command just opens the buffer (or selects it if already open):
|
||
|
||
----
|
||
/query bob
|
||
----
|
||
|
||
To close the private buffer, you can do this command on the private buffer:
|
||
|
||
----
|
||
/close
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[irc_smart_filter]]
|
||
=== Smart filter
|
||
|
||
A smart filter is available to filter some messages when someone did not write
|
||
anything in the channel during a configurable delay:
|
||
|
||
- join: user joins the channel
|
||
- part: user leaves the channel
|
||
- quit: user quits the server
|
||
- account: user changes its account
|
||
- chghost: user changes name or host
|
||
- mode: mode changes on channel
|
||
- nick: user changes its nick
|
||
- setname: user changes its real name
|
||
|
||
Smart filter is enabled by default, but you must add a filter to hide lines on
|
||
buffers, for example:
|
||
|
||
----
|
||
/filter add irc_smart * irc_smart_filter *
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
It is possible to create filter for one channel only or channels beginning with
|
||
same name (see the <<command_weechat_filter,/filter>> command):
|
||
|
||
----
|
||
/filter add irc_smart_weechat irc.libera.#weechat* irc_smart_filter *
|
||
----
|
||
|
||
You can setup a longer delay (in minutes):
|
||
|
||
----
|
||
/set irc.look.smart_filter_delay 10
|
||
----
|
||
|
||
If someone did not write anything during last 10 minutes, its messages like
|
||
join/part/quit will be hidden by default on channel, and you can use key
|
||
kbd:[Alt+=] (toggle filters) to see them.
|
||
|
||
[[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!"
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
The name of CTCP must be in lower case. That means option _irc.ctcp.VERSION_
|
||
would not work.
|
||
|
||
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.libera.version "WeeChat ${version} (per libera)"
|
||
----
|
||
|
||
Se si desidera ripristinare la risposta CTCP standard, allora disabilitare
|
||
l'opzione:
|
||
|
||
----
|
||
/unset irc.ctcp.version
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
The CTCP replies are evaluated (see command <<command_weechat_eval,/eval>>) and
|
||
the following extra variables are available:
|
||
|
||
[width="100%",cols="2,4,8",options="header"]
|
||
|===
|
||
// TRANSLATION MISSING
|
||
| Variable | Descrizione | Valore/esempio
|
||
| `+${clientinfo}+` | Elenco di CTCP supportate | `+ACTION DCC CLIENTINFO PING SOURCE TIME VERSION+`
|
||
| `+${version}+` | Versione di WeeChat | `+4.1.0-dev+`
|
||
// TRANSLATION MISSING
|
||
| `+${versiongit}+` | Versione di WeeChat + Git version ^(1)^ | `+4.1.0-dev (git: v4.0.0-51-g8f98b922a)+`
|
||
// TRANSLATION MISSING
|
||
| `+${git}+` | Git version ^(1)^ | `+v4.0.0-51-g8f98b922a+`
|
||
| `+${compilation}+` | Data di compilazione di WeeChat | `+Jul 8 2023 20:14:23+`
|
||
| `+${osinfo}+` | Informazioni sull'OS | `+Linux 5.10.0-23-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 | `+Sat, 08 Jul 2023 21:11:19 +0200+`
|
||
| `+${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.
|
||
|
||
// TRANSLATION MISSING
|
||
The default CTCP replies are:
|
||
|
||
[width="100%",cols="2,4,8",options="header"]
|
||
|===
|
||
| CTCP | Formato risposta | Esempio
|
||
| CLIENTINFO | `+${clientinfo}+` | `+ACTION DCC CLIENTINFO PING SOURCE TIME VERSION+`
|
||
| SOURCE | `+${download}+` | `+https://weechat.org/download/+`
|
||
| TIME | `+${time}+` | `+Sat, 08 Jul 2023 21:11:19 +0200+`
|
||
| VERSION | `+WeeChat ${version}+` | `+WeeChat 4.1.0-dev+`
|
||
|===
|
||
|
||
[[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="^2m,^3m,15",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: `libera.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 "libera":
|
||
|
||
----
|
||
/set irc.msgbuffer.libera.invite current
|
||
----
|
||
|
||
* visualizza messaggio "303" (ison) sul buffer "core" di WeeChat:
|
||
|
||
----
|
||
/set irc.msgbuffer.303 weechat
|
||
----
|
||
|
||
[[irc_commands]]
|
||
=== Comandi
|
||
|
||
include::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=irc_options]
|
||
|
||
[[xfer]]
|
||
== 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::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=xfer_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[typing_notifications]]
|
||
== Typing notifications
|
||
|
||
The typing plugin is used to inform other users you are typing messages and
|
||
show a list of users currently typing a message on the buffer.
|
||
|
||
It is used by IRC plugin on channel and private buffers, when the "message-tags"
|
||
capability is enabled (you can check with <<command_irc_cap,/cap>> command). +
|
||
Under the hood, typing client tag is used, following
|
||
https://ircv3.net/specs/client-tags/typing[this specification ^↗^^].
|
||
|
||
[[typing_activation]]
|
||
=== Activation
|
||
|
||
For privacy considerations, the typing feature is disabled by default. +
|
||
If you want to use it, you must enable options in both typing and irc plugins:
|
||
|
||
----
|
||
/set typing.look.enabled_nicks on
|
||
/set typing.look.enabled_self on
|
||
/set irc.look.typing_status_nicks on
|
||
/set irc.look.typing_status_self on
|
||
----
|
||
|
||
The typing notifications are displayed at the end of the status bar.
|
||
|
||
Example of status bar with the "typing" item: "bob" is typing a message and
|
||
"alice" was typing a message but made a pause:
|
||
|
||
....
|
||
│[12:55] [6] [irc/libera] 3:#test(+n){4} [Typing: bob, (alice)] │
|
||
│[@Flashy] █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[typing_signals_sent]]
|
||
=== Signals sent
|
||
|
||
When you are typing a message (not a command starting with `/`), the typing
|
||
plugin sends signals to inform other plugins (like IRC) that you are typing,
|
||
and these plugins can then send typing notifications to other users.
|
||
|
||
The following signals are sent when you are typing messages:
|
||
|
||
[width="100%",cols="1,1,5",options="header"]
|
||
|===
|
||
| Signal | Arguments | Description
|
||
| typing_self_typing | Pointer: buffer. | You are typing a message.
|
||
| typing_self_paused | Pointer: buffer. | You made a pause while typing a message.
|
||
| typing_self_cleared | Pointer: buffer. | You cleared the command line without sending the message.
|
||
| typing_self_sent | Pointer: buffer. | You sent the message to the buffer.
|
||
|===
|
||
|
||
[[typing_signals_caught]]
|
||
=== Signals caught
|
||
|
||
The typing plugin is catching some signals that can be sent by other plugins
|
||
(like IRC), to update internal hashtables used to store the typing state of
|
||
nicks on buffers. These hashtables are used to build the content of "typing"
|
||
bar item.
|
||
|
||
The following signals are caught by the typing plugin:
|
||
|
||
[width="100%",cols="1,4,3",options="header"]
|
||
|===
|
||
| Signal | Arguments | Description
|
||
|
||
| typing_set_nick
|
||
| String: buffer pointer + ";" + state (one of: "off", "typing", "paused",
|
||
"cleared") + ";" + nick. +
|
||
Example: "0x1234abcd;typing;alice".
|
||
| Set typing state for a nick on a buffer.
|
||
|
||
| typing_reset_buffer
|
||
| Pointer: buffer.
|
||
| Remove typing state for all nicks on a buffer.
|
||
|===
|
||
|
||
[[typing_options]]
|
||
=== Opzioni
|
||
|
||
Sections in file _typing.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Section | Control command | Description
|
||
| look | /set typing.look.* | Look and feel.
|
||
|===
|
||
|
||
Options:
|
||
|
||
include::{autogendir}/autogen_user_options.it.adoc[tag=typing_options]
|
||
|
||
[[relay]]
|
||
== 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
|
||
// TRANSLATION MISSING
|
||
* _api_: HTTP REST API, used by WeeChat and remote interfaces to display and
|
||
interact with WeeChat
|
||
// TRANSLATION MISSING
|
||
* _weechat_: protocol used by remote interfaces to display and interact with
|
||
WeeChat.
|
||
|
||
// TRANSLATION MISSING
|
||
For _api_ and _weechat_ protocols, see the list of remote interfaces on
|
||
https://weechat.org/about/interfaces/[this page ^↗^^].
|
||
|
||
// TRANSLATION MISSING
|
||
[[relay_password]]
|
||
=== Password
|
||
|
||
It is highly recommended to set a password for relay, with these commands:
|
||
|
||
----
|
||
/secure set relay miapass
|
||
/set relay.network.password "${sec.data.relay}"
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
This password is used with all protocols.
|
||
|
||
// TRANSLATION MISSING
|
||
[[relay_totp]]
|
||
=== TOTP
|
||
|
||
// TRANSLATION MISSING
|
||
TOTP (Time-based One-Time Password) can be used as secondary authentication
|
||
factor for _api_ and _weechat_ protocols, 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://apps.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://apps.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:
|
||
|
||
----
|
||
/secure set relay_totp secretpasswordbase32
|
||
/set relay.network.totp_secret "${sec.data.relay_totp}"
|
||
----
|
||
|
||
[[relay_tls]]
|
||
=== TLS
|
||
|
||
È possibile usare TLS creando un certificato e una chiave privata, e usando il
|
||
prefisso "tls." nel nome del protocollo.
|
||
|
||
// TRANSLATION MISSING
|
||
The default path to certificate/key is defined by option
|
||
<<option_relay.network.tls_cert_key,relay.network.tls_cert_key>>.
|
||
|
||
È possibile creare un certificato e una chiave privata con i seguenti comandi:
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir -p ~/.config/weechat/tls
|
||
cd ~/.config/weechat/tls
|
||
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 tlscertkey
|
||
----
|
||
|
||
// 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 TLS for any server (client will choose):
|
||
|
||
----
|
||
/relay add tls.irc 8000
|
||
----
|
||
|
||
Example: IRC proxy without TLS only for server "libera":
|
||
|
||
----
|
||
/relay add irc.libera 8000
|
||
----
|
||
|
||
Now you can connect on port 8000 with any IRC client using server password
|
||
"miapass" (or "libera: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 these
|
||
commands:
|
||
|
||
----
|
||
/secure set relay_libera libera:secret
|
||
/set irc.server.relay.password "${sec.data.relay_libera}"
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[relay_api_protocol]]
|
||
=== API protocol
|
||
|
||
The Relay plugin can send data to a remote WeeChat or interface using an
|
||
HTTP REST API protocol.
|
||
|
||
You can browse and test the API online:
|
||
https://weechat.org/api/[WeeChat Relay API ^↗^^].
|
||
|
||
You can connect with WeeChat or a remote interface, see
|
||
https://weechat.org/about/interfaces/[this page ^↗^^].
|
||
|
||
For example:
|
||
|
||
----
|
||
/relay add api 9000
|
||
----
|
||
|
||
Now you can connect on port 9000 with a WeeChat or a remote interface using
|
||
password "mypassword".
|
||
|
||
To connect to an _api_ relay running locally with WeeChat:
|
||
|
||
----
|
||
/remote add weechat http://localhost:9000 -password=mypassword
|
||
/remote connect weechat
|
||
----
|
||
|
||
To connect to an _api_ relay running elsewhere with WeeChat
|
||
(TLS is highly recommended):
|
||
|
||
----
|
||
/remote add weechat https://example.com:9000 -password=mypassword
|
||
/remote connect weechat
|
||
----
|
||
|
||
[NOTE]
|
||
The remote WeeChat must expose the same API version as the local WeeChat, so
|
||
it's highly recommended to use exactly the same WeeChat version on remote
|
||
and local client.
|
||
|
||
[[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
|
||
https://weechat.org/about/interfaces/[this page ^↗^^].
|
||
|
||
[IMPORTANT]
|
||
// TRANSLATION MISSING
|
||
WeeChat itself cannot connect to another WeeChat with this protocol.
|
||
|
||
Ad esempio:
|
||
|
||
----
|
||
/relay add weechat 9500
|
||
----
|
||
|
||
Ora è possibile connettersi sulla porta 9500 con un'interfaccia remota usando la
|
||
password "miapass".
|
||
|
||
// TRANSLATION MISSING
|
||
[[relay_websocket]]
|
||
=== WebSocket
|
||
|
||
WebSocket protocol (https://datatracker.ietf.org/doc/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,javascript]
|
||
----
|
||
websocket = new WebSocket("ws://example.com:9500/weechat");
|
||
----
|
||
|
||
The port (9500 in example) is the port defined in Relay plugin.
|
||
|
||
The URI must end with "/weechat" for _irc_ and _weechat_ protocols and "/api"
|
||
for _api_ protocol.
|
||
|
||
// 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:
|
||
|
||
[source,shell]
|
||
----
|
||
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::{autogendir}/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 (options can be added/removed in section).
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
Options:
|
||
|
||
include::{autogendir}/autogen_user_options.it.adoc[tag=relay_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[external_commands]]
|
||
== External commands
|
||
|
||
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::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=exec_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[fifo_pipe]]
|
||
== FIFO pipe
|
||
|
||
È 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_12345_ by default (where _12345_ is the WeeChat process id).
|
||
|
||
La sintassi per i comandi/testo della pipe FIFO è una delle seguenti:
|
||
|
||
....
|
||
plugin.buffer *testo o comando qui
|
||
*testo o comando qui
|
||
....
|
||
|
||
// TRANSLATION MISSING
|
||
Backslashes can be interpreted with this format, where `*` is replaced by `\`,
|
||
allowing for example to send multiline messages:
|
||
|
||
....
|
||
plugin.buffer \text or command here
|
||
\text or command here
|
||
....
|
||
|
||
Alcuni esempi:
|
||
|
||
// TRANSLATION MISSING
|
||
* Change nick on IRC server libera to "newnick":
|
||
|
||
[source,shell]
|
||
----
|
||
echo 'irc.server.libera */nick newnick' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
* Send a message on IRC #weechat channel:
|
||
|
||
[source,shell]
|
||
----
|
||
echo 'irc.libera.#weechat *hello!' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
* Send a multiline message on IRC #test channel, if capability "draft/multiline"
|
||
is enabled on the ergo server:
|
||
|
||
[source,shell]
|
||
----
|
||
echo 'irc.ergo.#test \hello\n...on two lines!' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
* Send a message on current buffer:
|
||
|
||
[source,shell]
|
||
----
|
||
echo '*hello!' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
* Inviare due comandi per scaricare/caricare gli script Python (è necessario
|
||
separarli con "\n"):
|
||
|
||
[source,shell]
|
||
----
|
||
printf '%b' '*/python unload\n*/python autoload\n' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
[[fifo_commands]]
|
||
=== Comandi
|
||
|
||
include::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=fifo_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[trigger]]
|
||
== 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
|
||
anymore.
|
||
|
||
| 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.libera.*+` +
|
||
`+*;irc.libera.#weechat+` +
|
||
`+formatted;irc.libera.#weechat;irc_notice+`
|
||
| link:weechat_plugin_api.it.html#_hook_line[hook_line ^↗^^]
|
||
|
||
| print
|
||
| 1. buffer name +
|
||
2. tags +
|
||
3. message +
|
||
4. strip colors (0/1)
|
||
| `+irc.libera.*+` +
|
||
`+irc.libera.#weechat+` +
|
||
`+irc.libera.#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.
|
||
|
||
Format is one of the following:
|
||
|
||
----
|
||
/string1/string2
|
||
/string1/string2/var
|
||
s/string1/string2
|
||
s/string1/string2/var
|
||
y/string1/string2
|
||
y/string1/string2/var
|
||
----
|
||
|
||
Fields:
|
||
|
||
* `s` or `y`: a letter with the command; if missing, default command is `s`
|
||
and the first char is then used as the delimiter:
|
||
** `s`: regex replacement: first string is a regular expression, second string
|
||
is the replacement for every matching string
|
||
** `y`: chars translation: first string is a set of characters that are replaced
|
||
by the characters in the second string; once evaluated, each string must have
|
||
exactly the same number of UTF-8 chars
|
||
* `/`: the regex delimiter; the char "/" can be replaced by any char
|
||
(one or more identical chars)
|
||
* `string1`: the first string (use depends on the command)
|
||
* `string2`: the second string (use depends on the command)
|
||
* `var`: the hashtable variable to update
|
||
|
||
Many regular expressions can be separated by a space, for example:
|
||
|
||
----
|
||
s/regex1/replace1/var1 y/abcdef/ABDDEF/var2
|
||
----
|
||
|
||
[[trigger_regex_replace]]
|
||
==== Regex replace
|
||
|
||
For the command `s`, the format is: `s/regex/replace` or `s/regex/replace/var`
|
||
(where _var_ is a variable of the hashtable).
|
||
|
||
As `s` is the default command, it can be omitted, so `/regex/replace` is also
|
||
valid (but the first char, which is the delimiter, must not be a letter).
|
||
|
||
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
|
||
* `pass:[${re:+}]`: the last match (with highest number)
|
||
* `+${re:#}+`: index of last group captured
|
||
* `+${re:repl_index}+`: index of replacement being done (starts to 1)
|
||
* `+${hide:c,${re:N}}+`: match "N" with all chars replaced by "c"
|
||
(example: `+${hide:*,${re:2}}+` is the group #2 with all chars replaced by
|
||
`+*+`).
|
||
|
||
Example: use bold for words between `+*+`:
|
||
|
||
----
|
||
s/\*([^ ]+)\*/*${color:bold}${re:1}${color:-bold}*/
|
||
----
|
||
|
||
Example: default trigger _server_pass_ uses this regular expression to hide
|
||
password in commands `/server` and `/connect` (chars in passwords are replaced
|
||
by `+*+`):
|
||
|
||
----
|
||
s==^(/(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_regex_translate_chars]]
|
||
==== Translate chars
|
||
|
||
For the command `y`, the format is: `y/chars1/chars2` or `y/chars1/chars2/var`
|
||
(where _var_ is a variable of the hashtable).
|
||
|
||
Example: replace "a", "b" and "c" by upper case letter:
|
||
|
||
----
|
||
y/abc/ABC/
|
||
----
|
||
|
||
Example: rotate arrows clockwise:
|
||
|
||
----
|
||
y/←↑→↓/↑→↓←/
|
||
----
|
||
|
||
Example: convert all letters to lower case:
|
||
|
||
----
|
||
y/${chars:upper}/${chars:lower}/
|
||
----
|
||
|
||
Example: shift each letter by one position, preserving case: a→b, b→c … y→z, z→a:
|
||
|
||
----
|
||
y/${chars:a-z}${chars:A-Z}/${chars:b-z}a${chars:B-Z}A/
|
||
----
|
||
|
||
[[trigger_regex_variable]]
|
||
==== Variable
|
||
|
||
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_usec, date_printed, date_usec_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.
|
||
|
||
[[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
|
||
----
|
||
|
||
All callbacks set following variables in hashtable:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Type | Description
|
||
| tg_trigger_name | string | Name of trigger.
|
||
| tg_hook_type | string | Hook type: "signal", "command", etc.
|
||
|===
|
||
|
||
[[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: "libera").
|
||
| tags | string | Tags in message (rarely used).
|
||
| message_without_tags | string | Message without tags.
|
||
| nick | string | Nick. ^(1)^
|
||
| 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).
|
||
|===
|
||
|
||
// TRANSLATION MISSING
|
||
[NOTE]
|
||
^(1)^ The nick is the sender of the message. +
|
||
Your own nick on the server is `${irc_server.nick}`.
|
||
|
||
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_usec | string | Microseconds of line date.
|
||
| date_printed | string | Date when line was displayed (timestamp).
|
||
| date_usec_printed | string | Microseconds of date when line was displayed.
|
||
| 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.
|
||
| 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_tag_irc_xxx | string | IRC message tag (key "xxx"). ^(1)^
|
||
| tg_notify | string | Notify level, if different from _none_.
|
||
| tg_msg_pv | string | "1" for a private message, otherwise "0".
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Commas are replaced by semicolons in IRC tag (key and value).
|
||
|
||
[[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.
|
||
// TRANSLATION MISSING
|
||
| tg_date | string | Message date/time (format: `%FT%T.%f`, see link:weechat_plugin_api.it.html#_util_strftimeval[WeeChat plugin API reference / util_strftimeval ^↗^^]).
|
||
| 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_tag_irc_xxx | string | IRC message tag (key "xxx"). ^(1)^
|
||
| tg_notify | string | Notify level, if different from _none_.
|
||
| tg_msg_pv | string | "1" for a private message, otherwise "0".
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Commas are replaced by semicolons in IRC tag (key and value).
|
||
|
||
[[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).
|
||
| tg_shell_argc | string | The number of arguments with a split like the shell does (the command itself counts for one).
|
||
| 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.
|
||
// TRANSLATION MISSING
|
||
| tg_date | string | Current date/time (format: `%FT%T.%f`, see link:weechat_plugin_api.it.html#_util_strftimeval[WeeChat plugin API reference / util_strftimeval ^↗^^]).
|
||
|===
|
||
|
||
[[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::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=trigger_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[extending_weechat]]
|
||
== Extending WeeChat
|
||
|
||
// TRANSLATION MISSING
|
||
WeeChat has a modular design and can be extended with plugins and scripts.
|
||
|
||
È 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`.
|
||
|
||
[[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.
|
||
|
||
È 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.
|
||
// TRANSLATION MISSING
|
||
| typing | Display users currently writing messages.
|
||
| 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 ^↗^^].
|
||
|
||
// TRANSLATION MISSING
|
||
[[scripts]]
|
||
=== 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.
|
||
|
||
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 ^↗^^].
|
||
|
||
// TRANSLATION MISSING
|
||
[[script_manager]]
|
||
==== Script manager
|
||
|
||
// TRANSLATION MISSING
|
||
The script manager (command <<command_script_script,/script>>) is used to
|
||
load/unload scripts of any language, and install/remove scripts of WeeChat
|
||
scripts repository, which are visible on
|
||
https://weechat.org/scripts/[this page ^↗^^].
|
||
|
||
// TRANSLATION MISSING
|
||
For privacy considerations, the download of scripts is disabled by default. +
|
||
To enable it, type this command:
|
||
|
||
----
|
||
/script enable
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
Then you can download the list of scripts and display them in a new buffer
|
||
with the <<command_script_script,/script>> command:
|
||
|
||
[subs="quotes,attributes"]
|
||
:x: *
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.weechat│322/322 scripts (filter: {x}) | Sort: i,p,n | Alt+key/input: i=install, r=remove, l=load, L=reload, >>│
|
||
│2.scripts│{x} autosort.py 3.10 2023-12-31 | Automatically keep buffers grouped by se│
|
||
│ │{x} highmon.pl 2.7 2020-06-21 | Aggiunge un buffer monitor per gli event│
|
||
│ │{x}ia r grep.py 0.8.6 0.8.6 2022-11-11 | Cerca espressione regolare nei buffer o │
|
||
│ │{x} colorize_nicks.py 32 2023-10-30 | Usa i colori dei nick di weechat nell'ar│
|
||
│ │##{x}ia r go.py 3.0.1 3.0.1 2024-05-30 | Passa rapidamente ai buffer. ##│
|
||
│ │ aesthetic.py 1.0.6 2020-10-25 | Make messages more A E S T H E T I C A L│
|
||
│ │ aformat.py 0.2 2018-06-21 | Alternate text formatting, useful for re│
|
||
│ │ alternatetz.py 0.4 2022-01-25 | Aggiunge un elemento località alternativ│
|
||
│ │ amarok2.pl 0.7 2012-05-08 | Script di controllo e riproduzione per A│
|
||
│ │ amqp_notify.rb 0.1 2011-01-12 | Invia messaggi privati ed eventi ad uno │
|
||
│ │ announce_url_title.py 19 2021-06-05 | Annuncia il titolo URL all'utente o al c│
|
||
│ │ anotify.py 1.0.2 2020-05-16 | Notifications of private messages, highl│
|
||
│ │ anti_password.py 1.2.1 2021-03-13 | Prevent a password from being accidental│
|
||
│ │ apply_corrections.py 1.3 2018-06-21 | Display corrected text when user sends s│
|
||
│ │ arespond.py 0.1.2 2022-01-25 | Un semplice autoresponder. │
|
||
│ │ atcomplete.pl 0.001 2016-10-29 | Tab complete nicks when prefixed with "@│
|
||
│ │ audacious.pl 0.3 2009-05-03 | Visualizza la canzone riprodotta da Auda│
|
||
│ │ auth.rb 0.3 2014-05-30 | Automatically authenticate with NickServ│
|
||
│ │ auto_away.py 0.4 2018-11-11 | Un semplice script per l'assenza automat│
|
||
│ │ autoauth.py 1.3 2021-11-07 | Consente l'autenticazione automatica al │
|
||
│ │ autobump.py 0.1.0 2019-06-14 | Bump buffers upon activity. │
|
||
│ │ autoconf.py 0.4 2021-05-11 | Auto save/load changed options in a .wee│
|
||
│ │ autoconnect.py 0.3.3 2019-10-06 | Riapre server e canali aperti l'ultima v│
|
||
│ │ autojoin_on_invite.py 0.9 2022-10-25 | Entra automaticamente nei canali quando │
|
||
│ │ automarkbuffer.py 1.0 2015-03-31 | Mark buffers as read if there is no new │
|
||
│ │ automerge.py 0.2 2018-03-03 | Automatically merge new buffers accordin│
|
||
│ │[12:55] [2] [script] 2:scripts │
|
||
│ │█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[script_commands]]
|
||
===== Comandi Script
|
||
|
||
include::{autogendir}/autogen_user_commands.it.adoc[tag=script_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::{autogendir}/autogen_user_options.it.adoc[tag=script_options]
|
||
|
||
// TRANSLATION MISSING
|
||
[[scripting_plugins]]
|
||
==== Scripting plugins
|
||
|
||
[[python_commands]]
|
||
===== Comandi Python
|
||
|
||
include::{autogendir}/autogen_user_commands.it.adoc[tag=python_commands]
|
||
|
||
[[perl_commands]]
|
||
===== Comandi Perl
|
||
|
||
include::{autogendir}/autogen_user_commands.it.adoc[tag=perl_commands]
|
||
|
||
[[ruby_commands]]
|
||
===== Comandi Ruby
|
||
|
||
include::{autogendir}/autogen_user_commands.it.adoc[tag=ruby_commands]
|
||
|
||
[[lua_commands]]
|
||
===== Comandi Lua
|
||
|
||
include::{autogendir}/autogen_user_commands.it.adoc[tag=lua_commands]
|
||
|
||
[[tcl_commands]]
|
||
===== Comandi Tcl
|
||
|
||
include::{autogendir}/autogen_user_commands.it.adoc[tag=tcl_commands]
|
||
|
||
[[guile_commands]]
|
||
===== Comandi Guile
|
||
|
||
include::{autogendir}/autogen_user_commands.it.adoc[tag=guile_commands]
|
||
|
||
[[php_commands]]
|
||
===== Comandi PHP
|
||
|
||
include::{autogendir}/autogen_user_commands.it.adoc[tag=php_commands]
|
||
|
||
// 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::{autogendir}/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::{autogendir}/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::{autogendir}/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::{autogendir}/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::{autogendir}/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::{autogendir}/autogen_user_options.it.adoc[tag=guile_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::{autogendir}/autogen_user_options.it.adoc[tag=php_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 _irc.libera.chat_:
|
||
|
||
* 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/[this page ^↗^^].
|