mirror of
https://github.com/weechat/weechat.git
synced 2026-06-12 14:14:48 +02:00
6130 lines
248 KiB
Plaintext
6130 lines
248 KiB
Plaintext
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||
// SPDX-FileCopyrightText: 2010-2025 Nils Görs <weechatter@arcor.de>
|
||
//
|
||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
||
= WeeChat Benutzerhandbuch
|
||
:author: Sébastien Helleu
|
||
:email: flashcode@flashtux.org
|
||
:lang: de
|
||
include::includes/attributes-de.adoc[]
|
||
|
||
Diese Anleitung beschreibt den WeeChat Chat Client und ist Teil von WeeChat.
|
||
|
||
Die neueste Version dieses Dokuments finden Sie unter
|
||
https://weechat.org/doc/[this page ^↗^^].
|
||
|
||
[[introduction]]
|
||
== Einleitung
|
||
|
||
WeeChat (Wee Enhanced Environment for Chat) ist ein freier, schneller und
|
||
schlanker Chat-Client der für unterschiedliche Betriebssysteme entwickelt wird.
|
||
|
||
[[features]]
|
||
=== Funktionen
|
||
|
||
wesentliche Merkmale:
|
||
|
||
* Unterstützung verschiedener Protokolle (in der Hauptsache das IRC-Protokoll)
|
||
* mehrere Server Verbindungen sind möglich (mittels TLS, IPv6, proxy)
|
||
* klein, schnell und schlank
|
||
* den eigenen, persönlichen, Bedürfnissen anpassbar und durch Erweiterungen und Skripten in der Funktionalität erweiterbar
|
||
* IRC RFCs konform
|
||
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 ^↗^^] und
|
||
https://datatracker.ietf.org/doc/html/rfc7194[7194 ^↗^^]
|
||
* IRC proxy und relay für WeeChat und Remote-Schnittstellen
|
||
* Betriebssystemunabhängig (GNU/Linux, *BSD, macOS, Windows und weitere)
|
||
* 100% GPL, freie Software
|
||
|
||
Die Liste aller Funktionen finden Sie unter
|
||
https://weechat.org/about/features/[this page ^↗^^].
|
||
|
||
[[prerequisites]]
|
||
=== Vorbereitung
|
||
|
||
Um WeeChat zu installieren wird folgendes benötigt:
|
||
|
||
* ein lauffähiges GNU/Linux System (mit Kompilierungswerkzeugen für Quellpakete),
|
||
oder ein kompatibles OS
|
||
* _root_ Privilegien (um WeeChat in das Systemverzeichnis zu installieren)
|
||
* einige Bibliotheken (siehe <<dependencies,Abhängigkeiten>>).
|
||
|
||
[[install]]
|
||
== Installation
|
||
|
||
[[binary_packages]]
|
||
=== Binärpaket
|
||
|
||
Binärpakete sind für folgende Distributionen erhältlich:
|
||
|
||
* Arch Linux: `pacman -S weechat`
|
||
* Cygwin (Windows): wähle das WeeChat Paket in setup.exe aus
|
||
* Debian/Ubuntu (oder Debian kompatible Distribution):
|
||
`apt-get install weechat-curses weechat-plugins` +
|
||
Für neueste Versionen und nächtliche Builds:
|
||
https://weechat.org/download/debian/[Debian repositories ^↗^^]
|
||
* Fedora Core: `dnf install weechat`
|
||
* FreeBSD: `pkg install weechat`
|
||
* Gentoo: `emerge weechat`
|
||
* Mandriva/RedHat (oder eine RPM kompatible Distribution):
|
||
`rpm -i /path/to/weechat-x.y.z-1.i386.rpm`
|
||
* openSUSE: `zypper in weechat`
|
||
* Sourcemage: `cast weechat`
|
||
* macOS (mittels https://brew.sh/[Homebrew ^↗^^]): `brew install weechat`
|
||
(für Hilfe siehe: `brew info weechat`)
|
||
|
||
zusätzliche Pakete können bzw. sollten installiert werden. Zum Beispiel: weechat-plugins.
|
||
|
||
Für nicht aufgeführte Distributionen schauen Sie bitte in die jeweiligen Anleitung der Distribution,
|
||
wie man Pakete installiert.
|
||
|
||
[[containers]]
|
||
=== Container
|
||
|
||
Container mit WeeChat können direkt erstellt oder installiert werden von
|
||
https://hub.docker.com/r/weechat/weechat[Docker Hub ^↗^^]. +
|
||
Weitere Informationen finden Sie in der README in dem
|
||
https://github.com/weechat/weechat-container[weechat-container ^↗^^]
|
||
Repositorium.
|
||
|
||
[[source_package]]
|
||
=== Quellpakete
|
||
|
||
WeeChat muss mit CMake erstellt werden.
|
||
|
||
[NOTE]
|
||
Unter macOS kann https://brew.sh/[Homebrew ^↗^^] verwendet werden:
|
||
`brew install --build-from-source weechat`.
|
||
|
||
[[dependencies]]
|
||
==== Abhängigkeiten
|
||
|
||
Die folgende Tabelle zeigt eine Auflistung der Pakete, die zum Erstellen von WeeChat
|
||
*erforderlich* sind:
|
||
|
||
[width="100%",cols="5,^3,.^15",options="header"]
|
||
|===
|
||
| Paket ^(1)^ | Version | Funktionen
|
||
|
||
| C Kompiler (gcc / clang) |
|
||
| kompiliert C Quelldaten.
|
||
|
||
| cmake | ≥ 3.0
|
||
| bauen.
|
||
|
||
| pkgconf / pkg-config |
|
||
| entdeckt installierte Bibliotheken.
|
||
|
||
| libncurses-dev |
|
||
| Ncurses Oberfläche.
|
||
|
||
| libcurl4-gnutls-dev |
|
||
| URL Transfer.
|
||
|
||
| libgcrypt20-dev |
|
||
| Geschützte Daten, IRC SASL Authentifikation.
|
||
|
||
| libgnutls28-dev | ≥ 2.2.0 ^(2)^
|
||
| IRC-Erweiterung: Unterstützung von TLS Verbindungen, IRC SASL Authentifikation (ECDSA-NIST256P-CHALLENGE). +
|
||
Relay-Erweiterung: Untersützung von TLS Verbindungen.
|
||
|
||
| zlib1g-dev |
|
||
| Logger-Erweitertung: Kompression von rotierenden Protokolldateien (gzip). +
|
||
Relay-Erweiterung: Kompression von Nachrichten (WeeChat -> client) with https://zlib.net/[zlib ^↗^^]
|
||
(api und weechat Protokollen). +
|
||
Script-Erweiterung: Lesen der Repository-Indexdatei (gzip).
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Der Name stammt von der Debian GNU/Linux Bookworm-Distribution,
|
||
Version und Name können in anderen Distributionen anders lauten. +
|
||
^(2)^ GnuTLS ≥ 3.0.21 wird benötigt um eine IRC SASL Authentifizierung mittels
|
||
ECDSA-NIST256P-CHALLENGE durchzuführen.
|
||
|
||
Die folgende Tabelle zeigt die Liste der Pakete, die zum Kompilieren von
|
||
WeeChat optional sind:
|
||
|
||
[width="100%",cols="5,^3,.^15",options="header"]
|
||
|===
|
||
| Paket ^(1)^ | Version | Funktionen
|
||
|
||
| {cpp} compiler (pass:[g++ / clang++]) |
|
||
| zum Erstellen der Binärdatei und um Test auszuführen, JavaScript Erweiterung.
|
||
|
||
| gettext |
|
||
| Internationalisierung (Übersetzung der Mitteilungen; Hauptsprache ist englisch).
|
||
|
||
| ca-certificates |
|
||
| Zertifikate für TLS Verbindungen.
|
||
|
||
| libcjson-dev |
|
||
| Relay-Erweiterung: Protokoll "api" (HTTP REST API).
|
||
|
||
| libzstd-dev | ≥ 0.8.1
|
||
// TRANLSATION MISSING
|
||
| Logger-Erweiterung: Kompression von rotierenden Protokolldateien (zstandard). +
|
||
Relay-Erweiterung: Kompression von Nachrichten (WeeChat -> client) with https://facebook.github.io/zstd/[Zstandard ^↗^^]
|
||
(api and weechat protocols).
|
||
|
||
| libaspell-dev / libenchant-dev |
|
||
| Spell Erweiterung.
|
||
|
||
| python3-dev | ≥ 3.0
|
||
| Python Erweiterung.
|
||
|
||
| libperl-dev |
|
||
| Perl Erweiterung.
|
||
|
||
| ruby3.1, ruby3.1-dev | ≥ 1.9.1
|
||
| Ruby Erweiterung.
|
||
|
||
| liblua5.4-dev |
|
||
| Lua Erweiterung.
|
||
|
||
| tcl-dev | ≥ 8.5
|
||
| Tcl Erweiterung.
|
||
|
||
| guile-3.0-dev | ≥ 2.0
|
||
| Guile (scheme) Erweiterung.
|
||
|
||
| libv8-dev | ≤ 3.24.3
|
||
| JavaScript Erweiterung.
|
||
|
||
| php-dev | ≥ 7.0
|
||
| PHP Erweiterung.
|
||
|
||
| libphp-embed | ≥ 7.0
|
||
| PHP Erweiterung.
|
||
|
||
| libxml2-dev |
|
||
| PHP Erweiterung.
|
||
|
||
| libargon2-dev |
|
||
| PHP Erweiterung (wenn PHP ≥ 7.2).
|
||
|
||
| libsodium-dev |
|
||
| PHP Erweiterung (wenn PHP ≥ 7.2).
|
||
|
||
| asciidoctor | ≥ 1.5.4
|
||
| zum Erstellen der man page und der Dokumentation.
|
||
|
||
| ruby-pygments.rb |
|
||
| Build Dokumentation.
|
||
|
||
| libcpputest-dev | ≥ 3.4
|
||
| zum Erstellen und um Test auszuführen.
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Der Name stammt von der Debian GNU/Linux Bookworm-Distribution,
|
||
Version und Name können in anderen Distributionen anders lauten.
|
||
|
||
Falls eine Debian/Ubuntu basierte Distribution genutzt wird und man einen
|
||
"deb-src" Quelleintrag in _/etc/apt/sources.list_ eingetragen hat, dann ist
|
||
es mit folgendem Befehl möglich alle notwendigen Abhängigkeiten zu
|
||
installieren:
|
||
|
||
[source,shell]
|
||
----
|
||
sudo apt-get build-dep weechat
|
||
----
|
||
|
||
[[build]]
|
||
==== Erstellen
|
||
|
||
* Installation in das Systemverzeichnis (benötigt _root_ Privilegien):
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir build
|
||
cd build
|
||
cmake ..
|
||
make
|
||
sudo make install
|
||
----
|
||
|
||
* Installation in ein benutzerdefiniertes Verzeichnis (zum Beispiel ins Heimatverzeichnis):
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir build
|
||
cd build
|
||
cmake .. -DCMAKE_INSTALL_PREFIX=/Pfad/zum/Verzeichnis
|
||
make
|
||
make install
|
||
----
|
||
|
||
Optionen für CMake können mit dem Format, `-DOPTION=VALUE`, genutzt werden.
|
||
|
||
Liste der verfügbaren Optionen:
|
||
|
||
[width="100%",cols="3m,3,3m,10",options="header"]
|
||
|===
|
||
| Option | Wert | Standardwert | Beschreibung
|
||
|
||
| CMAKE_BUILD_TYPE | `Debug`, `Release`, `RelWithDebInfo`, `MinSizeRel` |
|
||
| Art des builds: `Debug` (oder `RelWithDebInfo`) sollte verwendet werden, wenn meine eine Entwicklerversion
|
||
von WeeChat nutzt.
|
||
|
||
| CMAKE_INSTALL_PREFIX | Verzeichnis | /usr/local
|
||
| Verzeichnis in welchem WeeChat installiert wird.
|
||
|
||
| WEECHAT_HOME | Verzeichnis | (empty string)
|
||
| Standard-Verzeichnis in welchem die Daten liegen. +
|
||
Bei einem leeren Wert (empfohlen) werden standardmäßig XDG-Verzeichnisse verwendet.
|
||
Wird ein Verzeichnis angegeben, wird dieses Verzeichnis für alle Dateien verwendet.
|
||
Man kann auch vier, durch Doppelpunkt, getrennten Verzeichnissen angeben. Die Reihenfolge gibt folgende
|
||
Ziele an: Konfiguration, Daten, Cache, Laufzeit.
|
||
|
||
| ENABLE_ALIAS | `ON`, `OFF` | ON
|
||
| kompiliert <<command_aliases,Alias Erweiterung>>.
|
||
|
||
| ENABLE_BUFLIST | `ON`, `OFF` | ON
|
||
| kompiliert <<buflist,Buflist Erweiterung>>.
|
||
|
||
| ENABLE_CHARSET | `ON`, `OFF` | ON
|
||
| kompiliert <<charset,Charset Erweiterung>>.
|
||
|
||
| ENABLE_CJSON | `ON`, `OFF` | ON
|
||
| Unterstützung von JSON mittels https://github.com/DaveGamble/cJSON[cJSON ^↗^^] Bibliothek.
|
||
|
||
| ENABLE_MAN | `ON`, `OFF` | OFF
|
||
| erstellt die man page.
|
||
|
||
| ENABLE_DOC | `ON`, `OFF` | OFF
|
||
| erstellt die HTML Dokumentation.
|
||
|
||
| ENABLE_DOC_INCOMPLETE | `ON`, `OFF` | OFF
|
||
| Erstellung der Dokumentation erzwingen, auch wenn einige Erweiterungen nicht kompiliert sind
|
||
(nicht empfohlen: Dokumente sind unvollständig).
|
||
|
||
| ENABLE_ENCHANT | `ON`, `OFF` | OFF
|
||
| kompiliert <<spell_checking,Spell Erweiterung>> mittels Enchant.
|
||
|
||
| ENABLE_EXEC | `ON`, `OFF` | ON
|
||
| kompiliert <<external_commands,Exec Erweiterung>>.
|
||
|
||
| ENABLE_FIFO | `ON`, `OFF` | ON
|
||
| kompiliert <<fifo_pipe,Fifo Erweiterung>>.
|
||
|
||
| ENABLE_FSET | `ON`, `OFF` | ON
|
||
| kompiliert <<fset,Fset Erweiterung>>.
|
||
|
||
| ENABLE_GUILE | `ON`, `OFF` | ON
|
||
| kompiliert <<scripting_plugins,Guile Erweiterung>> (Scheme).
|
||
|
||
| ENABLE_HEADLESS | `ON`, `OFF` | ON
|
||
| Kompilieren der headless Binärdatei.
|
||
|
||
| ENABLE_IRC | `ON`, `OFF` | ON
|
||
| kompiliert <<irc,IRC Erweiterung>>.
|
||
|
||
| ENABLE_JAVASCRIPT | `ON`, `OFF` | OFF
|
||
| kompiliert <<scripting_plugins,JavaScript Erweiterung>>.
|
||
|
||
| ENABLE_LARGEFILE | `ON`, `OFF` | ON
|
||
| Unterstützung großer Dateien.
|
||
|
||
| ENABLE_LOGGER | `ON`, `OFF` | ON
|
||
| kompiliert <<buffer_logging,Logger Erweiterung>>.
|
||
|
||
| ENABLE_LUA | `ON`, `OFF` | ON
|
||
| kompiliert <<scripting_plugins,Lua Erweiterung>>.
|
||
|
||
| ENABLE_NCURSES | `ON`, `OFF` | ON
|
||
| kompiliert Ncurses Oberfläche.
|
||
|
||
| ENABLE_NLS | `ON`, `OFF` | ON
|
||
| aktiviert NLS (Übersetzungen).
|
||
|
||
| ENABLE_PERL | `ON`, `OFF` | ON
|
||
| kompiliert <<scripting_plugins,Perl Erweiterung>>.
|
||
|
||
| ENABLE_PHP | `ON`, `OFF` | ON
|
||
| kompiliert <<scripting_plugins,PHP Erweiterung>>.
|
||
|
||
| ENABLE_PYTHON | `ON`, `OFF` | ON
|
||
| kompiliert <<scripting_plugins,Python Erweiterung>>.
|
||
|
||
| ENABLE_RELAY | `ON`, `OFF` | ON
|
||
| kompiliert <<relay,Relay Erweiterung>>.
|
||
|
||
| ENABLE_RUBY | `ON`, `OFF` | ON
|
||
| kompiliert <<scripting_plugins,Ruby Erweiterung>>.
|
||
|
||
| ENABLE_SCRIPT | `ON`, `OFF` | ON
|
||
| kompiliert <<script_manager,Script Erweiterung>>.
|
||
|
||
| ENABLE_SCRIPTS | `ON`, `OFF` | ON
|
||
| kompiliert <<scripting_plugins,Skripten-Erweiterungen>> (Python, Perl, Ruby,
|
||
Lua, Tcl, Guile, PHP).
|
||
|
||
| ENABLE_SPELL | `ON`, `OFF` | ON
|
||
| kompiliert <<spell_checking,Spell Erweiterung>>.
|
||
|
||
| ENABLE_TCL | `ON`, `OFF` | ON
|
||
| kompiliert <<scripting_plugins,Tcl Erweiterung>>.
|
||
|
||
| ENABLE_TRIGGER | `ON`, `OFF` | ON
|
||
| kompiliert <<trigger,Trigger Erweiterung>>.
|
||
|
||
| ENABLE_TYPING | `ON`, `OFF` | ON
|
||
| kompiliert <<typing_notifications,Typing Erweiterung>>.
|
||
|
||
| ENABLE_XFER | `ON`, `OFF` | ON
|
||
| kompiliert <<xfer,Xfer Erweiterung>>.
|
||
|
||
| ENABLE_ZSTD | `ON`, `OFF` | ON
|
||
| aktiviere https://facebook.github.io/zstd/[Zstandard ^↗^^] Kompression.
|
||
|
||
| ENABLE_TESTS | `ON`, `OFF` | OFF
|
||
| kompiliert Testumgebung.
|
||
|
||
| ENABLE_CODE_COVERAGE | `ON`, `OFF` | OFF
|
||
| kompilieren mit Optionen für Testabdeckung. +
|
||
Diese Option sollte nur für Testzwecke genutzt werden.
|
||
|===
|
||
|
||
Weitere Optionen können mit folgendem Befehl angezeigt werden:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake -LA
|
||
----
|
||
|
||
oder mittels der Curses-Oberfläche:
|
||
|
||
[source,shell]
|
||
----
|
||
ccmake ..
|
||
----
|
||
|
||
[[tests]]
|
||
==== Tests
|
||
|
||
Folgende Pakete werden *benötigt* um Tests zu kompilieren:
|
||
|
||
* libcpputest-dev
|
||
* C++ compiler
|
||
|
||
Tests muss aktiviert werden wenn WeeChat kompiliert wird:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake .. -DENABLE_TESTS=ON
|
||
----
|
||
|
||
Nach der Kompilierung wird die Testumgebung im build-Verzeichnis ausgeführt:
|
||
|
||
[source,shell]
|
||
----
|
||
ctest -V
|
||
----
|
||
|
||
[[git_sources]]
|
||
=== Git Quellen
|
||
|
||
Warnung: Git Quellen sollten nur von erfahrenen Nutzern verwendet werden. Eventuell lassen
|
||
sich die Quellen nicht kompilieren oder der Code ist nicht stabil. Sie sind hiermit gewarnt!
|
||
|
||
Um die Git Quellen zu beziehen nutzen Sie folgende Befehle:
|
||
|
||
[source,shell]
|
||
----
|
||
git clone https://github.com/weechat/weechat.git
|
||
----
|
||
|
||
Folgen Sie bitte der Anleitung zur Erstellung aus Quellpaketen (siehe <<source_package,Quellpakete>>).
|
||
|
||
[[report_crashes]]
|
||
=== Abstürze melden
|
||
|
||
Falls WeeChat abgestürzt sein sollte und Sie diesen Fehler melden möchten:
|
||
|
||
* kompilieren Sie mit:
|
||
** Debug-Information (oder installieren Sie das Binärpaket mit Debug-Information)
|
||
** Kompilation mit Adressbereiniger (optional)
|
||
* aktivieren Sie _core_ Dateien auf Ihrem System
|
||
* installieren Sie gdb
|
||
|
||
[[debug_build]]
|
||
==== Debug-Build
|
||
|
||
Bei der Kompilierung mit CMake muss folgende Option gesetzt werden:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake .. -DCMAKE_BUILD_TYPE=Debug
|
||
----
|
||
|
||
[[address_sanitizer]]
|
||
==== Address Sanitizer
|
||
|
||
Sie können zusätzlich den Adress-Sanitizer aktivieren, der bei Problemen sofort
|
||
zum Absturz von WeeChat führt:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address
|
||
----
|
||
|
||
[CAUTION]
|
||
Sie sollten die Adressbereinigung nur aktivieren, wenn Sie versuchen, einen
|
||
Absturz zu provozieren. Diese Funktion wird im produktiven Einsatz nicht empfohlen.
|
||
|
||
Nach dem Kompilieren und Installieren müssen Sie WeeChat folgendermaßen ausführen:
|
||
|
||
[source,shell]
|
||
----
|
||
ASAN_OPTIONS="detect_odr_violation=0 log_path=asan.log" weechat
|
||
----
|
||
|
||
Im Falle eines Absturzes befinden sich zusätzliche Informationen in der Datei, `asan.log`.
|
||
|
||
[[core_files]]
|
||
==== Core Dateien
|
||
|
||
Um _core_ Dateien zu aktivieren kann folgende Option genutzt werden:
|
||
<<option_weechat.startup.sys_rlimit,weechat.startup.sys_rlimit>>:
|
||
|
||
----
|
||
/set weechat.startup.sys_rlimit "core:-1"
|
||
----
|
||
|
||
Wird eine WeeChat Version ≤ 0.3.8 verwendet oder man möchte die _core_ Dateien
|
||
aktivieren, bevor WeeChat gestaret wird, wird der Befehl `ulimit` benötigt.
|
||
|
||
Zum Beispiel muss unter Linux in einer _bash_ Shell folgender Befehl in die `~/.bashrc`
|
||
Datei eingetragen werden:
|
||
|
||
[source,shell]
|
||
----
|
||
ulimit -c unlimited
|
||
----
|
||
|
||
optional kann noch die maximale Dateigröße bestimmt werden:
|
||
|
||
[source,shell]
|
||
----
|
||
ulimit -c 200000
|
||
----
|
||
|
||
[[gdb_backtrace]]
|
||
==== Rückverfolgung mit gdb
|
||
|
||
Sollte WeeChat abstürzen, wird durch das System eine _core_ oder _core.12345_
|
||
Datei erstellt (_12345_ ist dabei die Prozess-ID). Dazu muss aber die
|
||
entprechende <<core_files,Option aktiviert sein>>.
|
||
Diese Core-Datei wird in dem Verzeichnis erzeugt aus welchem WeeChat gestartet wurde
|
||
(dies ist *nicht* das Verzeichnis in welchem sich WeeChat befindet!).
|
||
|
||
[NOTE]
|
||
Auf einigen Systemen wie Archlinux, kann sich die Core-Datei in einem anderen Verzeichnis
|
||
befinden, z.B. _/var/lib/systemd/coredump_ und es muss der `coredumpctl` Befehl genutzt
|
||
werden um die Datei zu lesen. +
|
||
Weitere Informationen finden Sie hier
|
||
https://wiki.archlinux.org/title/Core_dump[wiki page ^↗^^].
|
||
|
||
Beispiel: _weechat_ ist in _/usr/bin/_ installiert und die _core_ Datei befindet sich
|
||
in _/home/user/_. Nun wird gdb mit folgendem Befehl aufgerufen:
|
||
|
||
[source,shell]
|
||
----
|
||
gdb /usr/bin/weechat /home/user/core
|
||
----
|
||
|
||
Nun startet man _gdb_ und führt den Befehl `bt full` innerhalb der gdb Umgebung aus, um die
|
||
Fehlermeldung auszugeben. Eine Fehlermeldung von gdb sieht z.B. wie folgt aus:
|
||
|
||
----
|
||
(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>
|
||
----
|
||
|
||
Diese Fehlermeldung senden Sie bitte an den Entwickler mit einer Beschreibung was den Fehler ausgelöst hat.
|
||
|
||
Danke für Ihre Mithilfe!
|
||
|
||
[[debug_running_weechat]]
|
||
==== Eine laufende Sitzung von WeeChat debuggen
|
||
|
||
Um eine laufende Sitzung von WeeChat zu debuggen (zum Beispiel wenn WeeChat nicht
|
||
mehr reagieren sollte) sollte man gdb mit der Prozess-ID starten (_12345_ muss durch
|
||
die PID des laufenden weechat Prozesses ersetzt werden):
|
||
|
||
[source,shell]
|
||
----
|
||
gdb /usr/bin/weechat 12345
|
||
----
|
||
|
||
Sollte WeeChat abgestürzt sein, muss der Befehl `bt full` genutzt werden:
|
||
|
||
----
|
||
(gdb) bt full
|
||
----
|
||
|
||
[[running_weechat]]
|
||
== WeeChat starten
|
||
|
||
Um WeeChat zu starten muss folgender Befehl ausgeführt werden:
|
||
|
||
[source,shell]
|
||
----
|
||
weechat
|
||
----
|
||
|
||
Wird WeeChat das erste mal ausgeführt, wird die Standardkonfiguration und
|
||
die entsprechenden Dateien im Verzeichnis _~/.config/weechat_ erstellt.
|
||
(siehe <<files_and_directories,Dateien und Verzeichnisse>>).
|
||
|
||
[[command_line_options]]
|
||
=== Optionen für Befehlszeile
|
||
|
||
include::includes/cmdline_options.de.adoc[tag=standard]
|
||
|
||
Einige zusätzliche Optionen sollten nur für Debug-Zwecke genutzt werden:
|
||
|
||
[CAUTION]
|
||
*KEINE* dieser Optionen sollte für ein Produktivsystem genutzt werden!
|
||
|
||
include::includes/cmdline_options.de.adoc[tag=debug]
|
||
|
||
[[environment_variables]]
|
||
=== Umgebungsvariablen
|
||
|
||
Einige Umgebungsvariablen werden von WeeChat genutzt, sofern sie definiert wurden:
|
||
|
||
[width="100%",cols="1m,6",options="header"]
|
||
|===
|
||
| Name | Beschreibung
|
||
| WEECHAT_HOME | Das WeeChat Verzeichnis (beinhaltet Konfigurationsdateien, Protokolldateien, Skripten, ...). Gleiches Verhalten wie <<build,CMake option>> `WEECHAT_HOME`.
|
||
| WEECHAT_PASSPHRASE | Die Passphrase zum Entschlüsseln von schutzwürdigen Daten.
|
||
| WEECHAT_EXTRA_LIBDIR | Ein zusätzliches Verzeichnis um Erweiterungen zu installieren (vom "plugins" Verzeichnis in dieses Verzeichnis).
|
||
|===
|
||
|
||
[[colors_support]]
|
||
=== Farbunterstützung
|
||
|
||
WeeChat kann bis zu 32767 Farbpaarungen nutzen um einen Text in Bars oder im
|
||
Chatbereich darzustellen (der Terminal muss natürlich 256 Farben unterstützten).
|
||
|
||
Gemäß der Einstellung in der _TERM_-Umgebungsvariable bestehen folgende Einschränkungen
|
||
was die Farbdarstellung in WeeChat betrifft:
|
||
|
||
[width="75%",cols="8,>3,>3",options="header"]
|
||
|===
|
||
| $TERM | Farben | Paare
|
||
| "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
|
||
|===
|
||
|
||
Mittels `weechat --colors` oder dem internen WeeChat-Befehl `/color` kann man sich
|
||
die Einschränkungen für die jeweilige Umgebungsvariable anzeigen lassen.
|
||
|
||
Folgende Werte sind für die _TERM_-Umgebungsvariable zu empfehlen, sofern man 256 Farben
|
||
nutzen möchte:
|
||
|
||
* falls screen genutzt wird: _screen-256color_
|
||
* für tmux: _screen-256color_ oder _tmux-256color_
|
||
* ausserhalb screen/tmux: _xterm-256color_, _rxvt-256color_, _putty-256color_, ...
|
||
|
||
[NOTE]
|
||
Es sollte das Paket "ncurses-term" installiert werden um die Werte der _TERM_
|
||
Variable nutzen zu können.
|
||
|
||
Sollte screen genutzt werden, fügt man folgende Zeile an das Ende der Datei
|
||
_~/.screenrc_:
|
||
|
||
----
|
||
term screen-256color
|
||
----
|
||
|
||
Sollte die Umgebungsvariable _TERM_ falsch gesetzt worden sein und WeeChat
|
||
wird derweil schon ausgeführt, kann die Variable mit folgenden zwei Befehlen
|
||
geändert werden:
|
||
|
||
----
|
||
/set env TERM screen-256color
|
||
/upgrade
|
||
----
|
||
|
||
[[files_and_directories]]
|
||
=== Dateien und Verzeichnisse
|
||
|
||
[[xdg_directories]]
|
||
==== XDG directories
|
||
|
||
WeeChat verwendet standardmäßig XDG-Verzeichnisse
|
||
(gemäß https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html[XDG Base Directory Specification ^↗^^]). +
|
||
Ein einzelnes Home-Verzeichnis für alle Dateien kann durch die CMake-Option `WEECHAT_HOME`,
|
||
die Umgebungsvariable `WEECHAT_HOME` oder die Befehlszeilenoption `-d` / `--dir` erzwungen werden.
|
||
Wenn ein einzelnes WeeChat-Ausgangsverzeichnis nicht erzwungen wird, werden XDG-Verzeichnisse wie folgt
|
||
verwendet und festgelegt:
|
||
|
||
[width="100%",cols="1,2m,5",options="header"]
|
||
|===
|
||
| Verzeichnis | Standardwert | Ersatzverzeichnis, falls $XDG_XXX nicht definiert wurde
|
||
| Konfiguration | $XDG_CONFIG_HOME/weechat | `$HOME/.config/weechat`
|
||
| Daten | $XDG_DATA_HOME/weechat | `$HOME/.local/share/weechat`
|
||
| Cache | $XDG_CACHE_HOME/weechat | `$HOME/.cache/weechat`
|
||
| Laufzeit | $XDG_RUNTIME_DIR/weechat | Wie beim _Cache_ Verzeichnis
|
||
|===
|
||
|
||
Die Konfigurationsdateien werden beim ersten Ausführen von WeeChat mit Standardwerten erstellt.
|
||
|
||
[[weechat_directories]]
|
||
==== WeeChat Verzeichnisse
|
||
|
||
Es gibt folgende WeeChat Verzeichnisse:
|
||
|
||
[width="100%",cols="1m,3",options="header"]
|
||
|===
|
||
| Pfad ^(1)^ | Beschreibung
|
||
| ~/.config/weechat/ | WeeChat Konfigurationsdateien: `*.conf`, Zertifikate, etc.
|
||
| ~/.local/share/weechat/ | WeeChat Daten: Protokolldateien, Skripts, Skriptdaten, xfer-Daten, etc.
|
||
| logs/ | Logdateien (eine Datei pro Buffer).
|
||
| python/ | Python-Skripten.
|
||
| autoload/ | Python-Skripten die beim Start automatisch ausgeführt werden ^(2)^.
|
||
| perl/ | Perl-Skripten.
|
||
| autoload/ | Perl-Skripten die beim Start automatisch ausgeführt werden ^(2)^.
|
||
| ruby/ | Ruby-Skripten.
|
||
| autoload/ | Ruby-Skripten die beim Start automatisch ausgeführt werden ^(2)^.
|
||
| lua/ | Lua-Skripten.
|
||
| autoload/ | Lua-Skripten die beim Start automatisch ausgeführt werden ^(2)^.
|
||
| tcl/ | Tcl-Skripten.
|
||
| autoload/ | Tcl-Skripten die beim Start automatisch ausgeführt werden ^(2)^.
|
||
| guile/ | Guile-Skripten.
|
||
| autoload/ | Guile-Skripten die beim Start automatisch ausgeführt werden ^(2)^.
|
||
| javascript/ | JavaScript-Skripten.
|
||
| autoload/ | JavaScript-Skripten die beim Start automatisch ausgeführt werden ^(2)^.
|
||
| php/ | PHP-Skripten.
|
||
| autoload/ | PHP-Skripten die beim Start automatisch ausgeführt werden ^(2)^.
|
||
| ~/.cache/weechat/ | WeeChat Cache-Dateien: Skriptcache.
|
||
| /run/user/1000/weechat/ | WeeChat Laufzeitdateien: FIFO-Pipe, Relay UNIX sockets.
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ XDG-Verzeichnisse können je nach Umgebungsvariablen unterschiedlich sein `XDG_*`. +
|
||
^(2)^ Das Verzeichnis besteht meistens aus symbolischen Links welche auf das eigentliche Skript zeigen.
|
||
|
||
[[weechat_files]]
|
||
==== WeeChat Dateien
|
||
|
||
Folgende Dateien befinden sich im WeeChat-Heimatverzeichnis:
|
||
|
||
[width="100%",cols="1m,3,6",options="header"]
|
||
|===
|
||
| Datei | Beschreibung | sensible Daten
|
||
| weechat.conf | Hauptkonfiguration von WeeChat | möglich (Beispiel: Auflistung der Kanäle im Buffers-Layout).
|
||
| sec.conf | Konfigurationsdatei mit sensiblen Daten | *Ja, hoch sensibel*: diese Datei sollte niemals weitergegeben werden.
|
||
| plugins.conf | Konfigurationsdatei für Erweiterungen | möglich, hängt von der Erweiterung/Skript ab.
|
||
| alias.conf | Konfigurationsdatei: Alias-Erweiterung | möglich, hängt von den Aliases ab.
|
||
| buflist.conf | Konfiguration für _buflist_-Erweiterung | Nein.
|
||
| charset.conf | Konfiguration für _charset_-Erweiterung | Nein.
|
||
| exec.conf | Konfiguration für _exec_-Erweiterung | Nein.
|
||
| fifo.conf | Konfiguration für _fifo_-Erweiterung | Nein.
|
||
| fset.conf | Konfiguration für _fset_-Erweiterung | Nein.
|
||
| guile.conf | Konfiguration für _guile_-Erweiterung | Nein.
|
||
| irc.conf | Konfiguration für _irc_-Erweiterung | *Ja*: Datei kann Passwörter für Server, Nickserv oder Kanäle enthalten (sofern diese nicht in `sec.conf` gesichert sind).
|
||
| javascript.conf | Konfiguration für _javascript_-Erweiterung | Nein.
|
||
| logger.conf | Konfiguration für _logger_-Erweiterung | Nein.
|
||
| lua.conf | Konfiguration für _lua_-Erweiterung | Nein.
|
||
| perl.conf | Konfiguration für _perl_-Erweiterung | Nein.
|
||
| php.conf | Konfiguration für _php_-Erweiterung | Nein.
|
||
| python.conf | Konfiguration für _python_-Erweiterung | Nein.
|
||
| relay.conf | Konfiguration für _relay_-Erweiterung | *Ja*: es kann das Relay-Passwort und das TOTP (Einmalkennwort) enthalten (sofern nicht in `sec.conf` gesichert), erlaubt OP Adressen/Websocket und geöffnete Ports.
|
||
| ruby.conf | Konfiguration für _ruby_-Erweiterung | Nein.
|
||
| script.conf | Konfiguration für _script_-Erweiterung | Nein.
|
||
| spell.conf | Konfiguration für _spell_-Erweiterung | Nein.
|
||
| tcl.conf | Konfiguration für _tcl_-Erweiterung | Nein.
|
||
| trigger.conf | Konfiguration für _trigger_-Erweiterung | möglich, hängt von den Triggern ab.
|
||
| typing.conf | Konfiguration für _typing_-Erweiterung | Nein.
|
||
| xfer.conf | Konfiguration für _xfer_-Erweiterung | Nein.
|
||
| weechat.log | WeeChat Logdateien | Nein.
|
||
|===
|
||
|
||
[IMPORTANT]
|
||
Es wird *nicht empfohlen* die Konfigurationsdateien manuell zu editieren, da WeeChat
|
||
diese Dateien zu jeder Zeit überschreiben kann (zum Beispiel: <<command_weechat_quit,/quit>>)
|
||
und man eine veränderte Datei mit dem Befehl <<command_weechat_reload,/reload>> neu
|
||
laden muss (mit dem Risiko von Datenverlust da Daten kommentarlos überschrieben werden,
|
||
bevor man diese ggf. gesichert hat <<command_weechat_save,/save>>). +
|
||
Man sollte immer den <<command_weechat_set,/set>> Befehl nutzen, da der Befehl die
|
||
Eingabe prüft und Änderungen sofort wirksam werden.
|
||
|
||
[[upgrade]]
|
||
== Upgrade
|
||
|
||
Wenn eine neue stabile Version von WeeChat veröffentlicht wird, ist es Zeit
|
||
auf diese neue Version zu wechseln.
|
||
|
||
Zunächst müssen Sie die neue WeeChat Version als Binärdatei installieren.
|
||
Entweder installieren Sie WeeChat mittels Ihrem Paketmanager oder Sie
|
||
kompilieren WeeChat selber. Dadurch befindet sich die `weechat`-Binärdatei
|
||
und alle erforderlichen Dateien in den selben Pfaden. +
|
||
Diese Installation kann durchgeführt werden, während WeeChat ausgeführt wird.
|
||
|
||
[[upgrade_command]]
|
||
=== Upgrade Befehl
|
||
|
||
WeeChat kann die neue Binärdatei mit Hilfe des <<command_weechat_upgrade,/upgrade>>
|
||
Befehls starten: der Bufferinhalt und nicht-TLS Verbindungen bleiben dabei erhalten. +
|
||
Eine TLS-Verbindung wird während des Upgrades getrennt und wird automatisch,
|
||
nach dem Beenden des Upgrades, wiederhergestellt (das aufrechterhalten einer
|
||
TLS-Sitzungen ist derzeit, mit GnuTLS, nicht möglich).
|
||
|
||
Der Befehl kann auch verwendet werden, wenn Sie den Computer neu starten müssen,
|
||
z.B. um den Kernel zu aktualisieren oder WeeChat auf einen anderen Computer zu verschieben:
|
||
|
||
----
|
||
/upgrade -quit
|
||
----
|
||
|
||
Dies speichert den aktuellen Status in `*.upgrade`-Dateien. Sie können dann entweder
|
||
die gesamten WeeChat-Verzeichnisse (Konfiguration, Daten, Cache) neu starten oder auf
|
||
einen anderen Computer verschieben und WeeChat später mit diesem Befehl neu starten:
|
||
|
||
[source,shell]
|
||
----
|
||
weechat --upgrade
|
||
----
|
||
|
||
[[restart_after_upgrade]]
|
||
=== Neustart nach Upgrade
|
||
|
||
[[restart_upgrading_notes]]
|
||
==== Hinweise zum Upgrade
|
||
|
||
Nach einem Upgrade, wird *dringend empfohlen* das Dokukment
|
||
https://github.com/weechat/weechat/blob/main/UPGRADING.md[UPGRADING.md ^↗^^]
|
||
zu lesen. Dieses Dokument enthält wichtige Informationen zu wichtigen Änderungen und
|
||
einige manuelle Aktionen, die erforderlich sein könnten.
|
||
|
||
Es sollten die Versionen zwischen der alten (abgelaufenen) und der neuen Version (eingeschlossen) gelesen werden. +
|
||
Wenn beispielsweise von Version 4.0.0 auf 4.3.0 gewechselt wurde, ist es ratsam die Versionen von 4.0.1 bis 4.3.0 zu lesen.
|
||
|
||
[[restart_configuration_upgrade]]
|
||
==== Konfigurations-Upgrade
|
||
|
||
WeeChat hat ein automatisches Upgrade für Konfigurationsdateien (`*.conf`):
|
||
|
||
* Neue Optionen werden stillschweigend mit dem Standardwert hinzugefügt
|
||
* Veraltete Optionen werden automatisch verworfen. WeeChat zeigt eine Warnung,
|
||
mit dem Wert der eingestellt war, im Core-Buffer, an.
|
||
|
||
Beispiel für eine Warnung, wenn eine Option entfernt wurde:
|
||
|
||
----
|
||
=!= Warnung: /home/user/.config/weechat/sec.conf, Zeile 15: unbekannte Einstellung für Sektion "crypt": passphrase_file = ""
|
||
----
|
||
|
||
Das bedeutet, dass die Option "sec.crypt.passphrase_file" entfernt wurde und der
|
||
Wert für diese Option eine leere Zeichenkette war. Dies war der Standardwert in
|
||
der vorherigen Version (in diesem Fall ist kein manuelles Eingreifen erforderlich).
|
||
|
||
[[interface]]
|
||
== Schnittstelle
|
||
|
||
[[screen_layout]]
|
||
=== Bildschirmgestaltung
|
||
|
||
Beispiel des WeeChat-Terminals:
|
||
|
||
....
|
||
▼ 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" und "input" Bar "nicklist" ▲
|
||
....
|
||
|
||
Standardmäßig ist der Bildschirm in folgende Bereiche unterteilt:
|
||
|
||
* Chat-Bereich (in der Mitte des Bildschirms). Dieser enthält den Text und zusätzlich für jede Zeile:
|
||
** die Uhrzeit
|
||
** Prefix (links von dem "|")
|
||
** Nachricht (rechts von dem "|")
|
||
* Die Bars können um den Chat-Bereich angeordnet werden. Bars, welche standardmäßig genutzt werden sind:
|
||
** _buflist_ Bar, auf der linken Seite
|
||
** _title_ Bar, über dem Chat-Bereich
|
||
** _status_ Bar, unter dem Chat-Bereich
|
||
** _input_ Bar, unter der Status-Bar
|
||
** _nicklist_ Bar, auf der rechten Seite
|
||
|
||
Die _buflist_-Bar besitzt als Standardeinträge:
|
||
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Item | Beispiel | Beschreibung
|
||
| buflist | `1.weechat` | Auflistung der Buffer.
|
||
|===
|
||
|
||
Die _title_-Bar besitzt als Standardeinträge:
|
||
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Item | Beispiel | Beschreibung
|
||
| buffer_title | `Willkommen in #test` | Buffer-Titel.
|
||
|===
|
||
|
||
Die _status_-Bar besitzt als Standardeinträge:
|
||
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Item | Beispiel | Beschreibung
|
||
| time | `12:55` | Uhrzeit.
|
||
| buffer_last_number | `5` | Nummer des letzten Buffers (kann sich unterscheiden von `buffer_count` wenn Option <<option_weechat.look.buffer_auto_renumber,weechat.look.buffer_auto_renumber>> deaktiviert (`off`) ist).
|
||
| buffer_plugin | `irc/libera` | Erweiterung des aktuellen Buffers (IRC Erweiterung setzt den IRC Servername für den Buffer).
|
||
| buffer_number | `2` | Aktuelle Nummer des Buffers.
|
||
| buffer_name | `#test` | Name des aktuellen Buffers.
|
||
| buffer_modes | `+n` | IRC Kanal-Modi.
|
||
| buffer_nicklist_count | `4` | Anzahl der Nicks die in der Nickliste angezeigt werden.
|
||
| buffer_zoom | ! | `!` bedeutet, dass ein zusammengefügter Buffer gezoomed (nur dieser Buffer wird angezeigt) wird.
|
||
| buffer_filter | `+*+` | Filteranzeige: `+*+` bedeutet das Zeilen gefiltert (unterdrückt) werden. Ein leerer Eintrag zeigt an, dass alle Zeilen dargestellt werden.
|
||
| mouse_status | `M` | Mouse status (empty if mouse is disabled), see command <<command_weechat_mouse,/mouse>> and <<key_bindings_toggle_keys,Tasten zum Umschalten von Funktionen>>.
|
||
| scroll | `-MORE(50)-` | Scroll Indikator, zeigt an wie viele Zeilen unterhalb der zur Zeit dargestellten Zeile vorhanden sind.
|
||
| lag | `Lag: 2.5` | Verzögerungsanzeige, in Sekunden (keine Anzeige falls Verzögerung gering).
|
||
| hotlist | `H: 3:#abc(2,5), 5` | Liste der Buffer mit Aktivität (ungelesene Nachrichten) (für das Beispiel: 2 Highlights und 5 ungelesene Nachrichten im Kanal _#abc_, eine ungelesene Nachricht in Buffer #5).
|
||
| typing | `Typing: bob, (alice)` | Schreibbenachrichtigung, siehe <<typing_notifications,Schreibbenachrichtigung>>.
|
||
| completion | `abc(2) def(5)` | Liste von Wörtern für Vervollständigung, die Zahl zeigt an wie viele Varianten möglich sind.
|
||
|===
|
||
|
||
In der _input_ Bar lautet die Standardeinstellung:
|
||
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Item | Beispiel | Beschreibung
|
||
| input_prompt | `@Flashy(i)` | Input prompt, für irc: Nick und Modi (Modus "+i" bedeutet auf libera, unsichtbar).
|
||
| away | `away` | Abwesenheitsanzeige.
|
||
| input_search | `Search lines (~ str,msg)` | Suchindikatoren ("`~`": Groß-und Kleinschreibung ignorieren, "`==`": Groß-und Kleinschreibung berücksichtigen, "`str`": einfache Textsuche, "`regex`": suche mit regulären Ausdrücken, "`msg`": Suche in Nachrichten, "`pre`": Suche in Präfix, "`pre\|msg`": Suche in Präfix und Nachrichten).
|
||
| input_paste | `Paste 7 lines ? [ctrl-y] Ja [ctrl-n] Nein` | Nachfrage, ob sieben Zeilen eingefügt werden sollen.
|
||
| input_text | `hi peter!` | Text der eingegeben wird.
|
||
|===
|
||
|
||
Es existieren zwei Suchmodi:
|
||
|
||
* Suche in Zeilen, zum Beispiel `[Search lines (~ str,msg)]`, mit folgenden Infos:
|
||
** `~`: Groß-und Kleinschreibung ignorieren
|
||
** `==`: Groß-und Kleinschreibung berücksichtigen
|
||
** `str`: einfache Textsuche
|
||
** `regex`: suche mit regulären Ausdrücken
|
||
** `msg`: Suche in Nachrichten
|
||
** `pre`: Suche in Präfix
|
||
** `pre\|msg`: Suche in Präfix und Nachrichten
|
||
* Suche im Befehlsverlauf, zum Beispiel `[Search command (~ str,local)]`,
|
||
mit den folgenden Informationen:
|
||
** `~`: Groß-und Kleinschreibung ignorieren
|
||
** `==`: Groß-und Kleinschreibung berücksichtigen
|
||
** `str`: einfache Textsuche
|
||
** `regex`: suche mit regulären Ausdrücken
|
||
** `local`: suche im lokalen Bufferverlauf
|
||
** `global`: suche im globalen Verlauf
|
||
|
||
In der _nicklist_ Bar lautet die Standardeinstellung:
|
||
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Item | Beispiel | Beschreibung
|
||
| buffer_nicklist | `@Flashy` | Liste der Nicks für den aktuellen Buffer.
|
||
|===
|
||
|
||
andere Items die zur Verfügung stehen (die aber nicht standardmäßig in einer Bar aktiviert sind):
|
||
|
||
[width="100%",cols="^3,^3,9",options="header"]
|
||
|===
|
||
| Item | Beispiel | Beschreibung
|
||
| buffer_count | `5` | absolute Anzahl an geöffneten Buffern.
|
||
| buffer_nicklist_count_all | `4` | Anzahl der sichtbaren Gruppen und Nicks in der Nickliste.
|
||
| buffer_nicklist_count_groups | `0` | Anzahl der sichtbaren Gruppen in der Nickliste.
|
||
| buffer_short_name | `#test` | Kurzname des aktuellen Buffers.
|
||
| buflist2 | `1.weechat` | Liste der Buffer, zweites Bar-Item (siehe Option <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
| buflist3 | `1.weechat` | Liste der Buffer, drittes Bar-Item (siehe Option <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
| buflist4 | `1.weechat` | Liste der Buffer, viertes Bar-Item (siehe Option <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
| buflist5 | `1.weechat` | Liste der Buffer, fünftes Bar-Item (siehe Option <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
| fset | `+buflist.look.sort: …+` | Hilfstext zur aktuell ausgewählten Option im Fset-Buffer.
|
||
| irc_channel | `#test` | aktueller Name des IRC Kanals.
|
||
| irc_host | `+user@host.com+` | aktueller IRC Host.
|
||
| irc_nick | `+Flashy+` | aktueller IRC Nick.
|
||
| irc_nick_host | `+Flashy!user@host.com+` | aktueller IRC Nick und Host.
|
||
| irc_nick_modes | `i` | IRC Modi für den eigenen Nick.
|
||
| irc_nick_prefix | `@` | IRC Nick-Präfix für den Kanal.
|
||
| spacer | | spezielles Item um Text in einer Bar auszurichten, siehe <<item_spacer,Spacer item>>.
|
||
| spell_dict | `de,en` | zeigt an welche Wörterbücher für die Rechtschreibung im aktuellen Buffer genutzt werden.
|
||
| spell_suggest | `Glück,Glocke,Block` | Vorschläge für ein falsch geschriebenes Wort.
|
||
| tls_version | `TLS1.3` | TLS Version die für den IRC Server genutzt wird.
|
||
| window_number | `2` | Nummer des aktuellen Fensters.
|
||
|===
|
||
|
||
Jeder Aspekt des Layouts kann mit den entsprechenden <<command_line,Befehlen>>
|
||
angepasst werden:
|
||
<<command_weechat_bar,`/bar`>> um die Bars anzupassen,
|
||
<<command_weechat_buffer,/buffer>> und <<command_weechat_window,`/window`>>
|
||
um <<buffers_and_windows,Buffer und Fenster>> anzupassen,
|
||
und <<command_weechat_layout,/layout>> um das Bildschirmlayout zu benennen,
|
||
zu speichern und wiederherzustellen sowie die Zuordnung zwischen Fenstern
|
||
und Buffern zu behalten.
|
||
|
||
[[command_line]]
|
||
=== Befehlszeile
|
||
|
||
In der WeeChat Befehlszeile (am unteren Rand des Fensters) können Befehle ausgeführt oder
|
||
ein Text in den Buffer geschrieben werden.
|
||
|
||
[[command_line_syntax]]
|
||
==== Syntax
|
||
|
||
Ein Befehl wird durch das Zeichen "/" eingeleitet, gefolgt von dem Namen des Befehls. In folgendem
|
||
Beispiel werden alle Konfigurationsoptionen angezeigt:
|
||
|
||
----
|
||
/set
|
||
----
|
||
|
||
Jeder Text der nicht mit dem Zeichen "/" beginnt wird in den Buffer geschrieben.
|
||
In folgendem Beispiel wird der Text _Hallo_ in den aktuellen Buffer geschrieben:
|
||
|
||
----
|
||
Hallo
|
||
----
|
||
|
||
Dennoch ist es möglich einen Text in den Buffer zu schreiben der mit dem Zeichen "/" beginnt.
|
||
Dazu muss dem ersten "/" ein zweites "/" vorangestellt werden. Um den Befehl `/set` als Text zu senden:
|
||
|
||
----
|
||
//set
|
||
----
|
||
|
||
[[command_line_colors]]
|
||
==== Farbkodierung
|
||
|
||
Für einige Erweiterungen wie z.B. der IRC Erweiterung können Farbkodierungen und Attribute für den
|
||
Text gesetzt werden. Dazu muss die Tastenkombination kbd:[Ctrl+c], gefolgt von einem der folgenden
|
||
Zeichen, genutzt werden:
|
||
|
||
[width="100%",cols="1,2",options="header"]
|
||
|===
|
||
| Taste | Beschreibung
|
||
| kbd:[Ctrl+c], kbd:[b] | Text wird fett dargestellt.
|
||
| kbd:[Ctrl+c], kbd:[c],
|
||
kbd:[xx] | Textfarbe `xx` (siehe Farbtabelle).
|
||
| kbd:[Ctrl+c], kbd:[c],
|
||
kbd:[xx], kbd:[,],
|
||
kbd:[yy] | Textfarbe `xx` und Hintergrundfarbe `yy` (siehe Farbtabelle).
|
||
| kbd:[Ctrl+c], kbd:[d],
|
||
kbd:[xxxxxx] | Textfarbe `xxxxxx` (RGB als hexadezimale Zahl, zum Beispiel `FF0000` für rot).
|
||
| kbd:[Ctrl+c], kbd:[d],
|
||
kbd:[xxxxxx], kbd:[,],
|
||
kbd:[yyyyyy] | Textfarbe `xxxxxx` und Hintergrundfarbe `yyyyyy` (RGB als hexadezimale Zahl).
|
||
| kbd:[Ctrl+c], kbd:[i] | Text wird kursiv dargestellt.
|
||
| kbd:[Ctrl+c], kbd:[o] | deaktiviert Farben und Attribute.
|
||
| kbd:[Ctrl+c], kbd:[s] | durchgestrichener Text (die Darstellung findet in halber Helligkeit statt, da die ncurses Oberfläche keinen durchgestrichenen Text unterstützt).
|
||
| kbd:[Ctrl+c], kbd:[v] | Farben umkehren (kehrt Textfarbe und Hintergrundfarbe um).
|
||
| kbd:[Ctrl+c], kbd:[_] | Text wird mit Unterstrich dargestellt.
|
||
|===
|
||
|
||
[NOTE]
|
||
Der selbe Code (ohne Nummer für kbd:[Ctrl+c], kbd:[c] und kbd:[Ctrl+c], kbd:[d])
|
||
kann verwendet werden, um das Attribut zu stoppen.
|
||
|
||
Farbtabelle für kbd:[Ctrl+c], kbd:[c]:
|
||
|
||
include::{autogendir}/autogen_user_irc_colors.de.adoc[tag=irc_colors]
|
||
|
||
[NOTE]
|
||
Um sich alle verfügbaren Farben anzeigen zu lassen, die der Terminal
|
||
unterstützt, kann man in WeeChat die Tastenkombination kbd:[Alt+c]
|
||
im `/color` Buffer nutzen oder im Terminal den Befehl `weechat --colors` ausführen.
|
||
|
||
Beispiel: Im Buffer wird "Hallo Alice!" ausgegeben. Dabei wird "Hallo" in Fettschrift
|
||
und hellblau und "Alice" rot und unterstrichen dargestellt.
|
||
|
||
----
|
||
^Cc12^CbHallo ^Cb^Cc04^C_Alice^C_^Cc!
|
||
----
|
||
|
||
Tastenbefehl:
|
||
|
||
kbd:[Ctrl+c] kbd:[c] kbd:[1] kbd:[2] kbd:[Ctrl+c] kbd:[b] +
|
||
kbd:[H] kbd:[a] kbd:[l] kbd:[l] 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]
|
||
Die Farben können in der IRC Erweiterung neu belegt werden,
|
||
mittels der Option <<option_irc.color.mirc_remap,irc.color.mirc_remap>>.
|
||
|
||
[[buffers_and_windows]]
|
||
=== Buffer und Fenster
|
||
|
||
Ein _Buffer_ setzt sich zusammen aus einer Nummer, besitzt einem Namen, hat Zeilen die angezeigt
|
||
werden (und noch anderen Daten).
|
||
|
||
Beispiele von Buffern:
|
||
|
||
* Core Buffer (wird durch WeeChat beim Programmstart erstellt und kann nicht geschlossen werden!)
|
||
* IRC Server (hier werden die Nachrichten ausgegeben die der Server verschickt)
|
||
* IRC Kanal
|
||
* IRC Privat (wird auch Query-Buffer genannt)
|
||
|
||
Ein _Fenster_ ist ein Bildschirmbereich der Buffer darstellt. Es ist möglich
|
||
den Bildschirm in mehrere Fenster aufzuteilen (Beispiele:
|
||
<<window_split_examples,below>>, siehe den Befehl <<command_weechat_window,/window>>
|
||
für weitere Details).
|
||
|
||
Jedes Fenster stellt einen Buffer dar. Ein Buffer kann unsichtbar sein (er wird
|
||
in einem Fenster nicht angezeigt) oder ein Buffer wird durch ein oder mehrere Fenster
|
||
angezeigt.
|
||
|
||
Bildschirmlayouts und die Zuordnung zwischen Fenstern und Buffern können
|
||
<<command_weechat_layout,gespeichert und wiederhergestellt>> werden.
|
||
|
||
[[window_split_examples]]
|
||
==== Beispiele
|
||
|
||
Beispiele für eine horizontal Fensteraufteilung (`/window splith`):
|
||
|
||
....
|
||
▼ Fenster #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!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ Fenster #1 (Buffer #3)
|
||
....
|
||
|
||
Beispiele für eine vertikale Fensteraufteilung (`/window splitv`):
|
||
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│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] │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ Fenster #1 (Buffer #3) ▲ Fenster #2 (Buffer #4)
|
||
....
|
||
|
||
Beispiele für eine vertikale und horizontale Fensteraufteilung:
|
||
|
||
....
|
||
▼ Fenster #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] │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ Fenster #1 (Buffer #3) ▲ Fenster #2 (Buffer #4)
|
||
....
|
||
|
||
[[bare_display]]
|
||
==== einfacher Anzeigemodus
|
||
|
||
Ein vereinfachter Anzeigemodus, mit Namen "bare", kann aktiviert werden um
|
||
überlange URLs ganz einfach mit der Maus anzuklicken oder um Text mit der
|
||
Maus zu markieren.
|
||
|
||
Der vereinfachte Anzeigemodus hat folgende Funktionen:
|
||
|
||
* es wird lediglich der Inhalt des aktuellen Buffers angezeigt, es findet keine
|
||
Aufteilung des Fensters statt, es werden keine Bars angezeigt (Title, Nicklist,
|
||
Status, Input, ...)
|
||
* die Mausunterstützung ist deaktiviert (sofern sie aktiviert war): die Maus kann
|
||
wie in einem Terminal genutzt werden um URLs anzuklicken oder Text zu markieren
|
||
* ncurses wird nicht genutzt, deshalb werden URLs am Ende der Zeile nicht abgeschnitten.
|
||
|
||
Der Standardtastenbefehl um den vereinfachten Textmodus zu aktivieren ist kbd:[Alt+l] (`L`),
|
||
mit dem selben Tastenbefehl wird dieser Modus wieder beendet (dieser Modus kann auch
|
||
mit jeder beliegen Tasteneingabe beendet werden, siehe Option
|
||
<<option_weechat.look.bare_display_exit_on_input,weechat.look.bare_display_exit_on_input>>).
|
||
|
||
Das Format für die Zeitanzeige kann mit folgender Option angepasst werden
|
||
<<option_weechat.look.bare_display_time_format,weechat.look.bare_display_time_format>>.
|
||
|
||
Der vereinfachte Anzeigemodus kann mit einer vorgegebenen Zeit gestartet werden
|
||
<<command_weechat_window,/window>>.
|
||
|
||
Im normalen Modus sieht WeeChat wie folgt aus:
|
||
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│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!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
Der selbe Bildschirm sieht im vereinfachten Anzeigemodus wie folgt aus:
|
||
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│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 │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
Es kann nun die URL von _joe_ ohne Probleme angeklickt werden (dies setzt
|
||
natürlich voraus, dass der Terminal das Anwählen von URLs unterstützt).
|
||
|
||
[[buffers]]
|
||
=== Buffern
|
||
|
||
[[lines_format]]
|
||
==== Format von Zeilen
|
||
|
||
Zeilen die in einem formatierten Buffer dargestellt werden haben folgende Felder:
|
||
|
||
[width="100%",cols="2,2,10",options="header"]
|
||
|===
|
||
| Feld | Ansicht | Beschreibung
|
||
| Datum/Zeit(Nachricht)| Ja | Datum/Zeit einer Nachricht (möglicherweise die Vergangenheit).
|
||
| Datum/Zeit(Ausgabe) | Nein | Datum/Zeit wenn WeeChat eine Nachricht ausgibt.
|
||
| Präfix | Ja | Präfix einer Nachricht, gewöhnlich der Nick.
|
||
| Nachricht | Ja | Die eigentliche Nachricht.
|
||
| Ansicht | Nein | Boolean: wahr, falls Zeile angezeigt wird, unwahr, falls die Zeile if line gefiltert wird. Siehe Befehl <<command_weechat_filter,/filter>>.
|
||
| Highlight | Nein | Boolean: wahr, falls die Zeile ein Highlight enthält, unwahr, falls nicht.
|
||
| Tags | mittels `/debug tags` | Tags die im Zusammenhang mit der Zeile stehen (siehe <<lines_tags,lines tags>>).
|
||
|===
|
||
|
||
Die Darstellung von Zeilen kann mittels Optionen individualisiert werden. Zum einen mittels der "look"-Optionen
|
||
(_pass:[weechat.look.*]_) und der Color-Optionen (_pass:[weechat.color.chat_*]_).
|
||
|
||
[[lines_tags]]
|
||
==== Tags in Zeilen
|
||
|
||
WeeChat nutzt Tags für unterschiedliche Aufgaben:
|
||
|
||
* highlight
|
||
* Benachrichtigungsstufe
|
||
* logging
|
||
* für Befehle <<command_weechat_filter,/filter>>
|
||
|
||
Tags kann man sich mit dem Befehl `/debug tags` anzeigen lassen (den Befehl ein zweites mal ausführen um die Tags wieder unsichtbar zu machen).
|
||
|
||
Tags die häufig verwendet werden (keine vollständige Auflistung):
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Tag | Beschreibung
|
||
| no_filter | Zeile kann nicht gefiltert werden.
|
||
| no_highlight | die Zeile kann nicht gehiglighted werden.
|
||
| no_log | Zeile wird nicht in die Log-Datei geschrieben.
|
||
| log0 … log9 | Grad der Protokollierung (siehe den Befehl <<command_logger_logger,/logger>>).
|
||
| notify_none | Diese Zeile wird erzeugt keinen Hotlist-Eintrag. ^(1)^
|
||
| notify_message | Diese Zeile ist eine User Nachricht. ^(1)^
|
||
| notify_private | Diese Zeile ist eine private Nachricht. ^(1)^
|
||
| notify_highlight | Diese Zeile beinhaltet eine Highlight Nachricht. ^(1)^
|
||
| self_msg | eigene Nachricht.
|
||
| nick_xxx | Nachricht ist vom Nick "xxx".
|
||
| prefix_nick_ccc | Präfix für den Nick mit der Farbe "ccc".
|
||
| host_xxx | Username und Host in der Nachricht.
|
||
| irc_xxx | IRC Nachricht "xxx" (kann ein Befehl oder eine dreistellige Zahl sein).
|
||
| irc_numeric | IRC nummerische Nachricht.
|
||
| irc_error | Fehler vom IRC Server.
|
||
| irc_action | Action von einem Nick (Befehl `/me`).
|
||
| irc_ctcp | CTCP Nachricht.
|
||
| irc_ctcp_reply | Antwort auf eine CTCP Nachricht.
|
||
| irc_smart_filter | IRC Nachricht die mittels "smart filter" unterdrückt werden kann.
|
||
| away_info | Nachricht mit "away" Information.
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Wenn kein "notify_xxx" Tag vorhanden ist, ist die Benachrichtigungsstufe "low".
|
||
Falls ein "notify_xxx" Tag vorhanden ist, kann die tatsächliche Benachrichtigungsstufe
|
||
unterschiedlich sein. Wenn beispielsweise der max hotlist level für einen Nick verwendet
|
||
wird, kann die Benachrichtigungsstufe niedriger sein als der Wert im Tag.
|
||
|
||
[[local_variables]]
|
||
==== lokale Variablen
|
||
|
||
Lokale Variablen können für alle Buffer definiert werden.
|
||
|
||
Eine lokale Variable besteht:
|
||
|
||
* aus einem Namen (Zeichenkette)
|
||
* und aus einem Wert (Zeichenkette, kann leer sein).
|
||
|
||
Lokale Variablen können von WeeChat, Erweiterungen, Skripten oder manuell,
|
||
in der Befehlszeile eines Buffers, festgelegt werden.
|
||
|
||
So fügen Sie beispielsweise die lokale Variable "completion_default_template" hinzu:
|
||
|
||
----
|
||
/buffer setvar completion_default_template %(my_completion)
|
||
----
|
||
|
||
um sich alle lokalen Variablen des aktuellen Buffers anzeigen zu lassen:
|
||
|
||
----
|
||
/buffer listvar
|
||
----
|
||
|
||
So entfernen Sie die lokale Variable "completion_default_template":
|
||
|
||
----
|
||
/buffer delvar completion_default_template
|
||
----
|
||
|
||
Standardmäßig interpretieren WeeChat und seine Standard-Erweitertungen diese Variablen:
|
||
|
||
[width="100%",cols="2m,2,5",options="header"]
|
||
|===
|
||
| Name | Wert | Beschreibung
|
||
|
||
| away
|
||
| beliebige Zeichenkette
|
||
| Abwesenheitsnotiz auf dem Server, wird durch IRC Erweiterung genutzt.
|
||
|
||
| channel
|
||
| beliebige Zeichenkette
|
||
| Name des Kanals, wird durch irc/xfer Erweiterung und dem Debug-Buffer von relay/trigger Erweiterung genutzt.
|
||
|
||
| charset_modifier
|
||
| beliebige Zeichenkette
|
||
| Charset modifier für den Server-Buffer, wird durch IRC Erweiterung genutzt.
|
||
|
||
| completion_default_template
|
||
| beliebige Zeichenkette
|
||
| Vorlage für die standardmäßige Vervollständigung innerhalb eines Buffers, überschreibt die Option
|
||
`weechat.completion.default_template`.
|
||
|
||
| filter
|
||
| beliebige Zeichenkette
|
||
| Filter für einige Buffer definiert, zum Beispiel`/fset`, `/list` (irc), `/server raw` (irc)
|
||
und `/script`.
|
||
|
||
| host
|
||
| beliebige Zeichenkette
|
||
| eigener Host (sofern bekannt), wird durch IRC Erweiterung genutzt.
|
||
|
||
| lag
|
||
| beliebige Zeichenkette
|
||
| Verzögerung auf dem Server, wird durch IRC Erweiterung genutzt.
|
||
|
||
| name
|
||
| beliebige Zeichenkette
|
||
| Buffername (Vorsicht, dies ist nicht der vollständige Name des Buffers und reicht nicht aus, um einen Buffer zu identifizieren oder zu suchen).
|
||
|
||
| nick
|
||
| beliebige Zeichenkette
|
||
| eigener Nick, wird durch IRC und xfer Erweiterung genutzt.
|
||
|
||
| no_log
|
||
| `1` (oder jede andere nicht leere Zeichenkette)
|
||
| Wenn festgelegt, protokolliert die Logger-Erweiterung nichts für den Buffer.
|
||
|
||
| plugin
|
||
| beliebige Zeichenkette
|
||
| Name der Erweiterung welche den Buffer erstellt hat (`core` für WeeChat-Buffer).
|
||
|
||
| script_close_cb
|
||
| beliebige Zeichenkette
|
||
| Close callback, für diesen Buffer durch ein Skript definiert.
|
||
|
||
| script_close_cb_data
|
||
| beliebige Zeichenkette
|
||
| Daten für ein Close callback, welches durch ein Skript für diesen Buffer definiert wurde.
|
||
|
||
| script_input_cb
|
||
| beliebige Zeichenkette
|
||
| Input callback, für diesen Buffer durch ein Skript definiert.
|
||
|
||
| script_input_cb_data
|
||
| beliebige Zeichenkette
|
||
| Daten für ein Input callback, welches durch ein Skript für diesen Buffer definiert wurde.
|
||
|
||
| script_name
|
||
| beliebige Zeichenkette
|
||
| Name des Skriptes welches den Buffer erstellt hat.
|
||
|
||
| server
|
||
| beliebige Zeichenkette
|
||
| Servername, wird durch IRC Erweiterung genutzt und durch den Debug-Buffer von relay/trigger Erweiterung.
|
||
|
||
| spell_suggest
|
||
| beliebige Zeichenkette
|
||
| falsch geschriebenes Wort und Korrekturvorschläge (Format: "fehlerhaftes Wort:Korrekturvorschläge"), wird durch
|
||
spell-Erweiterung definiert.
|
||
|
||
| trigger_filter
|
||
| beliebige Zeichenkette
|
||
| Trigger-Filter, wird durch Trigger-Erweiterung definiert.
|
||
|
||
| type
|
||
| beliebige Zeichenkette, zum Beispiel:
|
||
`channel`,
|
||
`debug`,
|
||
`exec`,
|
||
`option`,
|
||
`private`,
|
||
`relay`,
|
||
`script`,
|
||
`server`,
|
||
`user`,
|
||
`xfer`
|
||
| Buffertyp, festgelegt von WeeChat und vielen Erweiterungen.
|
||
|
||
|===
|
||
|
||
[NOTE]
|
||
Externe Erweitertungen und Skripte können andere lokale Variablen definieren und verwenden.
|
||
|
||
[[buflist]]
|
||
=== Liste der Buffer
|
||
|
||
Die Buflist-Erweiterung dient dazu eine Liste der geöffneten Buffer in einer Bar-Item, mit Namen
|
||
"buflist", darzustellen (vier weitere Bar-Items sind dabei verfügbar "buflist2", "buflist3", "buflist4"
|
||
und "buflist5"). +
|
||
Eine Standardbar, "buflist", wird beim Programmstart automatisch mit folgendem Inhalt erstellt.
|
||
|
||
[[buflist_commands]]
|
||
==== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=buflist_commands]
|
||
|
||
[[buflist_options]]
|
||
==== Optionen
|
||
|
||
Sektionen in Datei _buflist.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| format | /set buflist.format.* | Format für die Darstellung der Bufferliste.
|
||
| look | /set buflist.look.* | Erscheinungsbild.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=buflist_options]
|
||
|
||
[[cursor_mode]]
|
||
=== Cursor-Modus
|
||
|
||
Mit dem Cursormodus können Sie den Cursor frei an eine beliebige Stelle auf dem Bildschirm bewegen,
|
||
sowohl im Chatbereich als auch in Bars und ermöglicht das Ausführen von Aktionen an der angegebenen Position. +
|
||
Sie können den Cursormodus entweder mit dem Befehl `/cursor` oder mit der mittleren Maustaste aktivieren
|
||
(Maus muss mit der Taste kbd:[Alt+m] oder dem Befehl `/mouse enable` aktiviert worden sein).
|
||
|
||
Typischer Anwendungszweck ist das Zitieren von Nachrichten (Chat-Bereich) oder die Interaktion mit Nicks (Nicklist-Leiste).
|
||
|
||
Siehe Befehl <<command_weechat_cursor,/cursor>> und
|
||
<<key_bindings_cursor_context,key bindings in cursor context>>, für die Liste
|
||
der Aktionen, die in diesem Modus ausgeführt werden können.
|
||
|
||
[[key_bindings]]
|
||
== Tastenbelegungen
|
||
|
||
WeeChat bietet viele Standardtastenzuordnungen, die in den folgenden Kapiteln aufgeführt sind. +
|
||
Sie können mit dem Befehl <<command_weechat_key,/key>> geändert und neue hinzugefügt werden.
|
||
|
||
[[key_bindings_cmdline]]
|
||
=== Kommandozeile
|
||
|
||
[[key_bindings_cmdline_cursor_movement]]
|
||
==== Cursorbewegung
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[←] +
|
||
kbd:[Shift+←] +
|
||
kbd:[Ctrl+b] | setzt den Cursor eine Position nach links. | `+/input move_previous_char+`
|
||
| kbd:[→] +
|
||
kbd:[Shift+→] +
|
||
kbd:[Ctrl+f] | setzt den Cursor eine Position nach rechts. | `+/input move_next_char+`
|
||
| kbd:[Shift+↑] | gehe zur vorherigen Zeile. | `+/input move_previous_line+`
|
||
| kbd:[Shift+↓] | gehe zur nächsten Zeile. | `+/input move_next_line+`
|
||
| kbd:[Ctrl+←] +
|
||
kbd:[Alt+b] | springt in der Befehlszeile zum Anfang des vorherigen Wortes. | `+/input move_previous_word+`
|
||
| kbd:[Ctrl+→] +
|
||
kbd:[Alt+f] | springt in der Befehlszeile zum Anfang des nächsten Wortes. | `+/input move_next_word+`
|
||
| kbd:[Home] +
|
||
kbd:[Ctrl+a] | Zum Anfang der aktuellen Zeile springen. | `+/input move_beginning_of_line+`
|
||
| kbd:[Shift+Home] | Zum Anfang der Befehlszeile springen. | `+/input move_beginning_of_input+`
|
||
| kbd:[End] +
|
||
kbd:[Ctrl+e] | Zum Ende der aktuellen Zeile springen. | `+/input move_end_of_line+`
|
||
| kbd:[Shift+End] | Zum Ende der Befehlszeile springen. | `+/input move_end_of_input+`
|
||
|===
|
||
|
||
[[key_bindings_cmdline_editing]]
|
||
==== Bearbeitung
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[Del] +
|
||
kbd:[Ctrl+d] | entfernt in der Befehlszeile das nächste Zeichen. | `+/input delete_next_char+`
|
||
| kbd:[Backspace] +
|
||
kbd:[Ctrl+h] | entfernt in der Befehlszeile das vorherige Zeichen. | `+/input delete_previous_char+`
|
||
| kbd:[Ctrl+k] | Vom Cursor bis zum Ende der aktuellen Zeile löschen (gelöschte Zeichenfolge wird in die interne Zwischenablage kopiert). | `+/input delete_end_of_line+`
|
||
| kbd:[Alt+Ctrl+k] | Vom Cursor bis zum Ende der Kommandozeile löschen (gelöschter String wird in die interne Zwischenablage kopiert). | `+/input delete_end_of_input+`
|
||
| kbd:[Ctrl+t] | Zeichen austauschen. | `+/input transpose_chars+`
|
||
| kbd:[Ctrl+u] | Vom Cursor bis zum Anfang der aktuellen Zeile löschen (gelöschte Zeichenkette wird in die interne Zwischenablage kopiert). | `+/input delete_beginning_of_line+`
|
||
| kbd:[Alt+Ctrl+u] | Vom Cursor bis zum Anfang der Befehlszeile löschen (gelöschte Zeichenkette wird in die interne Zwischenablage kopiert). | `+/input delete_beginning_of_input+`
|
||
| kbd:[Alt+Backspace] | entfernt das Wort links vom Cursor (die Zeichenkette wird dabei in die interne Zwischenablage kopiert). | `+/input delete_previous_word+`
|
||
| kbd:[Ctrl+w] | Vorheriges Wort der Befehlszeile löschen bis zum Leerzeichen (gelöschte Zeichenfolge wird in die interne Zwischenablage kopiert). | `+/input delete_previous_word_whitespace+`
|
||
| kbd:[Ctrl+y] | fügt den Inhalt der internen Zwischenablage ein. | `+/input clipboard_paste+`
|
||
| kbd:[Ctrl+_] | Rückgängig machen der letzten Aktion, in der Befehlszeile. | `+/input undo+`
|
||
| kbd:[Alt+_] | Wiederherstellen der letzten Aktion, in der Befehlszeile. | `+/input redo+`
|
||
| kbd:[Tab] | Vervollständigung von Befehlen oder Nicks (nochmaliges kbd:[Tab]: findet nächste Vervollständigung). | `+/input complete_next+`
|
||
| kbd:[Shift+Tab] | ohne Vervollständigung: führt eine teilweise Vervollständigung durch. Bei unerledigter Vervollständigung : wird die vorherige Vervollständigung genutzt. | `+/input complete_previous+`
|
||
| kbd:[Enter] +
|
||
kbd:[Ctrl+j] +
|
||
kbd:[Ctrl+m] | führt einen Befehl aus oder sendet den Text (im Such-Modus: stoppt Suche). | `+/input return+`
|
||
| kbd:[Alt+Enter] | Zeilenvorschub einfügen. | `+/input insert \n+`
|
||
| kbd:[Alt+d] | löscht das Wort rechts vom Cursor (die Zeichenkette wird dabei in die interne Zwischenablage kopiert). | `+/input delete_next_word+`
|
||
| kbd:[Alt+k] | zeigt den Tastencode, einschließlich des eingebundenen Befehls, einer Tastenkombination an und fügt diesen in die Befehlszeile ein. | `+/input grab_key_command+`
|
||
| kbd:[Alt+r] | Lösche aktuelle Zeile. | `+/input delete_line+`
|
||
| kbd:[Alt+R] | Lösche komplette Eingabetext. | `+/input delete_input+`
|
||
|===
|
||
|
||
[[key_bindings_cmdline_color_codes]]
|
||
==== Farbkodierung
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[Ctrl+c], kbd:[b] | fügt Steuerzeichen für fett geschrieben Text ein. | `+/input insert \x02+`
|
||
| kbd:[Ctrl+c], kbd:[c] | fügt Steuerzeichen für Textfarbe ein. | `+/input insert \x03+`
|
||
| kbd:[Ctrl+c], kbd:[d] | fügt Steuerzeichen für Textfarbe ein (RGB Farbe, als hexadezimale Zahl). | `+/input insert \x04+`
|
||
| kbd:[Ctrl+c], kbd:[i] | fügt Steuerzeichen für kursiven Text ein. | `+/input insert \x1D+`
|
||
| kbd:[Ctrl+c], kbd:[o] | fügt Steuerzeichen für Standardfarbe ein. | `+/input insert \x0F+`
|
||
| kbd:[Ctrl+c], kbd:[s] | fügt Steuerzeichen für durchgestrichenen Text ein. | `+/input insert \x1E+`
|
||
| kbd:[Ctrl+c], kbd:[v] | fügt Steuerzeichen für Hintergrundfarbe ein. | `+/input insert \x16+`
|
||
| kbd:[Ctrl+c], kbd:[_] | fügt Steuerzeichen für unterstrichenen Text ein. | `+/input insert \x1F+`
|
||
|===
|
||
|
||
[[key_bindings_cmdline_history]]
|
||
==== Befehlsverlauf
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[↑] | ruft vorherigen Befehl oder Nachricht aus dem Verlaufsspeicher auf (im Such-Modus: rückwärts suchen). | `+/input history_previous+`
|
||
| kbd:[↓] | ruft nächsten Befehl oder Nachricht aus dem Verlaufsspeicher auf (im Such-Modus: vorwärts suchen). | `+/input history_next+`
|
||
| kbd:[Ctrl+↑] | ruft vorherigen Befehl/Nachricht aus dem globalen Verlaufsspeicher auf (für alle Buffer). | `+/input history_global_previous+`
|
||
| kbd:[Ctrl+↓] | ruft nächsten Befehl/Nachricht aus dem globalen Verlaufsspeicher auf (für alle Buffer). | `+/input history_global_next+`
|
||
|===
|
||
|
||
[[key_bindings_cmdline_system]]
|
||
==== System
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[Ctrl+z] | Breche den Weechat-Prozess ab | `+/sys suspend+`
|
||
|===
|
||
|
||
[[key_bindings_buffers]]
|
||
=== Buffer
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[Ctrl+r] | sucht nach Text im Befehlsverlauf (siehe <<key_bindings_histsearch_context,keys for context "histsearch">>). | `+/input search_history+`
|
||
| kbd:[Ctrl+s] | sucht nach Text in Bufferzeilen (siehe <<key_bindings_search_context,keys for context "search">>). | `+/input search_text_here+`
|
||
| kbd:[Ctrl+x] | Wechseln Sie den aktuellen Buffer, wenn diese zusammengefügt worden sind, z.B. zwischen IRC-Serverbuffer wechseln. | `+/buffer switch+`
|
||
| kbd:[Alt+x] | Zoom eines zusammengefügten Buffers (kbd:[Alt+x] ein zweites mal: alle zusammengefügten Buffer werden angezeigt). | `+/buffer zoom+`
|
||
| kbd:[PgUp] | eine Seite im Verlaufsspeicher des Buffers nach oben blättern. | `+/window page_up+`
|
||
| kbd:[PgDn] | eine Seite im Verlaufsspeicher des Buffer nach unten blättern. | `+/window page_down+`
|
||
| kbd:[Alt+PgUp] | einige Zeilen im Verlaufsspeicher des Buffer nach oben blättern. | `+/window scroll_up+`
|
||
| kbd:[Alt+PgDn] | einige Zeilen im Verlaufsspeicher des Buffer nach unten blättern. | `+/window scroll_down+`
|
||
| kbd:[Alt+Home] | springt zur ersten Zeile des Verlaufsspeichers des aktuellen Buffer.s| `+/window scroll_top+`
|
||
| kbd:[Alt+End] | springt zur letzten Zeile des Verlaufsspeichers des aktuellen Buffers. | `+/window scroll_bottom+`
|
||
| kbd:[Alt+←] +
|
||
kbd:[Alt+↑] +
|
||
kbd:[Ctrl+p] +
|
||
kbd:[F5] | zum vorherigen Buffer springen. | `+/buffer -1+`
|
||
| kbd:[Alt+→] +
|
||
kbd:[Alt+↓] +
|
||
kbd:[Ctrl+n] +
|
||
kbd:[F6] | zum nächsten Buffer springen. | `+/buffer +1+`
|
||
| kbd:[Alt+j], kbd:[Alt+f] | wechselt zum ersten Buffer. | `+/buffer -+`
|
||
| kbd:[Alt+j], kbd:[Alt+l] (`L`) | wechselt zum letzten Buffer. | `+/buffer ++`
|
||
| kbd:[Alt+j], kbd:[Alt+r] | wechselt zum IRC RAW Buffer. | `+/server raw+`
|
||
| kbd:[Alt+j], kbd:[Alt+s] | wechselt zum IRC Server Buffer. | `+/server jump+`
|
||
| kbd:[Alt+0...9] | wechselt zum Buffer mit der Nummer (0 = 10). | `+/buffer *N+`
|
||
| kbd:[Alt+j], kbd:[01...99] | wechselt zum Buffer mit der angegeben Nummer. | `+/buffer *NN+`
|
||
| kbd:[Alt+n] | springt zur nächsten Highlight Nachricht. | `+/window scroll_next_highlight+`
|
||
| kbd:[Alt+p] | springt zur vorherigen Highlight Nachricht. | `+/window scroll_previous_highlight+`
|
||
| kbd:[Alt+u] | springt zur ersten ungelesenen Zeile im Buffer. | `+/window scroll_unread+`
|
||
| kbd:[Alt+Shift+U] | setzt für alle Buffer die Markierung für ungelesene Nachrichten. | `+/allbuf /buffer set unread+`
|
||
| kbd:[Alt+<] | springt zum letzten besuchten Buffer. | `+/buffer jump prev_visited+`
|
||
| kbd:[Alt+>] | springt zum nächsten besuchten Buffer. | `+/buffer jump next_visited+`
|
||
| kbd:[Alt+/] | wechselt zum jeweils zuletzt angezeigten Buffern. | `+/buffer jump last_displayed+`
|
||
|===
|
||
|
||
[[key_bindings_windows]]
|
||
=== Fenster
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[Ctrl+l] (`L`) | Fenster wird neu gezeichnet. | `+/window refresh+`
|
||
| kbd:[Alt+l] (`L`) | schaltet einfachen Anzeigemodus an/aus. | `+/window bare+`
|
||
| kbd:[F7] | zum vorherigen Fenster wechseln. | `+/window -1+`
|
||
| kbd:[F8] | zum nächsten Fenster wechseln. | `+/window +1+`
|
||
| kbd:[Alt+w], kbd:[Alt+↑] | wechselt zum oberen Fenster. | `+/window up+`
|
||
| kbd:[Alt+w], kbd:[Alt+↓] | wechselt zum unteren Fenster. | `+/window down+`
|
||
| kbd:[Alt+w], kbd:[Alt+←] | wechselt zum linken Fenster. | `+/window left+`
|
||
| kbd:[Alt+w], kbd:[Alt+→] | wechselt zum rechten Fenster. | `+/window right+`
|
||
| kbd:[Alt+w], kbd:[Alt+b] | passt die Größe aller Fenster an. | `+/window balance+`
|
||
| kbd:[Alt+w], kbd:[Alt+s] | Wechselt Buffer von zwei Fenstern. | `+/window swap+`
|
||
| kbd:[Alt+z] | Zoom für aktuelles Fenster (nochmals kbd:[Alt+z]: stellt die vorherigen Einstellungen wieder her). | `+/window zoom+`
|
||
|===
|
||
|
||
[[key_bindings_bars]]
|
||
=== Bars
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[F1] +
|
||
kbd:[Ctrl+F1] | blättert eine Seite in der buflist hoch. | `+/bar scroll buflist * -100%+`
|
||
| kbd:[F2] +
|
||
kbd:[Ctrl+F2] | blättert eine Seite in der buflist runter. | `+/bar scroll buflist * +100%+`
|
||
| kbd:[Alt+F1] | springt zum Anfang der buflist. | `+/bar scroll buflist * b+`
|
||
| kbd:[Alt+F2] | springt zum Ende der buflist. | `+/bar scroll buflist * e+`
|
||
| kbd:[F9] | Titel des Buffers nach links verschieben. | `+/bar scroll title * -30%+`
|
||
| kbd:[F10] | Titel des Buffers nach rechts verschieben. | `+/bar scroll title * +30%+`
|
||
| kbd:[F11] +
|
||
kbd:[Ctrl+F11] | Benutzerliste um eine Seite nach oben blättern. | `+/bar scroll nicklist * -100%+`
|
||
| kbd:[F12] +
|
||
kbd:[Ctrl+F12] | Benutzerliste um eine Seite nach unten blättern. | `+/bar scroll nicklist * +100%+`
|
||
| kbd:[Alt+F11] | springt zum Anfang der Benutzerliste. | `+/bar scroll nicklist * b+`
|
||
| kbd:[Alt+F12] | springt zum Ende der Benutzerliste. | `+/bar scroll nicklist * e+`
|
||
| kbd:[Alt+Shift+B] | buflist-Bar umschalten. | `+/buflist toggle+`
|
||
| kbd:[Alt+Shift+N] | nicklist bar umschalten. | `+/bar toggle nicklist+`
|
||
|===
|
||
|
||
[[key_bindings_hotlist]]
|
||
=== Hotlist
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[Alt+a] | wechselt zum nächsten Buffer mit Aktivität (nach Priorität: highlight, Nachricht, ...). | `+/buffer jump smart+`
|
||
| kbd:[Alt+h], kbd:[Alt+c] | Hotlist löschen (Aktivitätsbenachrichtigung bei Buffern). | `+/hotlist clear+`
|
||
| kbd:[Alt+h], kbd:[Alt+m] | Aktuellen Puffer aus Hotlist entfernen. | `+/hotlist remove+`
|
||
| kbd:[Alt+h], kbd:[Alt+r] | stelle die letzte aus dem aktuellen Buffer entfernte Hotlist wieder her. | `+/hotlist restore+`
|
||
| kbd:[Alt+h], kbd:[Alt+Shift+R] | stelle die neueste Hotlist wieder her, die in allen Buffern entfernt wurde. | `+/hotlist restore -all+`
|
||
|===
|
||
|
||
[[key_bindings_toggle_keys]]
|
||
=== Tasten zum Umschalten von Funktionen
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[Alt+m] | schaltet Mausfunktion ein/aus. | `+/mouse toggle+`
|
||
| kbd:[Alt+s] | Umschalten der Rechtschreibprüfung. | `+/mute spell toggle+`
|
||
| kbd:[Alt+=] | schaltet Filterfunktion an/aus. | `+/filter toggle+`
|
||
| kbd:[Alt+-] | schaltet, für den aktuellen Buffer, Filterfunktion an/aus. | `+/filter toggle @+`
|
||
| kbd:[Alt+Ctrl+l] (`L`) | Umschalten zwischen Remote- und lokalen Befehlen in einem Remote-Buffer (relay "api"). | `+/remote togglecmd+`
|
||
|===
|
||
|
||
[[key_bindings_search_context]]
|
||
=== Suchkontext
|
||
|
||
Diese Tasten werden im Kontext "search" verwendet (wenn kbd:[Ctrl+s] gedrückt wird, um Text
|
||
in Bufferzeilen zu suchen).
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[Ctrl+x] | Wechsel des Suchmodus: einfache Textsuche (Standard), reguläre Ausdrücke. | `+/input search_switch_regex+`
|
||
| kbd:[Alt+c] | auf Groß-/Kleinschreibung umschalten. | `+/input search_switch_case+`
|
||
| kbd:[Tab] | wechselt Suche in: Nachricht (Standard), im Präfix, Präfix + Nachricht. | `+/input search_switch_where+`
|
||
| kbd:[Ctrl+r] +
|
||
kbd:[↑] | sucht vorheriger Zeile. | `+/input search_previous+`
|
||
| kbd:[Ctrl+s] +
|
||
kbd:[↓] | sucht nächste Zeile . | `+/input search_next+`
|
||
| kbd:[Enter] +
|
||
kbd:[Ctrl+j] +
|
||
kbd:[Ctrl+m] | beendet Suche ab aktueller Position. | `+/input search_stop_here+`
|
||
| kbd:[Ctrl+q] | Suche wird abgebrochen und der Bildlauf wird auf die Vortextsuche zurückgesetzt. | `+/input search_stop+`
|
||
|===
|
||
|
||
[[key_bindings_histsearch_context]]
|
||
=== Kontext der Verlaufssuche
|
||
|
||
Diese Tasten werden im Kontext "histsearch" verwendet (wenn kbd:[Ctrl+r] gedrückt wird, um Text
|
||
im Befehlsverlauf zu suchen).
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Beschreibung | Befehl
|
||
| kbd:[Ctrl+x] | Wechsel des Suchmodus: einfache Textsuche (Standard), reguläre Ausdrücke. | `+/input search_switch_regex+`
|
||
| kbd:[Alt+c] | auf Groß-/Kleinschreibung umschalten. | `+/input search_switch_case+`
|
||
| kbd:[Tab] | umschalten der Suche für: lokaler Bufferverlauf (Standard), globaler Verlauf. | `+/input search_switch_where+`
|
||
| kbd:[Ctrl+r] +
|
||
kbd:[↑] | Suche in vorherigen (älteren) Verlaufseinträgen. | `+/input search_previous+`
|
||
| kbd:[Ctrl+s] +
|
||
kbd:[↓] | Suche in nachfolgenden (neueren) Verlaufseinträgen. | `+/input search_next+`
|
||
| kbd:[Enter] +
|
||
kbd:[Ctrl+j] +
|
||
kbd:[Ctrl+m] | Suche stoppen und übereinstimmende Eingaben verwenden. | `+/input search_stop_here+`
|
||
| kbd:[Ctrl+o] | führt den im Verlauf gefundenen Befehl aus und fügt den nächsten in die Befehlszeile ein. | `+/input history_use_get_next+`
|
||
| kbd:[Ctrl+q] | stoppt die Suche und stellt die Eingabe auf ihren ursprünglichen Wert zurück. | `+/input search_stop+`
|
||
|===
|
||
|
||
[[key_bindings_cursor_context]]
|
||
=== Cursor-Kontext
|
||
|
||
Diese Tasten werden im Kontext "cursor" verwendet (Cursor kann frei auf dem Bildschirm bewegt werden),
|
||
see <<cursor_mode,Cursor mode>>.
|
||
|
||
[width="100%",cols="^.^3,^.^2,.^7,.^7",options="header"]
|
||
|===
|
||
| Taste | Bereich | Beschreibung | Befehl
|
||
| kbd:[↑] | - | bewegt den Cursor eine Zeile nach oben. | `+/cursor move up+`
|
||
| kbd:[↓] | - | bewegt den Cursor eine Zeile nach unten. | `+/cursor move down+`
|
||
| kbd:[←] | - | bewegt den Cursor eine Spalte nach links. | `+/cursor move left+`
|
||
| kbd:[→] | - | bewegt den Cursor eine Spalte nach rechts. | `+/cursor move right+`
|
||
| kbd:[Alt+↑] | - | bewegt den Cursor zur ersten Zeile des Bereichs. | `+/cursor move edge_top+`
|
||
| kbd:[Alt+↓] | - | bewegt den Cursor zur letzten Zeile des Bereichs. | `+/cursor move edge_bottom+`
|
||
| kbd:[Alt+←] | - | bewegt den Cursor zur ersten Spalte des Bereichs. | `+/cursor move edge_left+`
|
||
| kbd:[Alt+→] | - | bewegt den Cursor zur letzten Spalte des Bereichs. | `+/cursor move edge_right+`
|
||
| kbd:[Alt+Home] | - | bewegt den Cursor in die obere linke Ecke des Bereichs. | `+/cursor move top_left+`
|
||
| kbd:[Alt+End] | - | bewegt den Cursor in die untere rechte Ecke des Bereichs. | `+/cursor move bottom_right+`
|
||
| kbd:[Alt+Shift+↑] | - | bewegt den Cursor einen Bereich nach oben. | `+/cursor move area_up+`
|
||
| kbd:[Alt+Shift+↓] | - | bewegt den Cursor einen Bereich nach unten. | `+/cursor move area_down+`
|
||
| kbd:[Alt+Shift+←] | - | bewegt den Cursor einen Bereich nach links. | `+/cursor move area_left+`
|
||
| kbd:[Alt+Shift+→] | - | bewegt den Cursor einen Bereich nach rechts. | `+/cursor move area_right+`
|
||
| kbd:[m] | Chat | zitiert Nachricht. | `+hsignal:chat_quote_message;/cursor stop+`
|
||
| kbd:[l] | Chat | zitiert aktuelle Zeile. | `+hsignal:chat_quote_focused_line;/cursor stop+`
|
||
| kbd:[q] | Chat | zitiert prefix + Nachricht. | `+hsignal:chat_quote_prefix_message;/cursor stop+`
|
||
| kbd:[Q] | Chat | zitiert Uhrzeit + prefix + Nachricht. | `+hsignal:chat_quote_time_prefix_message;/cursor stop+`
|
||
| kbd:[b] | Benutzerliste | verbannt nick (Ban). | `+/window ${_window_number};/ban ${nick}+`
|
||
| kbd:[k] | Benutzerliste | kickt nick. | `+/window ${_window_number};/kick ${nick}+`
|
||
| kbd:[K] | Benutzerliste | kickt und verbannt nick. | `+/window ${_window_number};/kickban ${nick}+`
|
||
| kbd:[q] | Benutzerliste | öffnet privaten Chat mit Nick. | `+/window ${_window_number};/query ${nick};/cursor stop+`
|
||
| kbd:[w] | Benutzerliste | führt einen whois für Nick aus. | `+/window ${_window_number};/whois ${nick}+`
|
||
| kbd:[Enter] +
|
||
kbd:[Ctrl+j] +
|
||
kbd:[Ctrl+m] | - | beendet den Cursor-Modus. | `+/cursor stop+`
|
||
|===
|
||
|
||
[[key_bindings_mouse]]
|
||
=== Maus
|
||
|
||
Diese Mausaktionen sind nur möglich, wenn die Maus mit der Taste kbd:[Alt+m] aktiviert
|
||
wurde (Befehl: `+/mouse toggle+`).
|
||
|
||
[width="100%",cols="^.^3,^.^3,^.^3,.^8,.^8",options="header"]
|
||
|===
|
||
| Maustaste/Mausrad ^(1)^ | Mausgeste | Bereich | Beschreibung | Befehl
|
||
| kbd:[■ □ □] | - | Chat | wechselt zum Fenster. | `+/window ${_window_number}+`
|
||
| kbd:[■ □ □] | links | Chat | zum vorherigen Buffer springen. | `+/window ${_window_number};/buffer +1+`
|
||
| kbd:[■ □ □] | rechts | Chat | zum nächsten Buffer springen. | `+/window ${_window_number};/buffer +1+`
|
||
| kbd:[■ □ □] | links(lang) | Chat | wechselt zum ersten Buffer. | `+/window ${_window_number};/buffer 1+`
|
||
| kbd:[■ □ □] | rechts(lang) | Chat | wechselt zum letzten Buffer. | `+/window ${_window_number};/buffer ++`
|
||
| kbd:[▲] | - | Chat | mehrere Zeilen im Verlaufsspeicher des Buffer nach oben blättern. | `+/window scroll_up -window ${_window_number}+`
|
||
| kbd:[▼] | - | Chat | mehrere Zeilen im Verlaufsspeicher des Buffer nach unten blättern. | `+/window scroll_down -window ${_window_number}+`
|
||
| kbd:[Ctrl+▲] | - | Chat | horizontal, nach links scrollen. | `+/window scroll_horiz -window ${_window_number} -10%+`
|
||
| kbd:[Ctrl+▼] | - | Chat | horizontal, nach rechts scrollen. | `+/window scroll_horiz -window ${_window_number} +10%+`
|
||
| kbd:[▲] | - | chat: fset Buffer | Auswahl wird fünf Einträge nach oben bewegt, im fset Buffer. | `+/fset -up 5+`
|
||
| kbd:[▼] | - | chat: fset buffer | Auswahl wird fünf Einträge nach unten bewegt, im fset Buffer. | `+/fset -down 5+`
|
||
| kbd:[■ □ □] | - | chat: fset buffer | springt zu einem Eintrag im fset Buffer. | `+/window ${_window_number};/fset -go ${fset_option_index}+`
|
||
| kbd:[□ □ ■] | - | chat: fset buffer | Boolean-Wert wird umgeschaltet (an/aus) oder editiere den Wert einer Option. | `+hsignal:fset_mouse+`
|
||
| kbd:[□ □ ■] | left | chat: fset buffer | Integer/Farbwerte/Aufzählung werden verringert, andere Variabletypen werden in die Eingabezeile kopiert. | `+hsignal:fset_mouse+`
|
||
| kbd:[□ □ ■] | right | chat: fset buffer | Integer/Farbwerte/Aufzählung werden erhöht, andere Variabletypen werden in die Eingabezeile kopiert. | `+hsignal:fset_mouse+`
|
||
| kbd:[□ □ ■] | up / down | chat: fset buffer | markieren/demarkieren von mehreren Optionen. | `+hsignal:fset_mouse+`
|
||
| kbd:[▲] | - | chat: /list buffer | gehe fünf Zeilen im /list-Buffer nach oben. | `+/list -up 5+`
|
||
| kbd:[▼] | - | chat: /list buffer | gehe fünf Zeilen im /list-Buffer nach unten. | `+/list -down 5+`
|
||
| kbd:[■ □ □] | - | chat: /list buffer | Zeile im /list-Buffer auswählen. | `+/window ${_window_number};/list -go ${_chat_line_y}+`
|
||
| kbd:[□ □ ■] | - | chat: /list buffer | tritt dem IRC-Kanal, in der ausgewählten Zeile, bei. | `+hsignal:irc_list_mouse+`
|
||
| kbd:[▲] | - | chat: script buffer | fünf Zeilen nach oben blättern, im Script-Buffer. | `+/script -up 5+`
|
||
| kbd:[▼] | - | chat: script buffer | fünf Zeilen nach unten blättern, im Script-Buffer. | `+/script -down 5+`
|
||
| kbd:[■ □ □] | - | chat: script buffer | wählt einen Eintrag im Script-Buffer aus. | `+/script -go ${_chat_line_y}+`
|
||
| kbd:[□ □ ■] | - | chat: script buffer | installiert/entfernt ein Skript. | `+/script -go ${_chat_line_y};/script installremove -q ${script_name_with_extension}+`
|
||
| kbd:[■ □ □] | up / left | buflist | verschiebt Buffer in der Reihenfolge nach unten. | Signal `+buflist_mouse+`.
|
||
| kbd:[■ □ □] | down / right | buflist | verschiebt Buffer in der Reihenfolge nach oben. | Signal `+buflist_mouse+`.
|
||
| kbd:[■ □ □] | - | buflist | wechselt zum Buffer (oder zum vorherigen Buffer, falls der aktuell genutzte Buffer angewählt wurde). | Signal `+buflist_mouse+`.
|
||
| kbd:[□ □ ■] | - | buflist | wechselt zum nächsten Buffer, falls der aktuell genutzte Buffer angewählt wurde. | Signal `+buflist_mouse+`.
|
||
| kbd:[Ctrl+▲] | - | buflist | wechselt zum vorherigen Buffer. | Signal `+buflist_mouse+`.
|
||
| kbd:[Ctrl+▼] | - | buflist | wechselt zum nächsten Buffer. | Signal `+buflist_mouse+`.
|
||
| kbd:[■ □ □] | hoch | Benutzerliste | Benutzerliste um eine Seite nach oben blättern. | `+/bar scroll nicklist ${_window_number} -100%+`
|
||
| kbd:[■ □ □] | runter | Benutzerliste | Benutzerliste um eine Seite nach unten blättern. | `+/bar scroll nicklist ${_window_number} +100%+`
|
||
| kbd:[■ □ □] | hoch(lang) | Benutzerliste | springt zum Anfang der Benutzerliste. | `+/bar scroll nicklist ${_window_number} b+`
|
||
| kbd:[■ □ □] | runter(lang) | Benutzerliste | springt zum Ende der Benutzerliste. | `+/bar scroll nicklist ${_window_number} e+`
|
||
| kbd:[■ □ □] | - | Benutzerliste | öffnet privaten Chat mit Nick. | `+/window ${_window_number};/query ${nick}+`
|
||
| kbd:[□ □ ■] | - | Benutzerliste | führt einen whois für Nick aus. | `+/window ${_window_number};/whois ${nick}+`
|
||
| kbd:[■ □ □] | links | Benutzerliste | kickt Nick. | `+/window ${_window_number};/kick ${nick}+`
|
||
| kbd:[■ □ □] | links(lang) | Benutzerliste | kickt und verbannt Nick. | `+/window ${_window_number};/kickban ${nick}+`
|
||
| kbd:[□ □ ■] | links | Benutzerliste | verbannt Nick. | `+/window ${_window_number};/ban ${nick}+`
|
||
| kbd:[□ □ ■] | - | Input | fängt ein Mausereignis und fügt dieses in die Befehlszeile ein. | `+/input grab_mouse_area+`
|
||
| kbd:[▲] | - | jede Bar | blättert Bar um 20% nach oben. | `+/bar scroll ${_bar_name} ${_window_number} -20%+`
|
||
| kbd:[▼] | - | jede Bar | blättert Bar um 20% nach unten. | `+/bar scroll ${_bar_name} ${_window_number} +20%+`
|
||
| kbd:[□ ■ □] | - | überall | aktiviert den Cursor-Modus an dieser Position. | `+/cursor go ${_x},${_y}+`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Buttons: +
|
||
kbd:[◼ □ □]: Klicke linke Maustaste +
|
||
kbd:[□ ◼ □]: Klicke mittlere Maustaste +
|
||
kbd:[□ □ ◼]: Klicke rechte Maustaste +
|
||
Mausrad: +
|
||
kbd:[▲]: Mausrad hoch +
|
||
kbd:[▼]: Mausrad runter
|
||
|
||
[[key_bindings_fset_buffer]]
|
||
=== Fset Buffer
|
||
|
||
Diese Tasten und Aktionen werden im fset-Buffer verwendet (siehe <<fset,Fset Erweiterung>>).
|
||
|
||
[width="100%",cols="^.^3,^.^2,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Action ^(1)^ | Beschreibung | Befehl
|
||
| kbd:[↑] | | einen Eintrag nach oben. | `+/fset -up+`
|
||
| kbd:[↓] | | einen Eintrag nach unten. | `+/fset -down+`
|
||
| kbd:[PgUp] | | eine Seite hoch blättern. | `+/window page_up+`
|
||
| kbd:[PgDn] | | eine Seite runter blättern. | `+/window page_down+`
|
||
| kbd:[Alt+Home] | `pass:[<<]` | springt zum ersten Eintrag. | `+/fset -go 0+`
|
||
| kbd:[Alt+End] | `pass:[>>]` | springt zum letzten Eintrag. | `+/fset -go end+`
|
||
| kbd:[F11] | `pass:[<]` | scrollt horizontal nach links. | `+/fset -left+`
|
||
| kbd:[F12] | `pass:[>]` | scrollt horizontal nach rechts. | `+/fset -right+`
|
||
| kbd:[Alt+Space] | `t` | Boolean Wert ein/ausschalten. | `+/fset -toggle+`
|
||
| kbd:[Alt+-] | `-` | subtrahiert 1 vom Wert bei Integer/Farboptionen/Aufzählung, bei anderen Typen kann der Wert editiert werden. | `+/fset -add -1+`
|
||
| kbd:[Alt++] | `+` | addiert 1 zum Wert bei Integer/Farboptionen/Aufzählung, bei anderen Typen kann der Wert editiert werden. | `+/fset -add 1+`
|
||
| kbd:[Alt+f], kbd:[Alt+r] | `r` | Wert resetten. | `+/fset -reset+`
|
||
| kbd:[Alt+f], kbd:[Alt+u] | `u` | Wert zurücksetzen. | `+/fset -unset+`
|
||
| kbd:[Alt+Enter] | `s` | Wert setzen. | `+/fset -set+`
|
||
| kbd:[Alt+f], kbd:[Alt+n] | `n` | ein neuer Wert wird gesetzt, der alte Wert wird gelöscht. | `+/fset -setnew+`
|
||
| kbd:[Alt+f], kbd:[Alt+a] | `a` | dem Wert was hinzufügen. | `+/fset -append+`
|
||
| kbd:[Alt+,] | `,` | markieren/demarkieren einer Option. | `+/fset -mark 1+`
|
||
| kbd:[Shift+↑] | | eine Zeile nach oben und markiert/demarkiert Option. | `+/fset -up; /fset -mark+`
|
||
| kbd:[Shift+↓] | | markiert/demarkiert Option und geht eine Zeile nach unten. | `+/fset -mark; /fset -down+`
|
||
| | `m:xxx` | markiert Optionen welche angezeigt werden und auf die der Filter "xxx" zutrifft (jeder Filter für Option oder Wert ist erlaubt, siehe Befehl <<command_fset_fset,/fset>>). |
|
||
| | `u:xxx` | demarkiert Optionen welche angezeigt werden und auf die der Filter "xxx" zutrifft (jeder Filter für Option oder Wert ist erlaubt, siehe Befehl <<command_fset_fset,/fset>>). |
|
||
| kbd:[Ctrl+l] (`L`) | | der Bildschirm wird neu gezeichnet. | `+/fset -refresh+`
|
||
| | `$` | Optionen neu einlesen (markierte Optionen werden beibehalten). |
|
||
| | `$$` | Optionen neu einlesen (Markierungen von Optionen werden dabei gelöscht). |
|
||
| kbd:[Alt+p] | `p` | Umschalten der Beschreibung von Erweiterungen (`pass:[plugins.desc.*]`). | `+/mute /set fset.look.show_plugins_desc toggle+`
|
||
| kbd:[Alt+v] | `v` | Hilfe-Bar Ein-/Ausschalten. | `+/bar toggle fset+`
|
||
| | `s:x,y` | sortiert Optionen nach Bereichen x,y (siehe Option <<option_fset.look.sort,fset.look.sort>>). | `+/mute /set fset.look.sort x,y+`
|
||
| | `s:` | setzt Sortierung wieder auf Standardwerte (siehe Option <<option_fset.look.sort,fset.look.sort>>). | `+/mute /unset fset.look.sort+`
|
||
| | `w:xxx` | exportiert Optionen in Datei "xxx". | `+/fset -export xxx+`
|
||
| | `w-:xxx` | exportiert Optionen in Datei "xxx", ohne Hilfstext. | `+/fset -export -nohelp xxx+`
|
||
| | `w+:xxx` | exportiert Optionen in Datei "xxx", mit Hilfstext. | `+/fset -export -help xxx+`
|
||
| kbd:[Ctrl+x] | `x` | Umschalten zwischen der Darstellung von Optionen. | `+/fset -format+`
|
||
| | `q` | fset Buffer schließen. | `+/buffer close+`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Die Aktion muss als Eingabe in die Befehlszeile eingegeben werden, gefolgt von kbd:[Enter].
|
||
|
||
[[key_bindings_irc_list_buffer]]
|
||
=== IRC /list Buffer
|
||
|
||
Diese Tastenbefehle und Aktionen können im IRC /list-Buffer genutzt werden (siehe Befehl <<command_irc_list,/list>>).
|
||
|
||
[width="100%",cols="^.^3,^.^2,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Action ^(1)^ | Beschreibung | Befehl
|
||
| kbd:[↑] | | einen Eintrag nach oben. | `+/list -up+`
|
||
| kbd:[↓] | | einen Eintrag nach unten. | `+/list -down+`
|
||
| kbd:[PgUp] | | eine Seite hoch blättern. | `+/window page_up+`
|
||
| kbd:[PgDn] | | eine Seite runter blättern. | `+/window page_down+`
|
||
| kbd:[Alt+Home] | `pass:[<<]` | springt zum ersten Eintrag. | `+/list -go 0+`
|
||
| kbd:[Alt+End] | `pass:[>>]` | springt zum letzten Eintrag. | `+/list -go end+`
|
||
| kbd:[F11] | `pass:[<]` | scrollt horizontal nach links. | `+/list -left+`
|
||
| kbd:[F12] | `pass:[>]` | scrollt horizontal nach rechts. | `+/list -right+`
|
||
| kbd:[Ctrl+j] | `j` | Join IRC channel on selected line. | `+/list -join+`
|
||
| | `xxx` | zeigt nur Kanäle an mit "xxx" im Namen oder Thema (Groß- und Kleinschreibung wird ignoriert). |
|
||
| | `n:xxx` | zeigt nur Kanäle mit im Namen (Groß- und Kleinschreibung wird ignoriert). |
|
||
| | `t:xxx` | zeigt nur Kanäle mit "xxx" im Thema (Groß- und Kleinschreibung wird ignoriert). |
|
||
| | `u:n` | zeigt nur Kanäle mit wenigstens "n" Usern. |
|
||
| | `u:>n` | zeigt nur Kanäle mit mehr als "n" Usern |
|
||
| | `u:<n` | zeigt nur Kanäle mit weniger als "n" Usern |
|
||
| | `c:xxx` | zeigt nur Kanäle an, die der ausgewerteten Bedingung, "xxx", entsprechen , unter Verwendung folgender Variablen: name, name2, users, topic |
|
||
| | `s:x,y` | sortiert Kanäle nach Feldern x,y (siehe Befehl <<command_irc_list,/list>>). |
|
||
| | `s:` | Sortierung auf den Standardwert zurücksetzen (siehe Befehl <<command_irc_list,/list>>). |
|
||
| | `$` | Liste aktualisieren (Der Befehl <<command_irc_list,/list>> wird erneut ausgeführt). |
|
||
| | `q` | Buffer schließen. | `+/buffer close+`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Die Aktion muss als Eingabe in die Befehlszeile eingegeben werden, gefolgt von kbd:[Enter].
|
||
|
||
[[key_bindings_script_buffer]]
|
||
=== Skriptbuffer
|
||
|
||
Diese Tasten und Aktionen werden im fset-Buffer verwendet (siehe <<script_manager,script manager>>).
|
||
|
||
[width="100%",cols="^.^3,^.^2,.^8,.^5",options="header"]
|
||
|===
|
||
| Taste | Action ^(1)^ | Beschreibung | Befehl
|
||
| kbd:[↑] | | eine Zeile nach oben. | `+/script -up+`
|
||
| kbd:[↓] | | eine Zeile nach unten. | `+/script -down+`
|
||
| kbd:[PgUp] | | eine Seite hoch blättern. | `+/window page_up+`
|
||
| kbd:[PgDn] | | eine Seite nach unten blättern. | `+/window page_down+`
|
||
| kbd:[Alt+i] | `i` | Skript installieren. | `+/script install+`
|
||
| kbd:[Alt+r] | `r` | Skript entfernen. | `+/script remove+`
|
||
| kbd:[Alt+l] | `l` | Skript laden. | `+/script load+`
|
||
| kbd:[Alt+L] | `L` | Skript neu laden. | `+/script reload+`
|
||
| kbd:[Alt+u] | `u` | Skript wird beendet. | `+/script unload+`
|
||
| kbd:[Alt+Shift+A] | `A` | das Skript wird in das autoload-Verzeichnis eingebunden. | `+/script toggleautoload+`
|
||
| kbd:[Alt+h] | `h` | Skript wird gehalten bzw. freigegeben. | `+/script hold+`
|
||
| kbd:[Alt+v] | `v` | Skript Quelltext anzeigen. | `+/script show+`
|
||
| | `s:x,y` | Sortiert Skrips nach Feldern x,y (siehe Option <<option_script.look.sort,script.look.sort>>). |
|
||
| | `s:` | Sortierung auf den Standardwert zurücksetzen (siehe Option <<option_script.look.sort,script.look.sort>>). |
|
||
| | `$` | Liste aktualisieren. |
|
||
| | `q` | Buffer schließen. | `+/buffer close+`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Die Aktion muss als Eingabe in die Befehlszeile eingegeben werden, gefolgt von kbd:[Enter].
|
||
|
||
[[configuration]]
|
||
== Konfiguration
|
||
|
||
[[fset]]
|
||
=== Fset
|
||
|
||
Die fset Erweiterung stellt eine Liste aller Optionen in einem Buffer dar und erleichtert
|
||
die Konfiguration von WeeChat und Erweiterungen.
|
||
|
||
Beispiel des fset-Buffer, der Optionen anzeigt, die mit `weechat.look` beginnen:
|
||
|
||
[subs="quotes"]
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.weechat│7/125 | Filter: weechat.look.* | Sortierung: ~name | Taste(input): alt+Lee>>│
|
||
│2.fset │weechat.look.bare_display_exit_on_input: beendet den einfachen Anzeigemodus │
|
||
│ │durch Tastendruck [Standardwert: on] │
|
||
│ │----------------------------------------------------------------------------│
|
||
│ │ weechat.look.align_end_of_lines Aufzählung message │
|
||
│ │ weechat.look.align_multiline_words boolesch on │
|
||
│ │ weechat.look.bar_more_down Zeichenkette "++" │
|
||
│ │ weechat.look.bar_more_left Zeichenkette "<<" │
|
||
│ │ weechat.look.bar_more_right Zeichenkette ">>" │
|
||
│ │ weechat.look.bar_more_up Zeichenkette "--" │
|
||
│ │## weechat.look.bare_display_exit_on_input boolesch on ##│
|
||
│ │ weechat.look.bare_display_time_format Zeichenkette "%H:%M" │
|
||
│ │ weechat.look.buffer_auto_renumber boolesch on │
|
||
│ │ weechat.look.buffer_notify_default Aufzählung all │
|
||
│ │ weechat.look.buffer_position Aufzählung end │
|
||
│ │ weechat.look.buffer_search_case_sensitive boolesch off │
|
||
│ │ weechat.look.buffer_search_force_default boolesch off │
|
||
│ │ weechat.look.buffer_search_history Aufzählung local │
|
||
│ │ weechat.look.buffer_search_regex boolesch off │
|
||
│ │ weechat.look.buffer_search_where Aufzählung prefix_message │
|
||
│ │ weechat.look.buffer_time_format Zeichenkette "%H:%M:%S" │
|
||
│ │[12:55] [2] [fset] 2:fset │
|
||
│ │█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[fset_commands]]
|
||
==== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=fset_commands]
|
||
|
||
[[fset_options]]
|
||
==== Optionen
|
||
|
||
Sektionen in Datei _fset.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| color | /set fset.color.* | Farben.
|
||
| format | /set fset.format.* | Format um die Liste der Optionen darzustellen.
|
||
| look | /set fset.look.* | Erscheinungsbild.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=fset_options]
|
||
|
||
[[colors]]
|
||
=== Farben
|
||
|
||
[[colors_basic]]
|
||
==== Basisfarben
|
||
|
||
Basisfarben in WeeChat sind:
|
||
|
||
[width="75%",cols="1m,4",options="header"]
|
||
|===
|
||
| Name | Farbe
|
||
| default | Standard Terminalfarbe (transparent für Hintergrund)
|
||
| black | Schwarz
|
||
| darkgray | Dunkelgrau
|
||
| red | Dunkelrot
|
||
| lightred | Hellrot
|
||
| green | Dunkelgrün
|
||
| lightgreen | Hellgrün
|
||
| brown | Braun
|
||
| yellow | Gelb
|
||
| blue | Dunkelblau
|
||
| lightblue | Hellblau
|
||
| magenta | Dunkel magenta
|
||
| lightmagenta | Hell magenta
|
||
| cyan | Dunkel türkis
|
||
| lightcyan | Hell türkis
|
||
| gray | Grau
|
||
| white | Weiß
|
||
|===
|
||
|
||
[[colors_extended]]
|
||
==== erweiterte Farbpalette
|
||
|
||
WeeChat belegt Farbpaarungen dynamisch, sobald die Farbe genutzt werden soll. Zum Beispiel,
|
||
um mit einer Farbe Buffer oder Bars zu nutzen.
|
||
|
||
Zu den Basisfarben können zusätzlich Farben zwischen eins und der maximalen Anzahl an Farben
|
||
genutzt werden, die vom jeweiligen Terminal zur Verfügung gestellt werden.
|
||
|
||
Mit dem `/color` Befehl kann man sich sowohl die aktuelle Farbpalette anzeigen lassen als
|
||
auch die Anzahl der zu nutzenden Farben. Mit kbd:[Alt+c] kann man vorübergehend zu den
|
||
Terminalfarben wechseln, um eine Farbe auszuwählen.
|
||
|
||
Um zum Beispiel die Uhrzeit in einem Buffer in einem schönen Orange darstellen zu lassen:
|
||
|
||
----
|
||
/set weechat.color.chat_time 214
|
||
----
|
||
|
||
oder falls man den Hintergrund der Statusleiste in einm sehr dunklen Grün haben möchte:
|
||
|
||
----
|
||
/set weechat.bar.status.color_bg 22
|
||
----
|
||
|
||
[[colors_aliases]]
|
||
==== Alias
|
||
|
||
Man kann einer Farbe einen Alias zuordnen um diesen Alias anstelle der Farbzahl in
|
||
die Optionen einzutragen. Um einen Alias zu definieren nutzt man den Befehl
|
||
`/color alias`.
|
||
|
||
Beispiel:
|
||
|
||
----
|
||
/color alias 214 orange
|
||
/set weechat.color.chat_delimiters orange
|
||
----
|
||
|
||
[[colors_attributes]]
|
||
==== Attribute
|
||
|
||
Er ist möglich einer Farbe ein Attribut hinzuzufügen. Dazu wird dem
|
||
Farbnamen oder der Farbnummer ein- oder mehrere Attribute vorangestellt.
|
||
|
||
* `+%+`: blinken
|
||
* `+.+`: "dim" (halb hell)
|
||
* `+*+` : fett
|
||
* `+!+` : invertierte Darstellung
|
||
* `+/+` : kursiven
|
||
* `+_+` : unterstrichen
|
||
* `+|+`: Attribute beibehalten: blinken/dim/fett/invertierte Darstellung/kursiv/unterstrichen nicht zurücksetzen, wenn die Farbe geändert wird
|
||
|
||
Um zum Beispiel dem eigenen Nick die Farbe weiß und unterstrichen
|
||
zuzuordnen:
|
||
|
||
----
|
||
/set weechat.color.chat_nick_self _white
|
||
----
|
||
|
||
oder um die Zeitanzeige in der Statuszeile orange, fett und unterstrichen
|
||
darzustellen:
|
||
|
||
----
|
||
/set weechat.color.status_time *_214
|
||
----
|
||
|
||
Um einer Standard-Terminalfarbe (-1) ein Attribut hinzuzufügen muss eine Zahl
|
||
gewählt werden die größer ist als die letzte genutzte Farbe des Terminals.
|
||
Zum Beispiel; maximale Farbwahl in WeeChat: 99999.
|
||
|
||
Um der Vordergrundfarbe des Terminals das Attribut "fett" zuzuordnen:
|
||
|
||
----
|
||
/set weechat.color.status_time *99999
|
||
----
|
||
|
||
[[charset]]
|
||
=== Charset
|
||
|
||
Die Charset-Erweiterung übernimmt das de-/kodieren der Zeichensätze.
|
||
|
||
Es existiert ein Standardzeichensatz zum de-/kodieren und spezielle Zeichensätze
|
||
für Buffer (oder Gruppen von Buffern).
|
||
|
||
Diese Erweiterung ist optional, sie wird aber empfohlen. Wenn diese Erweiterung
|
||
nicht genutzt wird steht WeeChat lediglich UTF-8 zur Verfügung.
|
||
|
||
Die Charset Erweiterung wird automatisch von WeeChat geladen. Um sicher zu gehen
|
||
dass diese Erweiterung geladen wurde führen Sie folgenden Befehl aus:
|
||
|
||
----
|
||
/charset
|
||
----
|
||
|
||
Wird der Befehl nicht gefunden dann kann die Erweiterung mit dem nachfolgenden
|
||
Befehl nachgeladen werden:
|
||
|
||
----
|
||
/plugin load charset
|
||
----
|
||
|
||
Wird die Erweiterung nicht geladen dann sollten Sie WeeChat nochmals mit allen
|
||
Erweiterungen und der Charset Unterstützung kompilieren.
|
||
|
||
Wird die Charset Erweiterung gestartet dann wird der Terminal und der interne
|
||
Zeichensatz genutzt. Welcher Terminal Zeichensatz genutzt wird hängt davon ab
|
||
welchen Zeichensatz Sie lokal nutzen. Intern wird UTF-8 genutzt.
|
||
|
||
Beispiel:
|
||
|
||
....
|
||
charset: terminal: ISO-8859-15, internal: UTF-8
|
||
....
|
||
|
||
[[charset_set]]
|
||
==== Zeichensatz auswählen
|
||
|
||
Um einen Zeichensatz zum de-/kodieren zu bestimmen wird der Befehl `/set` genutzt.
|
||
|
||
Beispiel:
|
||
|
||
----
|
||
/set charset.default.decode ISO-8859-15
|
||
/set charset.default.encode ISO-8859-15
|
||
----
|
||
|
||
Wenn der globale Zeichensatz zum dekodieren nicht gesetzt ist (dies tritt beim
|
||
ersten Aufruf des Charset Erweiterung auf) dann wird automatisch der Zeichensatz
|
||
genutzt der vom Terminal verwendet wird (sofern dieser nicht UTF-8 ist) oder
|
||
der Standardzeichensatz _ISO-8859-1_.
|
||
|
||
Der Standardwert zum kodieren ist nicht gesetzt. Deshalb wird der interne Zeichensatz
|
||
(UTF-8) genutzt.
|
||
|
||
Um einen Zeichensatz für IRC Server einzustellen wird der Befehl `/charset` im Server
|
||
Buffer ausgeführt. Wird nur der Zeichensatz als Argument übergeben wird dieser sowohl
|
||
zum kodieren als auch dekodieren genutzt.
|
||
|
||
Beispiel:
|
||
|
||
----
|
||
/charset ISO-8859-15
|
||
----
|
||
|
||
ist identisch mit den Befehlen:
|
||
|
||
----
|
||
/charset decode ISO-8859-15
|
||
/charset encode ISO-8859-15
|
||
----
|
||
|
||
Um den Zeichensatz in einem IRC-Kanal (oder in einem privaten Buffer) zu ändern
|
||
wird der selbe Befehl im entsprechenden Buffer genutzt.
|
||
|
||
Um die Zeichenkodierung für alle Kanäle und privaten Buffer eines IRC Server zu ändern:
|
||
|
||
----
|
||
/set charset.encode.irc.libera ISO-8859-15
|
||
----
|
||
|
||
Um sich alle genutzten Zeichensätze anzeigen zu lassen wird folgender Befehl genutzt:
|
||
|
||
----
|
||
/set charset.*
|
||
----
|
||
|
||
[[charset_troubleshooting]]
|
||
==== Fehlersuche
|
||
|
||
Sollten Probleme bei der Zeichensatzdarstellung auftreten dann werfen Sie bitte
|
||
einen Blick in die link:weechat_faq.de.html#charset[WeeChat FAQ / Charset ^↗^^].
|
||
|
||
[[charset_commands]]
|
||
==== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=charset_commands]
|
||
|
||
[[charset_options]]
|
||
==== Optionen
|
||
|
||
Sektionen in Datei _charset.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| default | /set charset.default.* | Vorgegebener Zeichensatz zum De-/kodieren.
|
||
| decode | <<command_charset_charset,/charset decode>> +
|
||
/set charset.decode.* | Zeichensatz zum dekodieren (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
| encode | <<command_charset_charset,/charset encode>> +
|
||
/set charset.encode.* | Zeichensatz zum kodieren (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=charset_options]
|
||
|
||
[[notify_levels]]
|
||
=== Benachrichtigungsstufen
|
||
|
||
[[setup_notify_levels]]
|
||
==== Benachrichtigungsstufen einstellen
|
||
|
||
Es gibt vier Benachrichtigungsstufen für Nachrichten, welche in Buffern dargestellt
|
||
werden. Nachfolgend eine Liste, sortiert von niedrig nach hoch:
|
||
|
||
* _low_: Nachricht mit einer geringen Wertigkeit (zum Beispiel: IRC join/part/quit)
|
||
* _message_: Nachricht von einem User
|
||
* _private_: Nachricht in einem privaten Buffer
|
||
* _highlight_: wenn es sich um eine _highlight_ Nachricht handelt
|
||
|
||
Jeder Buffer besitzt eine Benachrichtigungsstufe, um festzulegen, bei welchen Nachrichten
|
||
der entsprechende Buffer in der Hotlist angezeigt werden soll.
|
||
|
||
Der Wert für die Benachrichtigungsstufe kann mittels folgender Option festgelegt
|
||
werden:
|
||
<<option_weechat.look.buffer_notify_default,weechat.look.buffer_notify_default>>,
|
||
Der Standardwert ist _all_.
|
||
|
||
[width="75%",cols="2m,7",options="header"]
|
||
|===
|
||
| Benachrichtigungsstufe | Welche Nachrichten Berücksichtigung in der Hotlist finden
|
||
| none | (keine)
|
||
| highlight | highlight + private Nachrichten
|
||
| message | highlight + private Nachrichten + normale Nachrichten
|
||
| all | highlight + private Nachrichten + normal Nachrichten + Nachrichten mit einer niedrigen Priorität
|
||
|===
|
||
|
||
Benachrichtigungsstufen können für mehrere Buffer definiert werden. Zum Beispiel
|
||
für alle Buffer des IRC Servers "libera":
|
||
|
||
----
|
||
/set weechat.notify.irc.libera message
|
||
----
|
||
|
||
Setzt die Benachrichtigungsstufe ausschließlich für den Kanal "#weechat",
|
||
auf die Stufe _highlight_:
|
||
|
||
----
|
||
/set weechat.notify.irc.libera.#weechat highlight
|
||
----
|
||
|
||
Die Benachrichtigungsstufe für einen Buffer kann mittels dem `/buffer`
|
||
Befehl festgelegt werden:
|
||
|
||
----
|
||
/buffer notify highlight
|
||
----
|
||
|
||
[[max_hotlist_level_nicks]]
|
||
==== Maximaler Hotlist-Level für Nicks
|
||
|
||
Es ist möglich den sogenannten maximalen Hotlist-Level für einzele Nicks einzustellen,
|
||
per Buffer oder für mehrere Gruppen (wie IRC Server).
|
||
|
||
Die Buffer-Eigenschaft "hotlist_max_level_nicks" kann mit einer Anzahl von Nicks genutzt werden
|
||
und für jeden einzelen Nick kann ein maximler Hotlist-Level eingestellt wertden. Mögliche Stufen sind:
|
||
|
||
* -1: keine Änderungen an der Hotlist für den entsprechenden Nick
|
||
* 0: niedrige Priorität (zum Beispiel join/part Nachrichten)
|
||
* 1: Nachricht
|
||
* 2: private Nachricht
|
||
* 3: Highlight (eigentlich unnötig, da es standardmäßig die höchste Stufe für alle Nachrichten ist)
|
||
|
||
Um zum Beispiel Highlights von "joe" und "mike" im aktuellen Buffer zu deaktivieren:
|
||
|
||
----
|
||
/buffer setauto hotlist_max_level_nicks_add joe:2,mike:2
|
||
----
|
||
|
||
[[highlights]]
|
||
=== Hervorhebungen
|
||
|
||
[[highlights_disable]]
|
||
==== Hervorhebungen deaktivieren
|
||
|
||
Hervorhebungen können mit der Option
|
||
<<option_weechat.look.highlight_disable_regex,weechat.look.highlight_disable_regex>>
|
||
(regulärer Ausdruck) deaktiviert werden. +
|
||
Wenn eine Hervorhebung mit dieser Option deaktiviert wird, werden die anderen
|
||
Hervorhebungsoptionen ignoriert.
|
||
|
||
Zum Beispiel, Nachrichten die eine Hervorhebung besitzen, wo die Nachricht
|
||
mit "flash" zwischen spitzen Klammern beginnt:
|
||
|
||
----
|
||
/set weechat.look.highlight_disable_regex "<flash.*>"
|
||
----
|
||
|
||
Dies kann auch mit der Buffereigenschaft „highlight_disable_regex“ eingestellt werden.
|
||
|
||
Gleiches Beispiel, spezifisch für den aktuellen Buffer:
|
||
|
||
----
|
||
/buffer setauto highlight_disable_regex <flash.*>
|
||
----
|
||
|
||
[[highlights_words]]
|
||
==== Worte als Highlights hinzufügen
|
||
|
||
Standardmäßig werden in WeeChat alle Nachrichten von anderen Personen als highlight
|
||
deklariert, falls diese den eigenen Nick beinhalten. Deshalb ist ein highlight abhängig
|
||
vom jeweiligen Buffer (ein Nick kann je nach Buffer unterschiedlich sein)
|
||
|
||
Es können weitere Wörter zu den highlights hinzugefügt werden, mit der Option
|
||
<<option_weechat.look.highlight,weechat.look.highlight>>, zum Beispiel um
|
||
neben dem eigenen Nick auch die Wörter "Wort1","Wort2" und alle Wörter die mit
|
||
"Test" beginnen zu highlighten:
|
||
|
||
----
|
||
/set weechat.look.highlight "Wort1,Wort2,Test*"
|
||
----
|
||
|
||
Wird eine spezielle Regel benötigt, dann können reguläre Ausdrücke
|
||
verwendet werden. Dazu sollte man folgende Option nutzen:
|
||
<<option_weechat.look.highlight_regex,weechat.look.highlight_regex>>,
|
||
um zum Beispiel die Wörter "flashcode", "flashcöde" und "flashy"
|
||
zu highlighten:
|
||
|
||
----
|
||
/set weechat.look.highlight_regex "flashc[oö]de|flashy"
|
||
----
|
||
|
||
Die Trennzeichen die Wörter umschließen können angepasst werden, mit der
|
||
Option: <<option_weechat.look.word_chars_highlight,weechat.look.word_chars_highlight>>.
|
||
|
||
[[highlights_tags]]
|
||
==== Tags zu highlight hinzufügen
|
||
|
||
Zeilen die in einem Buffer dargestellt werden enthalten "tags" welche zusätzliche
|
||
Informationen über die Herkunft der Nachricht oder über die Nachricht selbst
|
||
beinhalten. + Diese "tags" können mit dem Befehl `/debug tags` dargestellt werden
|
||
(um die Anzeige wieder zu entfernen, nochmals den Befehl ausführen).
|
||
|
||
Um Tags als Highlights zu nutzen wird folgende Option verwendet:
|
||
<<option_weechat.look.highlight_tags,weechat.look.highlight_tags>>.
|
||
Tags werden durch Kommata getrennt und mehrere Tags können mit
|
||
`+++` genutzt werden um ein logischen "und" zu erstellen.
|
||
|
||
Zum Beispiel um alle Nachrichten vom Nick "FlashCode" und alle notice-Nachrichten
|
||
von Nicks die mit "toto" beginnen zu highlighten:
|
||
|
||
----
|
||
/set weechat.look.highlight_tags "nick_flashcode,irc_notice+nick_toto*"
|
||
----
|
||
|
||
[[highlights_regex_buffer]]
|
||
==== Highlights mit regulärem Ausdruck für einen Buffer nutzen
|
||
|
||
Man kann reguläre Ausdrücke für Highlights in einem Buffer nutzen, indem man
|
||
die Eigenschaft des Buffers mittels "highlight_regex" anpasst.
|
||
|
||
Um zum Beispiel jede Nachricht im aktuellen Buffer als Highlight-Nachricht einzustufen:
|
||
|
||
----
|
||
/buffer setauto highlight_regex .*
|
||
----
|
||
|
||
[[buffer_logging]]
|
||
=== Bufferprotokollierung
|
||
|
||
Die Logger Erweiterung erlaubt es den Inhalt von Buffern in Dateien zu sichern.
|
||
Dabei kann man über Optionen Einfluss darauf nehmen was gesichert und wie etwas
|
||
gesichert werden soll.
|
||
|
||
[[logger_log_levels]]
|
||
==== Log-Level
|
||
|
||
Die Protokollierung wird durch einen sogenannten Level für jeden Buffer sichergestellt.
|
||
Der Standardlevel ist dabei 9 (damit werden alle Nachrichten die im Buffer angezeigt
|
||
werden protokolliert). Der Grad einer Protokollierung kann separat für jeden einzelnen
|
||
Buffer oder aber für eine Anzahl von Buffern festgelegt werden.
|
||
|
||
Mögliche Level sind hierbei 0 bis 9. Null bedeutet, es findet keine Protokollierung
|
||
statt und neun, dass alle Nachrichten protokolliert werden.
|
||
|
||
Erweiterungen nutzen unterschiedliche Level um Nachrichten anzuzeigen.
|
||
Die IRC Erweiterung nutzt folgende Level:
|
||
|
||
* Level 1: Nachrichten eines Users (im Kanal oder privat)
|
||
* Level 2: Nick wurde geändert (der eigene oder von einer anderen Person)
|
||
* Level 3: jedwede Server Nachricht (ausgenommen join/part/quit)
|
||
* Level 4: Server Nachrichten join/part/quit
|
||
|
||
Setzen Sie also den Grad der Protokollierung für einen IRC Kanal auf "3"
|
||
wird WeeChat alle Nachrichten protokollieren, ausgenommen join/part/quit
|
||
Nachrichten.
|
||
|
||
weitere Beispiele:
|
||
|
||
* Level 3 für IRC Kanal #weechat nutzen:
|
||
|
||
----
|
||
/set logger.level.irc.libera.#weechat 3
|
||
----
|
||
|
||
* Level 3 für libera Server Buffer nutzen:
|
||
|
||
----
|
||
/set logger.level.irc.server.libera 3
|
||
----
|
||
|
||
* Level 3 für alle Kanäle auf dem Server libera nutzen:
|
||
|
||
----
|
||
/set logger.level.irc.libera 3
|
||
----
|
||
|
||
* Level 2 für alle IRC Buffers nutzen:
|
||
|
||
----
|
||
/set logger.level.irc 2
|
||
----
|
||
|
||
[[logger_filenames_masks]]
|
||
==== Dateinamenmaske
|
||
|
||
Es ist möglich eine Dateinamenmaske für jeden Buffer zu erstellen und diese Maske
|
||
mit lokalen Buffervariablen zu füllen. Um sich die verfügbaren lokalen Variablen
|
||
für den aktuellen Buffer anzeigen zu lassen:
|
||
|
||
----
|
||
/buffer listvar
|
||
----
|
||
|
||
Masken werden in absteigender Reihenfolge abgeglichen, beginnend mit
|
||
`logger.mask.$plugin.*`, dabei fungiert `logger.file.mask` als Fallback-Option.
|
||
|
||
Zum Beispiel für den Buffer "irc.libera.#weechat". WeeChat sucht in dieser
|
||
Reihenfolge nach einer Maske:
|
||
|
||
----
|
||
logger.mask.irc.libera.#weechat
|
||
logger.mask.irc.libera
|
||
logger.mask.irc
|
||
logger.file.mask
|
||
----
|
||
|
||
Dies bedeutet dass man eine Maske speziell für einen IRC Server
|
||
("logger.mask.irc.libera") anlegen kann oder aber global für
|
||
die Erweiterung ("logger.mask.irc").
|
||
|
||
[[logger_files_by_date]]
|
||
===== Protokolldatei nach Datum
|
||
|
||
Um Protokolldateien mit einer Datumsrelevanz zu erstellen müssen
|
||
Datumsspezifikationen in der Maske genutzt werden (siehe
|
||
`man strftime` für das Format). Zum Beispiel:
|
||
|
||
----
|
||
/set logger.file.mask "%Y/%m/$plugin.$name.weechatlog"
|
||
----
|
||
|
||
Erstellt eine Struktur in folgender Form:
|
||
|
||
....
|
||
~/.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]]
|
||
===== Protokolldateien nach Server und Kanälen
|
||
|
||
Soll für jeden IRC Server ein Verzeichnis erstellt werden mit jeweils
|
||
einer Protokolldatei für jeden Kanal:
|
||
|
||
----
|
||
/set logger.mask.irc "irc/$server/$channel.weechatlog"
|
||
----
|
||
|
||
Erstellt eine Struktur in folgender Form:
|
||
|
||
....
|
||
~/.local/share/weechat
|
||
└── logs
|
||
└── irc
|
||
├── libera
|
||
│ ├── libera.weechatlog
|
||
│ ├── #weechat.weechatlog
|
||
│ └── #mychan.weechatlog
|
||
├── oftc
|
||
│ ├── oftc.weechatlog
|
||
│ ├── #channel1.weechatlog
|
||
│ └── #channel2.weechatlog
|
||
...
|
||
....
|
||
|
||
[[logger_rotation_compression]]
|
||
==== Rotation und Kompressions
|
||
|
||
Es ist möglich, eine maximale Größe für Protokolldateien zu definieren, und wenn diese
|
||
erreicht ist, findet eine automatische Rotation der Protokolldatei statt.
|
||
|
||
Die rotierenden Protokolldateien können mit gzip kompromiert werden oder mit
|
||
https://facebook.github.io/zstd/[zstd ^↗^^].
|
||
|
||
[NOTE]
|
||
Da die Komprimierung einer Datei einige Zeit in Anspruch nehmen kann, wird diese Aktion
|
||
im Hintergrund durchgeführt.
|
||
|
||
Beispiel mit einer maximalen Größe von 2 GB und einer Komprimierung mittels gzip
|
||
unter Verwendung einer guten Komprimierungsstufe (langsamer als die Standardeinstellung):
|
||
|
||
----
|
||
/set logger.file.rotation_compression_type gzip
|
||
/set logger.file.rotation_compression_level 80
|
||
/set logger.file.rotation_size_max "2g"
|
||
----
|
||
|
||
Wenn Sie eine Dezimalzahl verwenden möchten, können Sie die unten stehende Einheit verwenden
|
||
und mit 1000 multiplizieren, um beispielsweise die maximale Größe auf 2,5 GB festzulegen:
|
||
|
||
----
|
||
/set logger.file.rotation_size_max "2500m"
|
||
----
|
||
|
||
Mit diesen Einstellungen erhalten Sie eine Dateisktruktur wie die folgende (in diesem Beispiel
|
||
gibt es nur eine Rotation für das Protokoll des #weechat-Kanals):
|
||
|
||
....
|
||
~/.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]]
|
||
==== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=logger_commands]
|
||
|
||
[[logger_options]]
|
||
==== Optionen
|
||
|
||
Sektionen in Datei _logger.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set logger.look.* | Erscheinungsbild.
|
||
| color | /set logger.color.* | Farben.
|
||
| file | /set logger.file.* | Optionen für Protokolldateien.
|
||
| level | /set logger.level.* | Protokollierungslevel pro Buffer (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
| mask | /set logger.mask.* | Dateinamenmaske pro buffer (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=logger_options]
|
||
|
||
[[mouse]]
|
||
=== Mausunterstützung
|
||
|
||
WeeChat unterstützt Maustasten als auch Mausgesten. Dies funktioniert sowohl im
|
||
lokalen Terminal wie auch über eine Remote Verbindung via SSH.
|
||
|
||
[[mouse_enable]]
|
||
==== Mausunterstützung aktivieren
|
||
|
||
Um die Mausunterstützung beim Programmstart zu aktivieren:
|
||
|
||
----
|
||
/set weechat.look.mouse on
|
||
----
|
||
|
||
Um die Mausunterstützung direkt zu aktivieren, kann man den Tastenkurzbefehl
|
||
kbd:[Alt+m] nutzen oder folgenden Befehl ausführen:
|
||
|
||
----
|
||
/mouse enable
|
||
----
|
||
|
||
Es ist möglich die Mausunterstützung kurzzeitig zu deaktivieren und dies auf
|
||
einen Tastenkurzbefehl zu legen. Zum Beispiel soll über den Tastenkurzbefehl
|
||
kbd:[Alt+%] die Mausunterstützung für 10 Sekunden deaktiviert werden:
|
||
|
||
----
|
||
/key bind meta-% /mouse toggle 10
|
||
----
|
||
|
||
[IMPORTANT]
|
||
Ist die Maus in WeeChat aktiviert werden alle Mausereignisse duch WeeChat gefangen.
|
||
Dadurch werden Aktionen wie Kopieren+Einfügen oder Klicks auf URLs nicht an das
|
||
Terminal weitergereicht. + Mittels der kbd:[Shift] Taste kann aber das Mausereignis
|
||
an das Terminal weitergeleitet werden, als ob die Maus deaktiviert wäre (bei
|
||
einigen Terminals, wie z.B. iTerm, muß die Taste kbd:[Alt] anstelle von
|
||
kbd:[Shift] verwendet werden).
|
||
|
||
[NOTE]
|
||
Sollten Probleme bei der Mausunterstützung auftreten, dann sollte Bitte die
|
||
link:weechat_faq.de.html#mouse[WeeChat FAQ / Mausunterstützung ^↗^^].
|
||
|
||
[[mouse_bind_events]]
|
||
==== Befehle einem Maus-Ereignis zuweisen
|
||
|
||
Es gibt eine Anzahl von Maus-Ereignissen, die standardmäßig durch WeeChat definiert
|
||
sind (siehe <<key_bindings_mouse,mouse actions>>).
|
||
|
||
Man kann mit dem Befehl `/key` im Kontext "mouse" aber auch eigene Befehle zuweisen
|
||
und löschen (für die Syntax, siehe Befehl <<command_weechat_key,/key>>).
|
||
|
||
Der Name eines Ereignisses besteht aus einem Modifier (optional), einer Maustaste/Mausrad
|
||
und der Mausgeste (optional). Die unterschiedlichen Elemente werden durch ein `+-+` getrennt.
|
||
|
||
Liste der Modifikatoren (in der Reihenfolge des Ereignisnamens):
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Modifier | Beschreibung
|
||
| alt | Taste kbd:[Alt]
|
||
| ctrl | Taste kbd:[Ctrl]
|
||
| shift | Taste kbd:[Shift] ^(1)^
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Der `shift` Modifikator sollte in WeeChat selten verwendet werden, da es viele Terminals gibt
|
||
die diesen Modifikator nutzen, um Mausereignisse direkt abzufangen.
|
||
|
||
Verschiedene Modifikatoren können kombiniert werden, zum Beispiel:
|
||
|
||
* `alt-ctrl`
|
||
* `ctrl-shift`
|
||
* `alt-ctrl-shift`
|
||
|
||
Liste der Maustasten/Mausrad:
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Maustaste/-rad | Beschreibung
|
||
| button1 | Linker Mausknopf wird gedrückt
|
||
| button2 | Rechter Mausknopf wird gedrückt
|
||
| button3 | Mittlerer Mausknopf wird gedrückt (häufig der Druck auf das Mausrad)
|
||
| button4 ... button11 | Ein zusätzlicher Mausknopf wird gedrückt
|
||
| wheelup | Mausrad wird nach oben gescrollt
|
||
| wheeldown | Mausrad wird nach unten gescrollt
|
||
|===
|
||
|
||
Liste der Mausgesten (nur für Maustasten, nicht für das Mausrad, anwendbar):
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Mausgeste | Distanz
|
||
| 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
|
||
|===
|
||
|
||
Liste von unvollständigen Ereignissen (nur für Mausknopf, nützlich für Erweiterungen/Skripten):
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Ereignis | Beschreibung
|
||
| event-down | Mausknopf ist gedrückt
|
||
| event-drag | Maus wurde mit gedrücktem Mausknopf bewegt
|
||
|===
|
||
|
||
Bespiele von Ereignissen:
|
||
|
||
* `button1`
|
||
* `ctrl-button1`
|
||
* `button1-gesture-right`
|
||
* `button1-event-down`
|
||
* `button1-event-drag`
|
||
* `alt-button2-gesture-down-long`
|
||
* `wheelup`
|
||
* `alt-ctrl-wheeldown`
|
||
|
||
[TIP]
|
||
Wird eine Funktion im "mouse"-Kontext hinzufügt ist es möglich, mehrere
|
||
Mausereignisse mittels `+*+` abzufangen. Zum Beispiel fängt
|
||
`+button1-gesture-*+` alle Mausgesten ab, die mit der linken Maustaste
|
||
eingeleitet werden.
|
||
|
||
[TIP]
|
||
Den Namen eines Mausereignisses kann man mittels des Befehls `+/input grab_mouse+` erfragen.
|
||
Man führt den Befehl in der Eingabezeile aus und startet das Ereignis. Als Ergebnis erhält
|
||
man in der Eingabezeile den Namen des ausgeführten Mausereignisses.
|
||
|
||
[[spell_checking]]
|
||
=== Rechtschreibprüfung
|
||
|
||
Mit der Spell Erweiterung findet eine Rechtschreibprüfung Einzug in WeeChat.
|
||
Dabei ist es möglich mehrere Wörterbücher für einen Buffer zu nutzen.
|
||
|
||
Die Rechtschreibprüfung ist standardmäßig deaktiviert und kann mittels dem
|
||
Tastenbefehl [Alt+s] umgeschaltet werden.
|
||
|
||
[[spell_dictionaries]]
|
||
==== Wörterbücher
|
||
|
||
Um die Rechtschreibprüfung nutzen zu können muss vorab ein Wörterbuch definiert werden,
|
||
welches genutzt werden soll. Dies kann entweder global oder per Buffer geschehen.
|
||
|
||
Verschiedene Wörterbücher können parallel verwendet werden. WeeChat gleicht dann
|
||
die Wörter mit allen Wörterbüchern ab,
|
||
|
||
Um zum Beispiel Englisch und Deutsch zu nutzen:
|
||
|
||
----
|
||
/set spell.check.default_dict "en,de"
|
||
----
|
||
|
||
Es ist möglich ein anderes Wörterbuch für einen speziellen Buffer zu verwenden, zum
|
||
Beispiel in einem französischen Kanal:
|
||
|
||
----
|
||
/spell setdict fr
|
||
----
|
||
|
||
Um einer Gruppe von Buffern das selbe Wörterbuch zuzuordnen, zum Beispiel das
|
||
deutsche Wörterbuch für alle Kanäle auf dem libera IRC Server:
|
||
|
||
----
|
||
/set spell.dict.irc.libera de
|
||
----
|
||
|
||
Für weitere Informationen, siehe den Befehl <<command_spell_spell,/spell>>.
|
||
|
||
[[spell_speller_options]]
|
||
==== Optionen für Rechtschreibprüfung
|
||
|
||
Optionen für die Rechtschreibprüfung können definiert werden indem man die entsprechende
|
||
Option in die Sektion "option" der Aspell-Konfiguration hinzufügt.
|
||
|
||
Den Name der Option findet man in der ASpell-Konfigurationsdatei. Eine Auflistung aller
|
||
möglichen Optionen erhält man durch:
|
||
|
||
[source,shell]
|
||
----
|
||
aspell config
|
||
----
|
||
|
||
Um zum Beispiel die Option "ignore-case" einzuschalten:
|
||
|
||
----
|
||
/set spell.option.ignore-case "true"
|
||
----
|
||
|
||
[[spell_suggestions]]
|
||
==== Rechtschreibkorrektur
|
||
|
||
Eine Rechtschreibkorrektur wird in der Bar-Item "spell_suggest" angezeigt.
|
||
Die Anzahl an Vorschlägen, für die Rechtschreibkorrektur, kann mit der Option
|
||
_spell.check.suggestions_ bestimmt werden.
|
||
|
||
Um die Rechtschreibkorrektur zu aktivieren, muss für die Option _spell.check.suggestions_
|
||
ein Wert ≥ 0 eingestellt werden und das Bar-Item "spell_suggest" zu einer Bar, zum
|
||
Beispiel _status_, hinzufügt werden.
|
||
|
||
Beispiel der Rechtschreibkorrektur, mit einem deutschen Wörterbuch (`de`):
|
||
|
||
....
|
||
│[12:55] [6] [irc/libera] 3:#test(+n){4} [dies,Diebs,Viehs] │
|
||
│[@Flashy] diehs █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
Beispiel der Rechtschreibkorrektur, mit zwei Wörterbüchern (`en,de`):
|
||
|
||
....
|
||
│[12:55] [6] [irc/libera] 3:#test(+n){4} [print,prone,prune/Prinz] │
|
||
│[@Flashy] prinr █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[spell_commands]]
|
||
==== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=spell_commands]
|
||
|
||
[[spell_options]]
|
||
==== Optionen
|
||
|
||
Sektionen in Datei _spell.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| color | /set spell.color.* | Farben.
|
||
| check | /set spell.check.* | Optionen um Einstellungen an der Rechtschreibprüfung vorzunehmen.
|
||
| dict | <<command_spell_spell,/spell setdict>> +
|
||
/set spell.dict.* | Wörterbücher für Buffer (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
| look | /set spell.look.* | Erscheinungsbild.
|
||
| option | /set spell.option.* | <<spell_speller_options,Optionen für Rechtschreibprüfung>> (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=spell_options]
|
||
|
||
[[bars]]
|
||
=== Bars
|
||
|
||
Eine _Bar_ ist ein Bereich der parallel, zum Chatfenster, jedwede Art von Text enthalten kann.
|
||
|
||
Eine Bar kann mittels `weechat.bar.name.option` konfiguriert werden. Dabei steht `name`,
|
||
für den Namen der Bar und `option` für die Option dieser Bar.
|
||
|
||
Aufzählung von Bar-Optionen:
|
||
|
||
[width="100%",cols="2m,2,10",options="header"]
|
||
|===
|
||
| Option | Wert | Beschreibung
|
||
|
||
| type | `root`, `window`
|
||
| Eine Bar vom Typ `root` wird nur einmal auf dem Bildschirm dargestellt und dies
|
||
außerhalb von Fenstern. Die Standardbar _buflist_ ist vom Typ `root`. +
|
||
Eine Bar vom Typ `window` wird hingegen in jedem Fenster dargestellt, zum Beispiel
|
||
wenn man den Bildschirm teilt (mit `/window splith` oder `/window splitv`). Diese
|
||
Bar wird nun in jedem einzelnen Fenster angezeigt. Die Standardbar _title_, _status_,
|
||
_input_ und _nicklist_ sind vom Typ `window`.
|
||
|
||
| position | `top`, `bottom`, `left`, `right`
|
||
| Position der Bar: ober- oder unterhalb des Chatfensters, oder links/rechts davon.
|
||
|
||
| priority | integer ≥ 0
|
||
| Priorität für die Bar: legt die Reihenfolge fest in der die Bars angeordnet werden sollen,
|
||
wenn mehrere Bars den selben Typ und Position besitzen. +
|
||
Die Bars werden vom Rand zur Mitte des Bildschirms gezeichnet. Eine höhere Priorität
|
||
bewirkt, dass die Bar näher am Rand gezeichnet wird. +
|
||
Beispiel: Die _input_ Bar hat eine Priorität von 1000 und wird somit vor der _status_ Bars
|
||
gezeichnet, da diese lediglich eine Priorität von 500 besitzt.
|
||
|
||
| size | integer ≥ 0
|
||
| Die Größe der Bar: Anzahl der Spalten, falls die Bar links/rechts bzw. Anzahl an Zeilen falls
|
||
die Bar oben/unten dargestellt wird. Wird eine Größe `0` gewählt, dann wird die Größe der Bar
|
||
automatisch bestimmt.
|
||
|
||
| size_max | integer ≥ 0
|
||
| Die maximale Größe der Bar, `0` = keine Limitierung (diese Option wird nur genutzt, falls die
|
||
Option `size` = `0` ist).
|
||
|
||
| color_bg | color
|
||
| Hintergrundfarbe, für die Bar.
|
||
|
||
| color_fg | color
|
||
| Textfarbe, für die Bar.
|
||
|
||
| color_delim | color
|
||
| Farbe der Trennzeichen, in der Bar.
|
||
|
||
| hidden | `on`, `off`
|
||
| Ist diese Option `on`, wird die Bar versteckt. +
|
||
Hinweis: anstelle dieser Option sollte vorzugsweise der `/bar` Befehl genutzt werden.
|
||
Beispiel: `/bar toggle nicklist` (siehe Befehl <<command_weechat_bar,/bar>>).
|
||
|
||
| separator | `on`, `off`
|
||
| Ist diese Option `on`, wird ein Separator (Linie) gezeichnet die eine Bar von anderen
|
||
Bars oder dem Chatbereich trennt.
|
||
|
||
| items | string
|
||
| Eine Aufzählung von _items_ (siehe <<bar_items,items>> für weitere Informationen).
|
||
|
||
| filling_left_right | `+horizontal+`, `+vertical+`, `+columns_horizontal+`, `+columns_vertical+`
|
||
| Art, wie der Inhalt der Bar die `links` oder `rechts` gezeichnet wird, dargestellt wird (siehe
|
||
<<bar_filling,filling>> für weitere Informationen).
|
||
|
||
| filling_top_bottom | `+horizontal+`, `+vertical+`, `+columns_horizontal+`, `+columns_vertical+`
|
||
| Art, wie der Inhalt der Bar die `oben` oder `unten` gezeichnet wird, dargestellt wird (siehe
|
||
<<bar_filling,filling>> für weitere Informationen).
|
||
|
||
| conditions | string
|
||
| Bedingungen, wann die Bar angezeigt wird (siehe <<bar_conditions,conditions>> für weitere
|
||
Informationen).
|
||
|===
|
||
|
||
[[bar_items]]
|
||
==== Items
|
||
|
||
Die Option _items_ ist ein String, mit einer Anzahl von Bar-Items. Diese werden
|
||
durch Kommata voneinander getrennt (auf dem Bildschirm wird das Komma durch ein
|
||
Leerzeichen ersetzt). Möchte man die Items ohne Leerzeichen darstellen, nutzt
|
||
man ein `+++` um die Items zu trennen.
|
||
|
||
Eine Liste von Bar-Items kann man sich mit dem Befehl `/bar listitems` anzeigen lassen.
|
||
|
||
Vor oder nach dem Item können Zeichen eingefügt werden. Diese dürfen nicht alphanumerisch,
|
||
`+-+` oder `+_+` sein. Die Zeichen werden mit der entsprechenden Farbe, für Trennzeichen,
|
||
dargestellt (Option _color_delim_).
|
||
|
||
Beispiel einer Bar mit den Items,
|
||
"[time],buffer_number+:+buffer_plugin+.+buffer_name,[buffer_last_number]":
|
||
|
||
....
|
||
┌───────────────────────────────────────────────────────────────────────────┐
|
||
│[12:55] 3:irc/libera.#weechat [9] │
|
||
└───────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[item_spacer]]
|
||
===== Spacer Item
|
||
|
||
Ein Item namens `spacer` (Abstandshalter) kann verwendet werden, um Items auszurichten (links, mittig, rechts).
|
||
|
||
Wenn mindestens ein `spacer` in einer Bar verwendung findet, wird die gesamte Breite der Bar verwendet:
|
||
Die Abstandshalter werden automatisch mit der gleichen Größe (oder fast) erweitert.+
|
||
Falls eine Bar nicht groß genug für alle Elemente ist, werden keine Abstandshalter angezeigt.
|
||
|
||
[NOTE]
|
||
Ein `spacer` Bar-Item kann nur in Bars verwendet werden die die Position `top` oder `bottom` besitzen,
|
||
sowie eine `horizontal` Ausrichtung haben, sowie eine Größe von `1`.
|
||
|
||
Beipiel einer Bar mit den Items
|
||
"[time],spacer,buffer_number+:+buffer_plugin+.+buffer_name,spacer,[buffer_last_number]":
|
||
|
||
....
|
||
┌───────────────────────────────────────────────────────────────────────────┐
|
||
│[12:55] 3:irc/libera.#weechat [9]│
|
||
└───────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[item_force_buffer]]
|
||
===== Force buffer
|
||
|
||
Eine Besonderheit stellt die Möglichkeit dar, ein Item eines bestimmten Buffers
|
||
anzuzeigen. Syntax: "@buffer:item" ("buffer" ist der vollständige Name des Buffers
|
||
und "item" der Name der Bar-Item)
|
||
|
||
Dies ist für root-Bars sinnvoll, um gezielt ein Item eines bestimmten Buffers
|
||
anzuzeigen, welcher nicht im aktuellen Fenster oder überhaupt nicht sichtbar
|
||
ist.
|
||
|
||
Beispiel: Benutzerliste von bitlbee permanent in einer root-Bar darstellen (die Bar
|
||
heißt hierbei _bitlist_ und der Name des bitlbee Servers _bitlbee_):
|
||
|
||
----
|
||
/set weechat.bar.bitlist.items "@irc.bitlbee.&bitlbee:buffer_nicklist"
|
||
----
|
||
|
||
[[custom_bar_items]]
|
||
===== Benutzerdefinierte Bar-Items
|
||
|
||
Benutzerdefinierte Bar-Items können mit dem <<command_weechat_item,/item>> Befehl
|
||
angelegt werden. Dabei hat jedes neue Element zwei Eigenschaften, die über
|
||
Konfigurationsoptionen definiert werden:
|
||
|
||
* `conditions`: evaluierte Bedingung um das Element anzuzeigen. Zum Beispiel um das
|
||
Element nur in bestimmten Buffern anzuzeigen (falls leer, wird das Element in allen
|
||
Buffern angezeigt)
|
||
* `content`: evaluierter Inhalt des Elements.
|
||
|
||
In beiden Optionen können die folgenden Variablen verwendet werden:
|
||
|
||
* `window`: Zeiger auf das Fenster, in dem die Bar angezeigt wird (`NULL` für root-Bars).
|
||
* `buffer`: Zeiger auf den Buffer, in dem die Bar angezeigt wird (aktueller Bar für root-Bars.
|
||
|
||
Beispiele für Bedingungen:
|
||
|
||
[width="100%",cols="3,10",options="header"]
|
||
|===
|
||
| Bedingung | Beschreibung
|
||
| `${window}` | Wird nur in Fenster-Bars angezeigt
|
||
| `${buffer.number} == 1` | Wird in allem Buffern angezeigt, wo die Nummer =1 ist
|
||
| `${buffer.plugin.name} == irc` | Wird in allen IRC Buffern angezeigt
|
||
| `${type} == channel` | Element wird in den Buffern angezeigt wo die lokale Variable `type` vom Typ `channel` gesetzt ist (Beispiel: alle IRC Kanäle)
|
||
| `${type} == private` | Element wird in den Buffern angezeigt wo die lokale Variable `type` vom Typ `private` gesetzt ist (Beispiel: alle privaten IRC Buffer)
|
||
|===
|
||
|
||
[NOTE]
|
||
Es gibt keine integrierte Möglichkeit, die benutzerdefinierten Elemente zu aktualisieren.
|
||
Dazu muss die <<trigger,Trigger>> Erweitertung genutzt werden, beispielsweise über einen
|
||
oder mehrere Signale die abgefragt werden.
|
||
|
||
Weitere Informationen und Beispiele finden Sie unter dem Befehl <<command_weechat_item,/item>>.
|
||
|
||
[[bar_filling]]
|
||
==== Darstellung innerhalb einer Bar
|
||
|
||
Es gibt folgende vier Möglichkeiten um Text innerhalb einer Bar darzustellen:
|
||
|
||
* `+horizontal+`: die Items werden horizontal, von links nach rechts, dargestellt.
|
||
Sollten neue Zeilen dargestellt werden, dann werden diese durch ein Leerzeichen
|
||
von der vorherigen getrennt.
|
||
* `+vertical+`: die Items werden von oben nach unten dargestellt. Neue Zeilen werden
|
||
neben der vorherigen dargestellt.
|
||
* `+columns_horizontal+`: Item werden in Spalten dargestellt, wobei der Text linksbündig
|
||
ausgerichtet ist. Das erste Item wird in der linken oberen Ecke angezeigt und das
|
||
zweite Item ist in der selben Zeile, auf der rechten Seite.
|
||
* `+columns_vertical+`: Item werden in Spalten dargestellt, wobei der Text linksbündig
|
||
ausgerichtet ist. Das erste Item wird in der linken oben Ecke angezeigt und das
|
||
zweite Item wird eine Zeile darunter angezeigt.
|
||
|
||
Die Standard-Bars _title_, _status_ und _input_ nutzen eine _horizontal_
|
||
Darstellung und die Standard-Bar _nicklist_ nutzt eine _vertical_ Darstellung.
|
||
|
||
Einige Beispiele, wie die Bar _nicklist_ dargestellt werden kann:
|
||
|
||
....
|
||
┌───────────────────────────────────────────────────────────────────────┐
|
||
│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]]
|
||
==== Bedingungen
|
||
|
||
Der Inhalt der Option _conditions_ ist evaluiert um festzulegen ob die entsprechende
|
||
Bar angezeigt werden soll oder nicht.
|
||
|
||
Folgende Zeichenketten sind möglich:
|
||
|
||
* _active_ : das Fenster muss das aktive Fenster sein
|
||
* _inactive_: das Fenster muss ein inaktives Fenster sein
|
||
* _nicklist_: der Buffer der in einem Fenster dargestellt wird, muss eine
|
||
Benutzerliste anzeigen.
|
||
* ein Ausdruck: wird als boolescher Wert ausgewertet (siehe Befehl
|
||
<<command_weechat_eval,/eval>>)
|
||
|
||
Für den Ausdruck sind folgende Variablen verfügbar:
|
||
|
||
* `+${active}+` : wahr, wenn Fenster aktiv ist
|
||
* `+${inactive}+`: wahr, wenn Fenster inaktiv ist
|
||
* `+${nicklist}+`: wahr, wenn der Buffer im Fenster eine Nicklist anzeigt.
|
||
|
||
Folgende Zeiger sind verfügbar:
|
||
|
||
* `+${window}+`: das Fenster in dem der Zustand ausgewertet wird
|
||
* `+${buffer}+`: der Buffer eines Fensters in dem der Zustand ausgewertet wird
|
||
|
||
Beispiel für die Anzeige der Nicklist-Bar in allen Buffern mit einer Benutzerliste,
|
||
allerdings nur dann, wenn die Breite des Terminals größer >100 ist:
|
||
|
||
----
|
||
/set weechat.bar.nicklist.conditions "${nicklist} && ${info:term_width} > 100"
|
||
----
|
||
|
||
Die selben Bedingungen wie oben, aber diesmal wird die Benutzerliste immer für
|
||
den Buffer _&bitlbee_ angezeit (auch dann, wenn das Terminal kleiner ist, als
|
||
der angegebene Wert):
|
||
|
||
----
|
||
/set weechat.bar.nicklist.conditions "${nicklist} && (${info:term_width} > 100 || ${buffer.full_name} == irc.bitlbee.&bitlbee)"
|
||
----
|
||
|
||
[[secured_data]]
|
||
=== sensible Daten
|
||
|
||
[[secured_data_storage]]
|
||
==== Archivierung
|
||
|
||
WeeChat kann Passwörter oder sensible Daten verschlüsseln und in der
|
||
Datei _sec.conf_ speichern.
|
||
|
||
Diese Konfigurationsdatei wird vor allen anderen Dateien geladen und die
|
||
gespeicherten Daten können in verschiedenen WeeChat Optionen bzw.
|
||
Erweiterungen und Skripten genutzt werden.
|
||
|
||
Es kann eine Passphrase genutzt werden um die Daten in _sec.conf_ zu
|
||
verschlüsseln. Dies ist nicht obligatorisch wird aber dringend empfohlen,
|
||
da ansonsten die Daten in Klartext gesichert werden.
|
||
|
||
----
|
||
/secure passphrase Dies ist meine Passphrase
|
||
----
|
||
|
||
[[secured_data_passphrase_on_startup]]
|
||
===== Passphrase beim Programmstart
|
||
|
||
Wenn eine Passphrase festgelegt ist, werden Sie von WeeChat aufgefordert, diese beim Start einzugeben
|
||
(aber nicht bei `/upgrade`).
|
||
|
||
Wenn Sie einen Passwortmanager verwenden, können Sie ein externes Programm ausführen, um die Passphrase zu lesen,
|
||
anstatt sie beim Start von WeeChat manuell eingeben zu müssen. Zum Beispiel mit Passwortspeicher (Befehl `pass`):
|
||
|
||
----
|
||
/set sec.crypt.passphrase_command "/usr/bin/pass show weechat/passphrase"
|
||
----
|
||
|
||
Das Programm fordert Sie möglicherweise auf, Ihren GPG-Schlüssel zu entsperren oder eine andere Passphrase
|
||
einzugeben, um das Passwort lesen zu können. WeeChat wartet auf das Ende des Befehls, um die Passphrase in
|
||
der Standardausgabe auszuwerten (die Passphrase muss in der ersten Zeile, ohne zusätzliches Zeichen, stehen). +
|
||
|
||
Wenn die Ausgabe keine Passphrase enthält oder falsch ist, werden Sie von WeeChat aufgefordert,
|
||
diese manuell einzugeben.
|
||
|
||
[[secured_data_encryption]]
|
||
===== Verschlüsselung
|
||
|
||
Die Daten werden in drei Schritten verschlüsselt:
|
||
|
||
. erstellt einen Schlüssel anhand der Passphrase (optional mit Salt).
|
||
. errechnet einen Hash über die Daten die verschlüsselt werden soll.
|
||
. verschlüsselt den Hash + Daten (Ausgabe ist: Salt + Hash/Daten verschlüsselt)
|
||
|
||
[NOTE]
|
||
Der Cipher Block Modus ist _CFB_.
|
||
|
||
Das Ergebnis wird als hexadezimale Zeichenkette in _sec.conf_ gesichert.
|
||
Zum Beispiel:
|
||
|
||
----
|
||
[data]
|
||
__passphrase__ = on
|
||
libera = "53B1C86FCDA28FC122A95B0456ABD79B5AB74654F21C3D099A6CCA8173239EEA59533A1D83011251F96778AC3F5166A394"
|
||
----
|
||
|
||
[[secured_data_decryption]]
|
||
===== Entschlüsselung
|
||
|
||
Die Entschlüsselung findet in drei Schritten statt:
|
||
|
||
. erstellt einen Schlüssel mittels Salt und Passphrase.
|
||
. entschlüsselt Hash + Daten.
|
||
. überprüft ob der entschlüsselte Hash mit dem Hash der entschlüsselten Daten übereinstimmt.
|
||
|
||
[[secured_data_manage]]
|
||
==== Umgang mit sensiblen Daten
|
||
|
||
Um sensible Daten zu schützen wird der Befehl `/secure set` verwendet. Es folgt
|
||
ein Beispiel wie man das Passwort für den IRC Server _libera_ schützt:
|
||
|
||
----
|
||
/secure set libera meinPasswort
|
||
----
|
||
|
||
Um einen Überblick über seine schutzwürdigen Daten zu erhalten kann ein
|
||
gesonderter Buffer geöffnet werden. In diesem Buffer kann man sich mittels
|
||
kbd:[Alt+v] seine Passwörter anzeigen lassen. Um den Buffer zu öffnen nutzt
|
||
man:
|
||
|
||
----
|
||
/secure
|
||
----
|
||
|
||
Verschlüsselte Daten können in einigen Optionen verwendet werden, die z.B.
|
||
Passwörter beinhalten. Dies dient dazu Passwörter nicht im Klartext als
|
||
Wert einer Option zu sichern. Dazu wird folgendes Format, anstelle des
|
||
Passwortes, verwendet: "${sec.data.xxx}". "xxx" ist hierbei der Name den man
|
||
dem Passwort zugeordnet hat (siehe oben, mittels `/secure set xxx ...`). +
|
||
Für eine vollständige Liste der unterstützen Optionen, siehe den Befehl <<command_weechat_secure,/secure>>.
|
||
|
||
Um z.B. das oben eingestellte _libera_ Passwort für eine
|
||
<<irc_sasl_authentication,SASL Authentifizierung>> zu nutzen:
|
||
|
||
----
|
||
/set irc.server.libera.sasl_password "${sec.data.libera}"
|
||
----
|
||
|
||
[[command_aliases]]
|
||
=== Kurzbefehle
|
||
|
||
Die Alias-Erweiterung erlaubt es, für Befehle, sogenannte Kurzbefehle (einen Alias) zu erstellen.
|
||
|
||
Einige Aliase existieren standardmäßig, deren Namen sind in Großbuchstaben erstellt (um
|
||
sie von Standardbefehlen zu unterscheiden); bei Befehlen wird in WeeChat nicht zwischen
|
||
Groß- und Kleinschreinung unterschieden, der Befehl `/close` führt den Alias `/CLOSE` aus.
|
||
|
||
Liste der standardmäßigen Aliase:
|
||
|
||
include::{autogendir}/autogen_user_default_aliases.de.adoc[tag=default_aliases]
|
||
|
||
[[alias_commands]]
|
||
==== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=alias_commands]
|
||
|
||
[[alias_options]]
|
||
==== Optionen
|
||
|
||
Sektionen in Datei _alias.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| cmd | <<command_alias_alias,/alias>> +
|
||
/set alias.cmd.* | Befehle für Alias.
|
||
| completion | <<command_alias_alias,/alias>> +
|
||
/set alias.completion.* | Vervollständigung für Alias.
|
||
|===
|
||
|
||
[[commands_and_options]]
|
||
=== Befehle und Optionen
|
||
|
||
[[weechat_commands]]
|
||
==== WeeChat Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=weechat_commands]
|
||
|
||
[[sec_options]]
|
||
==== Optionen für schutzwürdige Daten
|
||
|
||
Sektionen in Datei _sec.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| crypt | /set sec.crypt.* | Optionen für Verschlüsselung.
|
||
| data | <<command_weechat_secure,/secure>> | geschützte Daten.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=sec_options]
|
||
|
||
[[weechat_options]]
|
||
==== WeeChat Optionen
|
||
|
||
Sektion in Datei _weechat.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| debug | <<command_weechat_debug,/debug set>> +
|
||
/set weechat.debug.* | Debug level, für Core und Erweitertungen (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
| startup | /set weechat.startup.* | Optionen die nach dem Programmstart ausgeführt werden.
|
||
| look | /set weechat.look.* | Erscheinungsbild.
|
||
| palette | <<command_weechat_color,/color alias>> +
|
||
/set weechat.palette.* | Alternativnamen für Farben (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
| color | /set weechat.color.* | Farben.
|
||
| completion | /set weechat.completion.* | Optionen für Vervollständigung.
|
||
| history | /set weechat.history.* | Optionen für Befehlsverlauf (Befehle und Buffer).
|
||
| proxy | <<command_weechat_proxy,/proxy>> +
|
||
/set weechat.proxy.* | Proxy Optionen.
|
||
| network | /set weechat.network.* | Netzwerk/TLS Optionen.
|
||
| plugin | /set weechat.plugin.* | Optionen für Erweiterungen.
|
||
| signal | /set weechat.signal.* | Optionen für Signale.
|
||
| bar | <<command_weechat_bar,/bar>> +
|
||
/set weechat.bar.* | Optionen für die Bars.
|
||
| layout | <<command_weechat_layout,/layout>> | Layouts.
|
||
| buffer | <<command_weechat_buffer,/buffer setauto>> | Eigenschaften, die beim Öffnen des Buffers automatisch angewendet werden.
|
||
| notify | <<command_weechat_buffer,/buffer notify>> | Benachrichtigungsstufe für Buffer (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
| filter | <<command_weechat_filter,/filter>> | Filter.
|
||
| key | <<command_weechat_key,/key>> | Tastenbefehle in default context.
|
||
| key_search | <<command_weechat_key,/key>> | Tastenbefehle in search context.
|
||
| key_cursor | <<command_weechat_key,/key>> | Tastenbefehle in cursor context.
|
||
| key_mouse | <<command_weechat_key,/key>> | Tastenbefehle in mouse context.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=weechat_options]
|
||
|
||
[[irc]]
|
||
== IRC
|
||
|
||
Die IRC Erweiterung ist konzipiert um mittels dem IRC Protokoll mit anderen Menschen zu chatten.
|
||
|
||
Die Erweiterung ist Multi-Server fähig und verfügt über alle IRC Befehle, einschließlich DCC Chat
|
||
und Datenübertragung (via xfer Erweiterung, siehe <<xfer,Xfer Erweiterung>>).
|
||
|
||
[[irc_command_line_options]]
|
||
=== Kommandozeilen Befehle
|
||
|
||
Es ist möglich eine oder mehrere URL von IRC Servern zu übergeben:
|
||
|
||
----
|
||
irc[6][s]://[nick[:password]@]irc.example.org[:port][/channel][,channel[...]]
|
||
----
|
||
|
||
Beispiel: Anmelden beim Server _irc.libera.chat_ mit dem Nick _alice_ und betreten
|
||
der Kanäle _#weechat_ und _#weechat-fr_ (Standardport (6667) wird genutzt):
|
||
|
||
[source,shell]
|
||
----
|
||
weechat irc://alice@irc.libera.chat/#weechat,#weechat-fr
|
||
----
|
||
|
||
[[irc_servers]]
|
||
=== Server
|
||
|
||
[[irc_servers_add]]
|
||
==== Server hinzufügen
|
||
|
||
Standardmäßig sind keine Server angelegt. Es gibt keine Begrenzung für die
|
||
Anzahl von Servern. Server können mit dem Befehl <<command_irc_server,/server>>
|
||
angelegt werden.
|
||
|
||
Zum Beispiel für eine Verbindung zu https://libera.chat/[libera.chat ^↗^^]:
|
||
|
||
----
|
||
/server add libera irc.libera.chat
|
||
----
|
||
|
||
[NOTE]
|
||
Der Standardport ist 6697 und TLS (verschlüsselter Datenverkehr) ist aktiviert.
|
||
|
||
Um WeeChat, beim Programmstart, direkt mit einem Server zu verbinden:
|
||
|
||
----
|
||
/set irc.server.libera.autoconnect on
|
||
----
|
||
|
||
Zur Authentifizierung wird empfohlen, SASL (sofern dies von dem Server unterstützt wird)
|
||
zu verwenden, wobei das Passwort als gesicherte Daten gespeichert wird (siehe auch das
|
||
Kapitel über <<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}"
|
||
----
|
||
|
||
Wenn SASL nicht unterstützt wird, können Sie einen Befehl verwenden, um eine
|
||
Nachricht an nickserv zu senden, um sich zu authentifizieren:
|
||
|
||
----
|
||
/set irc.server.libera.command "/msg nickserv identify ${sec.data.libera}"
|
||
----
|
||
|
||
[NOTE]
|
||
Indem Sie eine Nachricht an nickserv senden, können Sie sich erst nach dem Beitritt
|
||
zu Kanälen authentifizieren. Dies kann bei Kanälen, die eine Authentifizierung benötigen,
|
||
zu Problemen führen. In diesem Fall können Sie eine Befehlsverzögerung einstellen:
|
||
`/set irc.server.libera.command_delay 5`.
|
||
|
||
[[irc_servers_options]]
|
||
==== Server-Optionen
|
||
|
||
Serveroptinen haben folgenden Aufbau `irc.server.<server>.<option>` hierbei ist `<server>`
|
||
der interne Name des Server und `<option>` ist der Name der Option. +
|
||
Der Wert einer Serveroption wird von `irc.server_default.xxx` geerbt
|
||
wenn die Serveroption den Sonderwert `null` hat.
|
||
|
||
Wenn Sie beispielsweise den _libera_-Server mit den obigen Befehlen erstellt haben,
|
||
sehen Sie dies mit dem Befehl `/fset libera`:
|
||
|
||
....
|
||
irc.server.libera.addresses Zeichenkette "irc.libera.chat"
|
||
irc.server.libera.anti_flood integer null -> 2000
|
||
irc.server.libera.autoconnect boolesch on
|
||
irc.server.libera.autojoin Zeichenkette null -> ""
|
||
irc.server.libera.autojoin_delay integer null -> 0
|
||
irc.server.libera.autojoin_dynamic boolesch null -> off
|
||
irc.server.libera.autoreconnect boolesch null -> on
|
||
irc.server.libera.autoreconnect_delay integer null -> 10
|
||
irc.server.libera.autorejoin boolesch null -> off
|
||
irc.server.libera.autorejoin_delay integer null -> 30
|
||
irc.server.libera.away_check integer null -> 0
|
||
irc.server.libera.away_check_max_nicks integer null -> 25
|
||
irc.server.libera.capabilities Zeichenkette null -> "*"
|
||
irc.server.libera.charset_message Aufzählung null -> message
|
||
irc.server.libera.command Zeichenkette null -> ""
|
||
irc.server.libera.command_delay integer null -> 0
|
||
irc.server.libera.connection_timeout integer null -> 60
|
||
irc.server.libera.default_chantypes Zeichenkette null -> "#&"
|
||
irc.server.libera.ipv6 Aufzählung null -> auto
|
||
irc.server.libera.local_hostname Zeichenkette null -> ""
|
||
irc.server.libera.msg_kick Zeichenkette null -> ""
|
||
irc.server.libera.msg_part Zeichenkette null -> "WeeChat ${info:version}"
|
||
irc.server.libera.msg_quit Zeichenkette null -> "WeeChat ${info:version}"
|
||
irc.server.libera.nicks Zeichenkette null -> "${username},${username}2,${username}3,${username}4,${username}5"
|
||
irc.server.libera.nicks_alternate boolesch null -> on
|
||
irc.server.libera.notify Zeichenkette null -> ""
|
||
irc.server.libera.password Zeichenkette null -> ""
|
||
irc.server.libera.proxy Zeichenkette null -> ""
|
||
irc.server.libera.realname Zeichenkette null -> ""
|
||
irc.server.libera.registered_mode Zeichenkette null -> "r"
|
||
irc.server.libera.sasl_fail Aufzählung null -> reconnect
|
||
irc.server.libera.sasl_key Zeichenkette null -> ""
|
||
irc.server.libera.sasl_mechanism Aufzählung null -> plain
|
||
irc.server.libera.sasl_password Zeichenkette "${sec.data.libera}"
|
||
irc.server.libera.sasl_timeout integer null -> 15
|
||
irc.server.libera.sasl_username Zeichenkette "alice"
|
||
irc.server.libera.split_msg_max_length integer null -> 512
|
||
irc.server.libera.tls boolesch null -> on
|
||
irc.server.libera.tls_cert Zeichenkette null -> ""
|
||
irc.server.libera.tls_dhkey_size integer null -> 2048
|
||
irc.server.libera.tls_fingerprint Zeichenkette null -> ""
|
||
irc.server.libera.tls_password Zeichenkette null -> ""
|
||
irc.server.libera.tls_priorities Zeichenkette null -> "NORMAL"
|
||
irc.server.libera.tls_verify boolesch null -> on
|
||
irc.server.libera.usermode Zeichenkette null -> ""
|
||
irc.server.libera.username Zeichenkette null -> "${username}"
|
||
....
|
||
|
||
Wenn Sie beispielsweise automatisch eine Verbindung zu allen von Ihnen
|
||
erstellten Servern herstellen möchten, ohne dies für jeden Server einzeln einstellen
|
||
zu müssen, können Sie Folgendes tun:
|
||
|
||
----
|
||
/set irc.server_default.autoconnect on
|
||
----
|
||
|
||
Und dann können Sie die Serveroption zurücksetzen, sodass sie den standardmäßig
|
||
geerbten Wert verwendet, der jetzt `on` anstelle des Standardwerts `off` ist:
|
||
|
||
----
|
||
/unset irc.server.libera.autoconnect
|
||
----
|
||
|
||
[[irc_tls_certificates]]
|
||
==== TLS Zertifikate
|
||
|
||
Wenn eine Verbindung mittels TLS zu einem IRC Server hergestellt wird dann überprüft
|
||
WeeChat immer ob dieser Verbindung sicher ist.
|
||
|
||
Einige Optionen dienen dazu eine TLS Verbindung zu nutzen:
|
||
|
||
weechat.network.gnutls_ca_system::
|
||
lädt beim Start die standardmäßigen vertrauenswürdigen Zertifizierungsstellen des Systems
|
||
|
||
weechat.network.gnutls_ca_user::
|
||
zusätzliche Datei (en) von Zertifizierungsstellen
|
||
|
||
irc.server.xxx.tls_cert::
|
||
Datei mit den TLS Zertifikaten die genutzt werden um automatisch Ihren Nick
|
||
zu identifizieren (zum Beispiel CertFP auf oftc, siehe unten)
|
||
|
||
irc.server.xxx.tls_dhkey_size::
|
||
Größe des Schlüssels der genutzt werden soll beim Schlüsseltausch mittels
|
||
der Diffie-Hellman Methode (Standardwert: 2048)
|
||
|
||
irc.server.xxx.tls_verify::
|
||
überprüft ob der TLS Verbindung uneingeschränkt vertraut werden kann (Standardwert: AN)
|
||
|
||
[NOTE]
|
||
Die Option "tls_verify" ist Vorgabe mäßig immer eingeschaltet. Das gewährleistet dass
|
||
die Verifizierung sehr streng genommen wird und dadurch vielleicht versagt. Auch wenn
|
||
die Verbindung mit einer vorherigen Version (<0.3.1) funktioniert hat.
|
||
|
||
[[irc_connect_oftc_with_certificate]]
|
||
===== erstes Beispiel: Verbindung zu oftc und Überprüfung der Zertifikate
|
||
|
||
* Importieren Sie die Zertifikate in einer Shell:
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir -p ~/.config/weechat/tls
|
||
wget -O ~/.config/weechat/tls/CAs.pem https://www.spi-inc.org/ca/spi-cacert.crt
|
||
----
|
||
|
||
[NOTE]
|
||
Sie müssen `~/.config/weechat` durch den Pfad zu Ihrem WeeChat-Konfigurationsverzeichnis ersetzen,
|
||
das auch beispielsweise `~/.weechat` sein kann.
|
||
|
||
[NOTE]
|
||
Es ist möglich mehrere Zertifikate in der Datei CAs.pem zu verwenden.
|
||
|
||
* In WeeChat, sofern der Server "oftc" schon hinzufügt wurde:
|
||
|
||
----
|
||
/connect oftc
|
||
----
|
||
|
||
[[irc_connect_oftc_with_certfp]]
|
||
===== zweites Beispiel: Verbindung zu oftc mittels CertFP
|
||
|
||
* Erstellen Sie ein Zertifikat in der 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
|
||
----
|
||
|
||
[NOTE]
|
||
Sie müssen `~/.config/weechat` durch den Pfad zu Ihrem WeeChat-Konfigurationsverzeichnis ersetzen,
|
||
das auch beispielsweise `~/.weechat` sein kann.
|
||
|
||
* In WeeChat, sofern der Server "oftc" schon hinzufügt wurde:
|
||
|
||
----
|
||
/set irc.server.oftc.tls_cert "${weechat_config_dir}/tls/nick.pem"
|
||
/connect oftc
|
||
/msg nickserv cert add
|
||
----
|
||
|
||
Weitere Informationen finden Sie unter
|
||
https://www.oftc.net/NickServ/CertFP/[this page ^↗^^].
|
||
|
||
[[irc_sasl_authentication]]
|
||
==== SASL Authentifizierung
|
||
|
||
WeeChat unterstützt eine SASL Authentifikation, mittels verschiedener Mechanismen:
|
||
|
||
* _plain_: Passwort liegt in Klarschrift vor (Standard)
|
||
* _scram-sha-1_: SCRAM mit SHA-1 Digest-Algorithmus
|
||
* _scram-sha-256_: SCRAM mit SHA-256 Digest-Algorithmus
|
||
* _scram-sha-512_: SCRAM mit SHA-512 Digest-Algorithmus
|
||
* _ecdsa-nist256p-challenge_: Abgleich von öffentlichem/privatem Schlüssel
|
||
* _external_: TLS Zertifikat welches auf Client Seite vorliegt
|
||
|
||
Optionen für Server sind:
|
||
|
||
* _sasl_mechanism_: Mechanismus welcher genutzt werden soll (siehe oben)
|
||
* _sasl_timeout_: Zeitüberschreitung für Authentifizierung (in Sekunden)
|
||
* _sasl_fail_: auszuführende Aktion falls die SASL Authentifizierung fehlschlägt
|
||
* _sasl_username_: Username (Nickname)
|
||
* _sasl_password_: Passwort
|
||
* _sasl_key_: Datei mit privatem ECC Schlüssel (für den
|
||
_ecdsa-nist256p-challenge_ Mechanismus)
|
||
|
||
[[irc_sasl_ecdsa_nist256p_challenge]]
|
||
===== SASL ECDSA-NIST256P-CHALLENGE
|
||
|
||
Es muss ein privater Schlüssel erstellt werden um sich mittels des
|
||
ECDSA-NIST256P-CHALLENGE Mechanismus authentifizieren zu können (es wird
|
||
dadurch kein Passwort während des Verbindungsaufbaus benötigt).
|
||
|
||
Ein Schlüssel kann mit folgendem Befehl erzeugt werden:
|
||
|
||
[source,shell]
|
||
----
|
||
openssl ecparam -genkey -name prime256v1 -out ~/.config/weechat/ecdsa.pem
|
||
----
|
||
|
||
[NOTE]
|
||
Sie müssen `~/.config/weechat` durch den Pfad zu Ihrem WeeChat-Konfigurationsverzeichnis ersetzen,
|
||
das auch beispielsweise `~/.weechat` sein kann.
|
||
|
||
Um den öffentlichen Schlüssel zu erhalten (base64 enkodiert) muss
|
||
folgender Befehl ausgeführt werden:
|
||
|
||
[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
|
||
----
|
||
|
||
Nun Verbindung zum Server herstellen, identifizieren (z.B. mittels "nickserv identify")
|
||
und den öffentlichen Schlüssel für den eigenen Zugang festlegen (der base64 Schlüssel
|
||
im Beispiel muss durch den eigenen öffentlichen Schlüssel ersetzt werden:
|
||
|
||
----
|
||
/connect libera
|
||
/msg nickserv identify your_password
|
||
/msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q
|
||
----
|
||
|
||
Konfiguration der SASL Optionen des Servers:
|
||
|
||
----
|
||
/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"
|
||
----
|
||
|
||
Erneut mit dem Server verbinden:
|
||
|
||
----
|
||
/reconnect libera
|
||
----
|
||
|
||
[[irc_servers_connection]]
|
||
==== Verbindung zum Server
|
||
|
||
Um sich mit einem Server zu Verbinden, nutzt man den
|
||
<<command_irc_connect,/connect>> Befehl:
|
||
|
||
----
|
||
/connect libera
|
||
----
|
||
|
||
Um die Verbindung zu trennen:
|
||
|
||
----
|
||
/disconnect libera
|
||
----
|
||
|
||
Oder nur folgenden Befehl, wenn Sie sich in einem Buffer befinden, der zu
|
||
einem _libera_ Server gehört (Server, Kanal, privat):
|
||
|
||
----
|
||
/disconnect
|
||
----
|
||
|
||
Wenn Sie gleichzeitig mit mehreren Servern verbunden sind, werden die Serverbuffer
|
||
standardmäßig zusammengeführt. Sie können zwischen zusammengefügten Buffern mit
|
||
der kbd:[Ctrl+x] Taste wechseln.
|
||
|
||
Es ist möglich, die automatische Zusammenführung von Serverbuffern zu deaktivieren,
|
||
um unabhängige Serverbuffer zu haben:
|
||
|
||
----
|
||
/set irc.look.server_buffer independent
|
||
----
|
||
|
||
[[irc_tor_sasl]]
|
||
==== Connect with Tor and SASL
|
||
|
||
Einige Server unterstützen eine Verbindungen mittels https://www.torproject.org/[Tor ^↗^^],
|
||
dies ist ein Netzwerk mit virtueller Tunneln, durch welchen Personen und Gruppen ihre
|
||
Privatsphäre und Sicherheit im Internet verbessern können.
|
||
|
||
Im ersten Schritt muss Tor installiert werden. Für Debian (und Derivate):
|
||
|
||
[source,shell]
|
||
----
|
||
sudo apt-get install tor
|
||
----
|
||
|
||
In WeeChat muss nun ein socks5-Proxy für den Tor Service erstellt werden (Hostname/IP
|
||
und Port müssen dabei an die eigene Tor Konfiguration angepasst werden):
|
||
|
||
----
|
||
/proxy add tor socks5 127.0.0.1 9050
|
||
----
|
||
|
||
Fügen Sie nun einen neuen Server hinzu (ersetzen Sie dabei den Servernamen "irc-tor"
|
||
und die Adresse durch gültige Werte):
|
||
|
||
----
|
||
/server add irc-tor hier.ist.die.addresse.onion
|
||
----
|
||
|
||
Nun einen Proxy für Tor anlegen:
|
||
|
||
----
|
||
/set irc.server.irc-tor.proxy "tor"
|
||
----
|
||
|
||
SASL Authentifikation mit ECDSA-NIST256P-CHALLENGE nutzen (siehe Kapitel
|
||
<<irc_sasl_ecdsa_nist256p_challenge,SASL ECDSA-NIST256P-CHALLENGE>> um einen
|
||
privaten Schlüssel zu generieren):
|
||
|
||
----
|
||
/set irc.server.irc-tor.sasl_mechanism ecdsa-nist256p-challenge
|
||
/set irc.server.irc-tor.sasl_username "dein_nickname"
|
||
/set irc.server.irc-tor.sasl_key "${weechat_config_dir}/ecdsa.pem"
|
||
----
|
||
|
||
Abschließend, stellen Sie eine Verbindung zum Server her:
|
||
|
||
----
|
||
/connect irc-tor
|
||
----
|
||
|
||
[[irc_ircv3_support]]
|
||
=== IRCv3 support
|
||
|
||
WeeChat unterstützt folgende 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>>
|
||
|
||
Standardmäßig werden alle vom Server und WeeChat unterstützten Funktionen automatisch aktiviert
|
||
(siehe Option <<option_irc.server_default.capabilities,irc.server_default.capabilities>>).
|
||
|
||
Mehrere Tabellen mit Auflistung verschiedener IRC-Clients, einschließlich WeeChat, sind verfügbar
|
||
auf https://ircv3.net/software/clients[this page ^↗^^].
|
||
|
||
[[irc_ircv3_account_notify]]
|
||
==== account-notify
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/account-notify[account-notify ^↗^^]
|
||
|
||
Diese Funktion ermöglicht es dem Server, Nachrichten zu senden, wenn Benutzer sich auf dem
|
||
Server identifizieren oder diese zurück ziehen. +
|
||
WeeChat zeigt solche Nachrichten an, wenn die Option
|
||
<<option_irc.look.display_account_message,irc.look.display_account_message>>
|
||
aktiviert ist (Standardwert).
|
||
|
||
Beispiele:
|
||
|
||
....
|
||
-- alice wurde identifiziert als Alice01
|
||
|
||
-- alice hat sich nicht identifiziert
|
||
....
|
||
|
||
[[irc_ircv3_account_tag]]
|
||
==== account-tag
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/account-tag[account-tag ^↗^^]
|
||
|
||
Diese Fähigkeit ermöglicht es dem Server, einen Account als Nachrichten-Tag an Befehle zu hängen,
|
||
die an den Client gesendet werden. +
|
||
WeeChat analysiert dieses Tag und speichert es in der Nachricht, aber es wird nicht verwendet oder
|
||
angezeigt. Mit dem <<command_weechat_filter,/filter>> Befehl kann man diese Nachrichten explizit filtern,
|
||
in dem die Accounts nutzt.
|
||
|
||
Beispiel einer empfangenen IRC-Rohnachricht:
|
||
|
||
....
|
||
@account=Alice01 :user@example.com PRIVMSG #test :Hello!
|
||
....
|
||
|
||
Nachricht wie sie im Kanal angezeigt wird:
|
||
|
||
....
|
||
<alice> Hello!
|
||
....
|
||
|
||
Nachricht, mit 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
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/away-notify[away-notify ^↗^^]
|
||
|
||
Diese Funktion ermöglicht es dem Server, Abwesenheits-Benachrichtigungen für Benutzer zu versenden,
|
||
die die selben Kanälen besuchen, wie Sie.
|
||
|
||
Wenn der Abwesenheitsstatus für einen Benutzer geändert wird (abwesend oder zurück), wird dies mit
|
||
einer bestimmten Farbe in der Nickliste dargestellt. Siehe folgende Optionen:
|
||
|
||
* <<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
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/batch[batch ^↗^^]
|
||
|
||
Diese Funktion ermöglicht es dem Server, Batch-Ereignisse (Gruppe von mehreren
|
||
Nachrichten, die zusammengehören) zu senden.
|
||
|
||
Im Moment speichert WeeChat nur Nachrichten, die in einem Stapel empfangen werden,
|
||
und verarbeitet sie wie gewohnt später, wenn der Stapel endet.
|
||
|
||
[[irc_ircv3_cap_notify]]
|
||
==== cap-notify
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/capability-negotiation#the-cap-new-subcommand[cap-notify ^↗^^]
|
||
|
||
Diese Fähigkeit ermöglicht es dem Server, neue oder entfernte Fähigkeiten anzubieten, über die
|
||
der Server verfügt (mittels der Befehle `CAP NEW` und `CAP DEL`).
|
||
|
||
Beispiele:
|
||
|
||
....
|
||
-- irc: Clientfähigkeit, nicht verfügbar: sasl
|
||
|
||
-- irc: Clientfähigkeit, entfernt: sasl
|
||
....
|
||
|
||
[[irc_ircv3_chghost]]
|
||
==== chghost
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/chghost[chghost ^↗^^]
|
||
|
||
Diese Funktion ermöglicht es dem Server, Nachrichten zu senden, wenn Benutzer den Namen oder den Host ändern. +
|
||
Wenn die Option <<option_irc.look.smart_filter_chghost,irc.look.smart_filter_chghost>>
|
||
aktiviert ist (Standardwert), werden die Host-Änderungen automatisch ausgeblendet, falls der Nick
|
||
mehrere Minuten nicht aktiv gewesen ist. +
|
||
Die Farbe der Change-Host-Meldung wird durch die Option
|
||
<<option_irc.color.message_chghost,irc.color.message_chghost>>
|
||
kontrolliert.
|
||
|
||
Beispiele:
|
||
|
||
....
|
||
-- alice (user@example.com) hat den Host nach test.com geändert
|
||
....
|
||
|
||
[[irc_ircv3_draft_multiline]]
|
||
==== draft/multiline
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/multiline[multiline ^↗^^]
|
||
|
||
Diese Funktion ermöglicht es dem Client und dem Server, Nachrichten über mehrere Zeilen zu senden.
|
||
Es wird dazu die Fähigkeit <<irc_ircv3_batch,batch>> genutzt, die ebenfalls aktiviert sein muss.
|
||
|
||
Es gibt Beschränkungen hinsichtlich der Anzahl der Bytes oder der Anzahl der Zeilen in einer mehrzeiligen Nachricht
|
||
die in der vom Server gesendeten Fähigkeit angegeben sind, zum Beispiel:
|
||
|
||
....
|
||
CAP alice LS * :draft/multiline=max-bytes=4096,max-lines=24
|
||
....
|
||
|
||
Dies legt eine Grenze von 4096 Bytes und 24 Zeilen für einen mehrzeiligen Batch-Inhalt fest.
|
||
|
||
Wenn die Grenzwerte nicht vom Server vorgegeben sind, sind die Standardwerte in WeeChat:
|
||
|
||
* max Bytes: 4096
|
||
* max Zeilen: 24
|
||
|
||
Nur Standardnachrichten und solche, die von <<command_irc_notice,/notice>> Befehl gesendet werden
|
||
können mehrzeilig sein. +
|
||
ACTION CTCP-Nachrichten, die mit dem Befehl <<command_irc_me,/me>> gesendet werden, sind nicht betroffen
|
||
durch diese Fähigkeit. Das bedeutet, dass mehrzeilige Aktionen als Mehrfachaktionen gesendet werden.
|
||
|
||
[WARNING]
|
||
Da es sich bei der Spezifikation um einen „Entwurf“ handelt, kann sich diese Spezifikation ändern und
|
||
die Mehrzeilenunterstützung in WeeChat abbrechen. +
|
||
Die Funktion wird automatisch aktiviert, wenn der Server sie unterstützt und kann mit folgendem
|
||
Befehl deaktiviert werden:
|
||
`/set irc.server_default.capabilities "*,!draft/multiline"`. +
|
||
Wenn die Funktion deaktiviert ist, wird eine mehrzeilige Nachricht einfach in mehreren Nachrichten gesendet,
|
||
als ob sie die Nachrichten nacheinander an den Server gesendet wurden.
|
||
|
||
Beispiel einer IRC Nutzer Nachricht, die über zwei Zeilen geht (`Dies ist ein Test`
|
||
/ `über zwei Zeilen`), und im Kanal #test gesendet wird:
|
||
|
||
....
|
||
BATCH +i8Je7M7gquddoyC9 draft/multiline #test
|
||
@batch=i8Je7M7gquddoyC9 PRIVMSG #test :Dies ist ein Test
|
||
@batch=i8Je7M7gquddoyC9 PRIVMSG #test :über zwei Zeilen
|
||
BATCH -i8Je7M7gquddoyC9
|
||
....
|
||
|
||
Eine gesendete Nachricht wie sie in WeeChat dargestellt wird:
|
||
|
||
....
|
||
19:01:45 alice | this is a test
|
||
| on two lines
|
||
....
|
||
|
||
[[irc_ircv3_echo_message]]
|
||
==== echo-message
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/echo-message[echo-message ^↗^^]
|
||
|
||
Diese Funktion zwingt den Server, PRIVMSG-, NOTICE- und TAGMSG-Nachrichten zurück an
|
||
WeeChat zu senden.
|
||
|
||
WeeChat zeigt nur die empfangene Nachricht und nicht die gesendete Nachricht an, also eine Verzögerung
|
||
zwischen dem Senden und der Darstellung ist erkennbar. Wenn die Nachricht dargestellt wird,
|
||
bedeutet dies, dass die Nachricht ordnungsgemäß vom Server empfangen und an andere Clients weitergeleitet
|
||
wurde, die ebenfalls mit dem Server verbunden sind.
|
||
|
||
[[irc_ircv3_extended_join]]
|
||
==== extended-join
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/extended-join[extended-join ^↗^^]
|
||
|
||
Diese Funktion ermöglicht es dem Server, sowohl Account und den Realnamen des Users zu senden,
|
||
wenn diese einen Kanal betreten. +
|
||
WeeChat zeigt diese zusätzlichen Informationen in Join-Nachrichten an, wenn die Option
|
||
<<option_irc.look.display_extended_join,irc.look.display_extended_join>>
|
||
aktiviert ist (Standardwert).
|
||
|
||
Beispiele:
|
||
|
||
....
|
||
--> john [John01] (John Doe) (~user@example.com) hat den Kanal #test betreten
|
||
....
|
||
|
||
[[irc_ircv3_invite_notify]]
|
||
==== invite-notify
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/invite-notify[invite-notify ^↗^^]
|
||
|
||
Diese Funktion ermöglicht es dem Server, Einladungsnachrichten zu senden, wenn Benutzer zu
|
||
Kanälen eingeladen werden.
|
||
|
||
Beispiele:
|
||
|
||
....
|
||
-- alice hat bob in den Kanal #test eingeladen
|
||
....
|
||
|
||
[[irc_ircv3_message_tags]]
|
||
==== message-tags
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/message-tags[message-tags ^↗^^]
|
||
|
||
Diese Funktion ermöglicht das Hinzufügen von Metadaten zu Nachrichten. +
|
||
Diese Tags können mit dem Befehl `/debug tags` angezeigt werden.
|
||
|
||
Um diese Funktion zu verwenden, muss sie aktiviert werden: <<typing_notifications,Schreibbenachrichtigung>>.
|
||
|
||
[[irc_ircv3_monitor]]
|
||
==== monitor
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/monitor[monitor ^↗^^]
|
||
|
||
Diese Funktion ermöglicht es dem Server, Benachrichtigungen zu senden, wenn Clients
|
||
Online/Offline gehen. +
|
||
WeeChat verwendet diese Erweiterung automatisch, sofern verfügbar, wenn der
|
||
<<command_irc_notify,/notify>> Befehl genutzt wird.
|
||
|
||
[[irc_ircv3_multi_prefix]]
|
||
==== multi-prefix
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/multi-prefix[multi-prefix ^↗^^]
|
||
|
||
Diese Fähigkeit ermöglicht es dem Server, alle Benutzermodi auf einmal zu senden, wenn
|
||
die Befehle <<command_irc_names,/names>> und <<command_irc_whois,/whois>> genutzt werden. +
|
||
|
||
////
|
||
Beispiele: Ausgabe von `/names`:
|
||
|
||
....
|
||
-- Nicks #test: [@%+alice bob +carol]
|
||
....
|
||
////
|
||
|
||
[NOTE]
|
||
Momentan zeigt WeeChat nicht alle Präfixe in der Ausgabe von `/names` an, selbst wenn
|
||
diese empfangen und intern ordnungsgemäß verarbeitet werden.
|
||
|
||
Beispiele: Ausgabe von `/whois alice`:
|
||
|
||
....
|
||
-- [alice] @%+#test
|
||
....
|
||
|
||
[[irc_ircv3_sasl]]
|
||
==== SASL
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/sasl-3.2[SASL 3.2 ^↗^^]
|
||
|
||
Siehe das entsprechende Kapitel <<irc_sasl_authentication,SASL authentication>>.
|
||
|
||
[[irc_ircv3_server_time]]
|
||
==== server-time
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/server-time[server-time ^↗^^]
|
||
|
||
Diese Fähigkeit ermöglicht es dem Server, die Zeit für Nachrichten als Nachrichten-Tag zu senden. +
|
||
Wenn die Zeit in einer Nachricht empfangen wird, verwendet WeeChat diese, um die Nachricht anzuzeigen
|
||
(diese Nachricht kann dann mit einem zurückliegenden Datum angezeigt werden).
|
||
|
||
Der <<relay_irc_proxy,IRC-Proxy>> der Relay-Erweiterung unterstützt diese Funktion,
|
||
deshalb sollte jeder IRC-Client der mit dem Relay verbunden ist, diese Funktion aktivieren,
|
||
um die korrekte Uhrzeit der Nachricht im Verlaufsspeicher anzuzeigen.
|
||
|
||
[[irc_ircv3_setname]]
|
||
==== setname
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/setname[setname ^↗^^]
|
||
|
||
Mit dieser Funktion können Sie Ihren richtigen Namen ändern, indem Sie den
|
||
<<command_irc_setname,/setname>> Befehl nutzen.
|
||
|
||
[[irc_ircv3_typing]]
|
||
==== typing
|
||
|
||
Spezifikation: https://ircv3.net/specs/client-tags/typing[typing ^↗^^]
|
||
|
||
Siehe das entsprechende Kapitel <<typing_notifications,Schreibbenachrichtigung>>.
|
||
|
||
[[irc_ircv3_userhost_in_names]]
|
||
==== userhost-in-names
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/userhost-in-names[userhost-in-names ^↗^^]
|
||
|
||
Diese Funktion ermöglicht es dem Server, Hostnamen bei <<command_irc_names,/names>> zu senden.
|
||
|
||
[NOTE]
|
||
WeeChat zeigt keine Hostnamen in der Aushabe des `/names` Befehls an.
|
||
|
||
Beispiel für unverarbeitete IRC-Nachrichten, die ohne die Fähigkeit empfangen wurden:
|
||
|
||
....
|
||
:irc.server 353 alice = #test :@alice bob +carol
|
||
....
|
||
|
||
Beispiel für unverarbeitete IRC-Nachrichten, die mit der Funktion empfangen wurden:
|
||
|
||
....
|
||
:irc.server 353 alice = #test :@alice!user1@host1 bob!user2@host2 +carol!user3@host3
|
||
....
|
||
|
||
[[irc_ircv3_whox]]
|
||
==== WHOX
|
||
|
||
Spezifikation: https://ircv3.net/specs/extensions/whox[WHOX ^↗^^]
|
||
|
||
Mit dieser Funktion können Sie zusätzliche Felder in der WHO-Antwort anfordern
|
||
(mit dem Befehl <<command_irc_who,/who>>). +
|
||
WeeChat zeigt alle empfangenen Zusatzinformationen in der WHO-Ausgabe an.
|
||
|
||
[[irc_channels]]
|
||
=== Kanäle
|
||
|
||
Kanäle können mit dem Befehl <<command_irc_join,/join>> betreten
|
||
werden:
|
||
|
||
----
|
||
/join #channel
|
||
----
|
||
|
||
Verbindung zum Kanal trennen (der Buffer bleibt geöffnet):
|
||
|
||
----
|
||
/part [quit message]
|
||
----
|
||
|
||
Kanäle die man betreten hat, werden nicht gesichert. Um diese Kanäle
|
||
automatisch bei einer Verbindung zum Server zu betreten, müssen diese
|
||
Kanäle in der `autojoin` Option des Servers eingetragen werden:
|
||
|
||
----
|
||
/set irc.server.libera.autojoin "#weechat,#weechat-de"
|
||
----
|
||
|
||
[NOTE]
|
||
Es gibt Skripte, die dabei helfen das zu automatisieren,
|
||
siehe `/script search autojoin`.
|
||
|
||
Geben Sie acht, Leerzeichen werden verwendet um die Liste der Kanäle
|
||
von den Schlüsseln zu trennen. Ein Beispiel, wenn `#channel1` einen
|
||
Schlüssel erfordert, aber nicht `#channel2`:
|
||
|
||
----
|
||
/set irc.server.libera.autojoin "#channel1,#channel2 key1"
|
||
----
|
||
|
||
Hilfe zum Format findet man unter Option <<option_irc.server_default.autojoin,irc.server_default.autojoin>>.
|
||
|
||
[[irc_private_messages]]
|
||
=== private Nachrichten
|
||
|
||
Sie können eine private Nachricht mit dem Befehl <<command_irc_query,/query>> senden,
|
||
was einen separaten Buffer, für die Konversation, öffnet:
|
||
|
||
----
|
||
/query bob hallo, wie geht es Dir?
|
||
----
|
||
|
||
Ohne Angabe von Argumenten öffnet der Befehl nur den Buffer
|
||
(oder wählt ihn aus, wenn er bereits geöffnet ist):
|
||
|
||
----
|
||
/query bob
|
||
----
|
||
|
||
Um einen privaten Buffer zu schließen, führt man diesen Befehl in dem
|
||
privaten Buffer aus:
|
||
|
||
----
|
||
/close
|
||
----
|
||
|
||
[[irc_smart_filter]]
|
||
=== Intelligenter Filter
|
||
|
||
Es steht ein intelligenter Filter zur Verfügung, um einige Nachrichten zu filtern, falls eine
|
||
Person in einem Kanal, eine vorgegebene Zeit, nicht geschrieben hat:
|
||
|
||
- join: Person betritt den Kanal
|
||
- part: Person verlässt den Kanal
|
||
- quit: Person meldet sich vom Server ab
|
||
- account: Person ändert seinen Account
|
||
- chghost: Persin ändert Name oder Host
|
||
- mode: Modus des Kanals wurde geändert
|
||
- nick: Person hat seinen Nick geändert
|
||
- setname: Person hat seinen Realname geändert
|
||
|
||
Der intelligente Filterung ist standardmäßig aktiviert, es muss jedoch ein Filter hinzugefügt werden,
|
||
damit die Zeilen im Buffer unterdrückt werden. Zum Beispiel:
|
||
|
||
----
|
||
/filter add irc_smart * irc_smart_filter *
|
||
----
|
||
|
||
Dabei ist es möglich, einen Filter für nur einen Kanal oder für mehrere Kanäle zu erstellen, die mit
|
||
dem selben Namen beginnen (siehe den Befehl <<command_weechat_filter,/filter>>):
|
||
|
||
----
|
||
/filter add irc_smart_weechat irc.libera.#weechat* irc_smart_filter *
|
||
----
|
||
|
||
Um eine längere Verzögerung (in Minuten) einzurichten:
|
||
|
||
----
|
||
/set irc.look.smart_filter_delay 10
|
||
----
|
||
|
||
Falls jemand in den letzten 10 Minuten nichts geschrieben hat, werden seine join/part/quit Nachrichten
|
||
standardmäßig in dem Kanal ausgeblendet. Um diese trotzdem angezeigt zu bekommen,
|
||
muss man die Taste kbd:[Alt+=] (Filter umschalten) drücken.
|
||
|
||
[[irc_ctcp_replies]]
|
||
=== CTCP Antworten
|
||
|
||
Sie haben die Möglichkeit CTCP Antworten anzupassen oder aber bestimmte CTCP
|
||
Anfragen zu sperren (es wird nicht darauf geantwortet).
|
||
|
||
Beispiel: Um eine Antwort auf die CTCP Anfrage "VERSION" anzupassen nutzen Sie
|
||
folgenden Befehl:
|
||
|
||
----
|
||
/set irc.ctcp.version "I'm running WeeChat ${version}, it rocks!"
|
||
----
|
||
|
||
[NOTE]
|
||
Der Name von CTCP muss in Kleinbuchstaben geschrieben werden. Das bedeutet, dass
|
||
die Option _irc.ctcp.VERSION_ nicht funktioniert.
|
||
|
||
Wenn Sie die Anfrage CTCP "VERSION" blockieren möchten (es wird nicht darauf
|
||
geantwortet) dann löschen Sie einfach den Rückgabe-String:
|
||
|
||
----
|
||
/set irc.ctcp.version ""
|
||
----
|
||
|
||
Selbst bisher unbekannte CTCP Anfragen können beantwortet werden. Nehmen wir
|
||
zum Beispiel die Anfrage CTCP "BLABLA":
|
||
|
||
----
|
||
/set irc.ctcp.blabla "Dies ist meine Antwort auf CTCP BLABLA"
|
||
----
|
||
|
||
Auch kann man CTCP Antworten für jeden einzelnen Server anpassen. Dazu muss
|
||
man lediglich den internen Servernamen vor die CTCP Anfrage setzen:
|
||
|
||
----
|
||
/set irc.ctcp.libera.version "WeeChat ${version} (for libera)"
|
||
----
|
||
|
||
Sollen die CTCP Antworten wieder auf die Standardeinstellungen zurück gesetzt werden
|
||
dann müssen Sie lediglich die Option löschen:
|
||
|
||
----
|
||
/unset irc.ctcp.version
|
||
----
|
||
|
||
Die CTCP Antworten sind evaluiert (siehe Befehl <<command_weechat_eval,/eval>>) und
|
||
die folgenden zusätzlichen Variablen sind verfügbar:
|
||
|
||
[width="100%",cols="2,4,8",options="header"]
|
||
|===
|
||
| Variable | Beschreibung | Wert/Beispiel
|
||
| `+${clientinfo}+` | Liste der CTCP Antworten | `+ACTION DCC CLIENTINFO PING SOURCE TIME VERSION+`
|
||
| `+${version}+` | WeeChat Version | `+4.1.0-dev+`
|
||
| `+${versiongit}+` | WeeChat Version + Git version ^(1)^ | `+4.1.0-dev (git: v4.0.0-51-g8f98b922a)+`
|
||
| `+${git}+` | Git Version ^(1)^ | `+v4.0.0-51-g8f98b922a+`
|
||
| `+${compilation}+` | Datum der Kompilierung | `+Jul 8 2023 20:14:23+`
|
||
| `+${osinfo}+` | Info über das genutzte OS | `+Linux 5.10.0-23-amd64 / x86_64+`
|
||
| `+${site}+` | WeeChat Seite | `+https://weechat.org/+`
|
||
| `+${download}+` | WeeChat, Download Seite | `+https://weechat.org/download/+`
|
||
| `+${time}+` | Aktuelle Uhrzeit/Datum | `+Sat, 08 Jul 2023 21:11:19 +0200+`
|
||
| `+${username}+` | Username beim IRC Server | `+Name+`
|
||
| `+${realname}+` | Realname beim IRC Server | `+John Doe+`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Die Git Version wird durch die Ausgabe des Befehls `git describe` ermittelt.
|
||
Dies erfordert, dass WeeChat aus dem Git Repository heraus kompiliert wurde
|
||
und das Git überhaupt installiert ist.
|
||
|
||
Die Standard-CTCP-Antworten sind:
|
||
|
||
[width="100%",cols="2,4,8",options="header"]
|
||
|===
|
||
| CTCP | Antwortformat | Beispiel
|
||
| 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]]
|
||
=== Zielbuffer für IRC Nachrichten
|
||
|
||
Sie können einen Zielbuffer einstellen in welchem IRC Nachrichten dargestellt werden sollen.
|
||
Dazu dienen die Optionen `+irc.msgbuffer.*+`.
|
||
|
||
Für einige IRC Nachrichten (siehe unten) können zusätzliche Werte angepasst werden:
|
||
|
||
current::
|
||
aktueller Buffer (falls es ein IRC Buffer ist, ansonsten im entsprechenden Server Buffer)
|
||
|
||
private::
|
||
privaten Buffer, oder im aktuellen/Server Buffer falls nicht vorhanden (gemäß der Einstellung
|
||
in der Option _irc.look.msgbuffer_fallback_)
|
||
|
||
server::
|
||
Server Buffer
|
||
|
||
weechat::
|
||
WeeChat "core" Buffer
|
||
|
||
Falls die Option nicht gesetzt ist (Standard) wählt WeeChat einen geeigneten Buffer aus,
|
||
üblicherweise handelt es sich dabei um einen Server oder Channel-Buffer.
|
||
|
||
Unvollständige Liste der IRC Nachrichten bzw. Alias die angepasst werden können:
|
||
|
||
[width="100%",cols="^2m,^3m,15",options="header"]
|
||
|===
|
||
| Nachricht | Alias | Beschreibung
|
||
| error | | Fehler
|
||
| invite | | Einladung in einen Channel
|
||
| join | | join
|
||
| kick | | kick
|
||
| kill | | kill
|
||
| mode | | Modus
|
||
| notice | | Mitteilung
|
||
| part | | part
|
||
| quit | | quit
|
||
| topic | | topic
|
||
| wallops | | wallops
|
||
| | ctcp | ctcp (gesendet oder empfangen, in einer privmsg oder notice Nachricht)
|
||
| 221 | | User mode string
|
||
| 275 | whois | whois (sichere Verbindung)
|
||
| 301 | whois | whois (abwesend)
|
||
| 303 | | ison
|
||
| 305 | unaway | nicht abwesend
|
||
| 306 | away | abwesend
|
||
| 307 | whois | whois (registrierter Nick)
|
||
| 310 | whois | whois (Hilfe Modus)
|
||
| 311 | whois | whois (User)
|
||
| 312 | whois | whois (Server)
|
||
| 313 | whois | whois (Operator)
|
||
| 314 | whowas | whowas
|
||
| 315 | who | who (Ende)
|
||
| 317 | whois | whois (inaktiv)
|
||
| 318 | whois | whois (ende)
|
||
| 319 | whois | whois (Channels)
|
||
| 320 | whois | whois (User identifizieren)
|
||
| 321 | list | list (Start)
|
||
| 322 | list | list (Channel)
|
||
| 323 | list | list (Ende)
|
||
| 326 | whois | whois (hat oper privs)
|
||
| 327 | whois | whois (Host)
|
||
| 328 | | Channel URL
|
||
| 329 | | Erstellungsdatum des Channel
|
||
| 330 | whois | whois (eingelogged als)
|
||
| 331 | | kein Topic für Channel
|
||
| 332 | | Channel-Topic
|
||
| 333 | | Infos über Topic
|
||
| 335 | whois | whois (ist ein Bot auf)
|
||
| 338 | whois | whois (Host)
|
||
| 341 | | inviting
|
||
| 343 | whois | whois (ist opered als)
|
||
| 344 | reop | channel reop
|
||
| 345 | reop | channel reop (Ende)
|
||
| 346 | invitelist | Einladung Liste
|
||
| 347 | invitelist | Einladung Liste (Ende)
|
||
| 348 | exceptionlist | exception Liste
|
||
| 349 | exceptionlist | exception Liste (Ende)
|
||
| 351 | | Server Version
|
||
| 352 | who | who
|
||
| 353 | names | Liste von Usern im Channel
|
||
| 366 | names | Ende der /names Liste
|
||
| 367 | banlist | ban Liste
|
||
| 368 | banlist | Ende der ban Liste
|
||
| 369 | whowas | whowas (Ende)
|
||
| 378 | whois | whois (Verbindung von)
|
||
| 379 | whois | whois (genutzte Modi)
|
||
| 401 | whois | kein solcher Nick/Channel
|
||
| 402 | whois | kein solcher Server
|
||
| 432 | | fehlerhafter Nickname
|
||
| 433 | | Nickname wird schon verwendet
|
||
| 438 | | nicht autorisiert um Nicknamen zu ändern
|
||
| 671 | whois | whois (sichere Verbindung)
|
||
| 728 | quietlist | quiet Liste
|
||
| 729 | quietlist | Ende der quiet Liste
|
||
| 732 | monitor | Liste der Nicks welche überwacht werden
|
||
| 733 | monitor | Liste der Nicks welche überwacht werden (Ende)
|
||
| 901 | | Sie sind nun eingelogged
|
||
|===
|
||
|
||
andere nummerische Befehle können angepasst werden.
|
||
|
||
Den IRC Nachrichten kann der Servername vorangestellt werden um zu spezifizieren
|
||
von welchem IRC Server die Nachricht gekommen ist. Zum Beispiel: `libera.whois`.
|
||
|
||
einige Beispiele:
|
||
|
||
* gibt die Antwort von `/whois` im privaten Buffer aus:
|
||
|
||
----
|
||
/set irc.msgbuffer.whois private
|
||
----
|
||
|
||
* stellt die Ausgabe von whois wieder auf Standardbuffer zurück (Server Buffer):
|
||
|
||
----
|
||
/unset irc.msgbuffer.whois
|
||
----
|
||
|
||
* zeigt Einladungen im aktuellen Buffer an, nur für den "libera" Server:
|
||
|
||
----
|
||
/set irc.msgbuffer.libera.invite current
|
||
----
|
||
|
||
* die Nachricht "303" (ison) wird im WeeChat "core" Buffer angezeigt:
|
||
|
||
----
|
||
/set irc.msgbuffer.303 weechat
|
||
----
|
||
|
||
[[irc_commands]]
|
||
=== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=irc_commands]
|
||
|
||
[[irc_options]]
|
||
=== Optionen
|
||
|
||
Sektionen in Datei _irc.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set irc.look.* | Erscheinungsbild.
|
||
| color | /set irc.color.* | Farben.
|
||
| network | /set irc.network.* | Netzwerkoptionen.
|
||
| msgbuffer | /set irc.msgbuffer.* | <<irc_target_buffer,Zielbuffer für IRC Nachrichten>> (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
| ctcp | /set irc.ctcp.* | <<irc_ctcp_replies,CTCP Antworten>> (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
| ignore | <<command_irc_ignore,/ignore>> | Ignoriert Menschen.
|
||
| server_default | /set irc.server_default.* | Standardwerte für Server (werden genutzt, falls keine Optionen für einen Server gesetzt sind).
|
||
| server | <<command_irc_server,/server>> +
|
||
/set irc.server.* | Server.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=irc_options]
|
||
|
||
[[xfer]]
|
||
== Xfer
|
||
|
||
Mit der xfer Erweiterung kann man:
|
||
|
||
* einen direkten Chat nutzen (zwischen zwei Hosts, ohne Server): zum Beispiel "DCC Chat"
|
||
mittels IRC Erweiterung
|
||
* Datentransfer, zum Beispiel "DCC" mittels IRC Erweiterung
|
||
|
||
[[xfer_commands]]
|
||
=== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=xfer_commands]
|
||
|
||
[[xfer_options]]
|
||
=== Optionen
|
||
|
||
Sektionen in Datei _xfer.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set xfer.look.* | Erscheinungsbild.
|
||
| color | /set xfer.color.* | Farben.
|
||
| network | /set xfer.network.* | Netzwerkoptionen.
|
||
| file | /set xfer.file.* | Optionen zum Versenden und Empfangen von Dateien.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=xfer_options]
|
||
|
||
[[typing_notifications]]
|
||
== Schreibbenachrichtigung
|
||
|
||
Die typing-Erweitertung wird verwendet, um andere Benutzer darüber zu informieren,
|
||
dass Sie Nachrichten schreiben, und zeigt eine Liste der Benutzer an, die derzeit
|
||
eine Nachricht in dem Buffer eingeben.
|
||
|
||
Es wird von der IRC-Erweiterung für Kanäle- und private Buffern verwendet, sofern
|
||
die "message-tags"-Fähigkeit aktiviert ist (dies kann mit folgendenen Befehl,
|
||
wie folgt überprüfen werden <<command_irc_cap,/cap>>). +
|
||
|
||
Unter der Haube wird das Typing-Client-Tag folgendermaßen verwendet
|
||
https://ircv3.net/specs/client-tags/typing[this specification ^↗^^].
|
||
|
||
[[typing_activation]]
|
||
=== Aktivierung
|
||
|
||
Aus Datenschutzgründen ist diese Tippfunktion standardmäßig deaktiviert. +
|
||
Wenn Sie es verwenden möchten, müssen Sie Optionen sowohl in den typing- als
|
||
auch für die IRC-Erweiterung aktivieren:
|
||
|
||
----
|
||
/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
|
||
----
|
||
|
||
Die Tippbenachrichtigungen werden am Ende der Statusleiste angezeigt.
|
||
|
||
Beispiel für die Statusleiste mit dem "typing" Item: "bob" tippt gerade eine
|
||
Nachricht und "alice" hat eine Nachricht getippt, machte aber eine Pause:
|
||
|
||
....
|
||
│[12:55] [6] [irc/libera] 3:#test(+n){4} [Typing: bob, (alice)] │
|
||
│[@Flashy] █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[typing_signals_sent]]
|
||
=== Signale gesendet
|
||
|
||
Wenn Sie eine Nachricht eingeben (Befehle, die mit `/` beginnen, werden ignoriert),
|
||
sendet die typing-Erweitertung Signale, um andere Erweiterungen (wie z.B. IRC) darüber
|
||
zu informieren, dass Sie eine Nachricht eingeben. Diese Erweiterungen können dann
|
||
Tippbenachrichtigungen an andere Benutzer senden.
|
||
|
||
Die folgenden Signale werden gesendet, wenn Sie eine Nachricht schreiben:
|
||
|
||
[width="100%",cols="1,1,5",options="header"]
|
||
|===
|
||
| Signal | Argumente | Beschreibung
|
||
| typing_self_typing | Pointer: buffer. | Du schreibst eine Nachricht.
|
||
| typing_self_paused | Pointer: buffer. | Du machst beim Schrieben einer Nachricht, eine Pause.
|
||
| typing_self_cleared | Pointer: buffer. | Du hast die Eingabezeile gelöscht, ohne die Nachricht zu senden.
|
||
| typing_self_sent | Pointer: buffer. | Du hast die Nachricht in den Buffer geschickt.
|
||
|===
|
||
|
||
[[typing_signals_caught]]
|
||
=== Signale empfangen
|
||
|
||
Die typing-Erweiterung fängt einige Signale ab, die von anderen Erweiterungen (wie IRC)
|
||
gesendet werden können, um interne Hashtables zu aktualisieren, die verwendet werden,
|
||
um den Schreibstatus von Nicks in Buffern zu sichern. Diese Hashtabellen werden verwendet,
|
||
um den Inhalt des "typing"-Items zu erstellen.
|
||
|
||
Die folgenden Signale werden von der typing-Erweiterung empfangen:
|
||
|
||
[width="100%",cols="1,4,3",options="header"]
|
||
|===
|
||
| Signal | Argumente | Beschreibung
|
||
|
||
| typing_set_nick
|
||
| Zeichenkette: Bufferpointer + ";" + Status (möglich: "off", "typing", "paused",
|
||
"cleared") + ";" + Nick. +
|
||
Beispiele: "0x1234abcd;typing;alice".
|
||
| Schreibstatus für einen Nick in einem Buffer festlegen.
|
||
|
||
| typing_reset_buffer
|
||
| Pointer: Buffer.
|
||
| Schreibstatus für alle Nicks in einem Buffer entfernen.
|
||
|===
|
||
|
||
[[typing_options]]
|
||
=== Optionen
|
||
|
||
Sektionen in Datei _typing.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set typing.look.* | Erscheinungsbild.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=typing_options]
|
||
|
||
[[relay]]
|
||
== Relay
|
||
|
||
Die Relay-Erweiterung wird genutzt um Daten, mittels unterschiedlicher Protokolle,
|
||
über ein Netzwerk zu übermitteln:
|
||
|
||
* _irc_: IRC Proxy: um mittels einem oder mehreren IRC-Clients eine Verbindung zu
|
||
IRC Servern zu unterhalten.
|
||
* _api_: HTTP REST API, wird von WeeChat und Remote-Schnittstellen zur Anzeige und
|
||
Interaktion mit WeeChat verwendet
|
||
* _weechat_: von Remote-Schnittstellen verwendetes Protokoll zur Anzeige und Interaktion mit
|
||
WeeChat.
|
||
|
||
Für die _api_ und _weechat_ Protokolle findet man eine Liste der Remote-Schnittstellen auf
|
||
https://weechat.org/about/interfaces/[this page ^↗^^].
|
||
|
||
[[relay_password]]
|
||
=== Passwort
|
||
|
||
Es wird dringend empfohlen, mit diesen Befehlen ein Passwort für das Relay festzulegen:
|
||
|
||
----
|
||
/secure set relay meinPasswort
|
||
/set relay.network.password "${sec.data.relay}"
|
||
----
|
||
|
||
Dieses Passwort wird bei allen Protokollen verwendet.
|
||
|
||
[[relay_totp]]
|
||
=== TOTP
|
||
|
||
TOTP (Time-based One-Time Password) kann als sekundärer Authentifizierungsfaktor
|
||
für die Protokolle _api_ und _weechat_ zusätzlich zum Passwort verwendet werden.
|
||
|
||
Diese Funktion is optional und erhöht den Sicherheitsgrad.
|
||
|
||
Ein Einmal-Passwort kann mit folgenden Anwendungen erstellt werden, zum Beispiel:
|
||
|
||
* 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 ^↗^^]
|
||
|
||
Die geheime TOTP Zeichenkette muss in WeeChat und der Anwendung gesetzt werden, welches
|
||
für die Erstellung des Einmal-Passwort zuständig ist.
|
||
|
||
Die Zeichenkette muss base32 enkodiert sein, ausschließlich Buchstaben und Zahlen zwischen 2 und 7
|
||
sind erlaubt, zum Beispiel:
|
||
|
||
----
|
||
/secure set relay_totp secretpasswordbase32
|
||
/set relay.network.totp_secret "${sec.data.relay_totp}"
|
||
----
|
||
|
||
[[relay_tls]]
|
||
=== TLS
|
||
|
||
Man kann TLS mittels eines selbst erstellten Zertifikates und eines privaten
|
||
Schlüssels nutzen. Um TLS für die Verbindung zu aktivieren stellt man dem
|
||
Protokollnamen ein "tls" voran.
|
||
|
||
Der Standardpfad zum Zertifikat/Schlüssel wird durch die Option definiert
|
||
<<option_relay.network.tls_cert_key,relay.network.tls_cert_key>>.
|
||
|
||
Ein Zertifikat und einen privaten Schlüssel kann man mit folgenden Befehlen
|
||
erstellen:
|
||
|
||
[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
|
||
----
|
||
|
||
[NOTE]
|
||
Sie müssen `~/.config/weechat` durch den Pfad zu Ihrem WeeChat-Konfigurationsverzeichnis ersetzen,
|
||
das auch beispielsweise `~/.weechat` sein kann.
|
||
|
||
Sollte WeeChat schon gestartet worden sein, kann man das Zertifikat und der private
|
||
Schlüssel mittels folgendem Befehl nachträglich geladen werden:
|
||
|
||
----
|
||
/relay tlscertkey
|
||
----
|
||
|
||
[[relay_irc_proxy]]
|
||
=== IRC Proxy
|
||
|
||
Die Relay Erweiterung kann wie ein IRC Proxy genutzt werden. Dabei simuliert
|
||
die Erweiterung einen IRC Server und man kann sich mit jedem IRC Client zu WeeChat
|
||
verbinden.
|
||
|
||
Es kann für jeden IRC Server ein Port definiert werden, oder aber man nutzt ein Port
|
||
für alle Server.
|
||
|
||
Wird ein Port für alle Server genutzt, dann muss der Client den internen Namen
|
||
des zu nutzenden Servers mit dem IRC Befehl "PASS" anfordern (siehe folgendes Beispiel):
|
||
|
||
----
|
||
PASS server:meinPasswort
|
||
----
|
||
|
||
Beispiel: IRC Proxy mit TLS für einen beliebigen Server (Client wählt aus):
|
||
|
||
----
|
||
/relay add tls.irc 8000
|
||
----
|
||
|
||
Beispiel: IRC Proxy ohne TLS und nur für "libera":
|
||
|
||
----
|
||
/relay add irc.libera 8000
|
||
----
|
||
|
||
Nun kann man eine Verbindung zum Port 8000 mit jedem beliebigen IRC Client
|
||
herstellen, indem man das Server Passwort "meinPasswort" nutzt (oder
|
||
"libera:meinPasswort" sofern kein Server angegeben wurde).
|
||
|
||
Wenn Sie beispielsweise WeeChat als IRC-Client über das Relay mit einem Server namens
|
||
"Relay" und dem Relay-Passwort "secret" verwenden, können Sie das Passwort mit den
|
||
folgenden Befehlen einrichten:
|
||
|
||
----
|
||
/secure set relay_libera libera:secret
|
||
/set irc.server.relay.password "${sec.data.relay_libera}"
|
||
----
|
||
|
||
[[relay_api_protocol]]
|
||
=== API protocol
|
||
|
||
Die Relay-Erweiterung kann Daten über ein HTTP REST API-Protokoll an einen Remote-WeeChat oder eine Remote-Schnittstelle senden.
|
||
|
||
Die API kann online durchstöbert und getestet werden:
|
||
https://weechat.org/api/[WeeChat Relay API ^↗^^].
|
||
|
||
Sie können sich mit WeeChat oder einer Remote-Schnittstelle verbinden, siehe
|
||
https://weechat.org/about/interfaces/[this page ^↗^^].
|
||
|
||
Zum Beispiel:
|
||
|
||
----
|
||
/relay add api 9000
|
||
----
|
||
|
||
Jetzt kann man sich über Port 9000 mit einem WeeChat oder einer Remote-Schnittstelle
|
||
verbinden, indem das Passwort „mypassword“ verwendet wird.
|
||
|
||
Um eine lokale Verbindung via _api_ Relay mittels WeeChat herzustelen:
|
||
|
||
----
|
||
/remote add weechat http://localhost:9000 -password=mypassword
|
||
/remote connect weechat
|
||
----
|
||
|
||
Um eine entfernte Verbindung via _api_Relay mittels WeeChat herzustelen
|
||
(TLS wird dringend empfohlen):
|
||
|
||
----
|
||
/remote add weechat https://example.com:9000 -password=mypassword
|
||
/remote connect weechat
|
||
----
|
||
|
||
[NOTE]
|
||
Der Remote-WeeChat muss dieselbe API-Version wie der lokale WeeChat nutzen.
|
||
Daher wird dringend empfohlen, auf dem Remote- und dem lokalen Client genau
|
||
dieselbe WeeChat-Version zu verwenden.
|
||
|
||
[[relay_weechat_protocol]]
|
||
=== WeeChat Protokoll
|
||
|
||
Die Relay-Erweiterung kann Daten, mittels dem WeeChat Protokoll, an eine
|
||
externe Oberfläche senden.
|
||
|
||
Sie können eine Verbindung mit einer Remote-Schnittstelle herstellen, siehe
|
||
https://weechat.org/about/interfaces/[this page ^↗^^].
|
||
|
||
[IMPORTANT]
|
||
Eine WeeChat Instanz kann sich NICHT mit einer anderen WeeChat Instanz über
|
||
dieses Protokoll verbinden.
|
||
|
||
Zum Beispiel:
|
||
|
||
----
|
||
/relay add weechat 9500
|
||
----
|
||
|
||
Nun kann man über den Port 9500 mittels einer Oberfläche und dem Passwort
|
||
"meinPasswort" eine Verbindung zu WeeChat herstellen.
|
||
|
||
[[relay_websocket]]
|
||
=== WebSocket
|
||
|
||
Das WebSocket Protokoll (https://datatracker.ietf.org/doc/html/rfc6455[RFC 6455 ^↗^^])
|
||
wird nun in der Relay Erweiterung unterstützt.
|
||
|
||
Der WebSocket Handshake wird automatisch erkannt und der Socket ist sofort
|
||
funktionsfähig, sofern die benötigten Header gefunden werden und die Herkunft
|
||
bestätigt wurde (siehe Option <<option_relay.network.websocket_allowed_origins,relay.network.websocket_allowed_origins>>).
|
||
|
||
Ein WebSocket kann in HTML5, mit einer JavaScript Zeile, geöffnet werden:
|
||
|
||
[source,javascript]
|
||
----
|
||
websocket = new WebSocket("ws://example.com:9500/weechat");
|
||
----
|
||
|
||
Der Port (im Beispiel: 9500) ist der Port der in der Relay Erweiterung angegeben wurde.
|
||
|
||
Die URI muss mit „/weechat“ für die Protokolle _irc_ und _weechat_ und mit „/api“
|
||
für das Protokoll _api_ enden.
|
||
|
||
[[relay_unix_socket]]
|
||
=== UNIX Domain Sockets
|
||
|
||
Wenn man die Protokolloption "unix" mit dem Befehl `/relay add` nutzt, kann
|
||
man jedes Protokoll zum Lauschen an einem UNIX Domain Socket nutzen, indem
|
||
man einen Pfad angibt. Zum Beispiel:
|
||
|
||
----
|
||
/relay add unix.weechat ${weechat_runtime_dir}/relay_socket
|
||
----
|
||
|
||
Das erlaubt es Clients sich mittels dem weechat Protokoll mit
|
||
_/run/user/1000/weechat/relay_socket_ zu verbinden. Dies ist besonders zu
|
||
empfehlen um SSH forwarding für relay Clients zu nutzen, falls
|
||
andere Ports nicht geöffnet werden können.
|
||
|
||
OpenSSH nutzen:
|
||
|
||
[source,shell]
|
||
----
|
||
ssh -L 9000:.weechat/relay_socket user@hostname
|
||
----
|
||
|
||
Dies leitet lokale relay Client Verbindungen von Port 9000 um, zu
|
||
einer WeeChat Instanz welche auf "hostname" hört.
|
||
|
||
[[relay_commands]]
|
||
=== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=relay_commands]
|
||
|
||
[[relay_options]]
|
||
=== Optionen
|
||
|
||
Sektionen in Datei _relay.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set relay.look.* | Erscheinungsbild.
|
||
| color | /set relay.color.* | Farben.
|
||
| network | /set relay.network.* | Netzwerkoptionen.
|
||
| irc | /set relay.irc.* | für das IRC Protokoll spezifische Optionen (IRC Proxy).
|
||
| port | <<command_relay_relay,/relay add>> +
|
||
/set relay.port.* | Ports zur Nutzung der Relay-Erweiterung (Optionen können in Sektion hinzugefügt/entfernt werden).
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=relay_options]
|
||
|
||
[[external_commands]]
|
||
== externe Befehle
|
||
|
||
Der `/exec` Befehl erlaubt es aus WeeChat heraus einen oder mehrere externe
|
||
Befehle auszuführen und eine Ausgabe im lokalen Buffer darzustellen oder in
|
||
einem Buffer auszugeben.
|
||
|
||
[[exec_commands]]
|
||
=== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=exec_commands]
|
||
|
||
[[exec_options]]
|
||
=== Optionen
|
||
|
||
Sektionen in Datei _exec.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| command | /set exec.command.* | Optionen für Befehle.
|
||
| color | /set exec.color.* | Farben.
|
||
|===
|
||
|
||
Options:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=exec_options]
|
||
|
||
[[fifo_pipe]]
|
||
== FIFO Pipe
|
||
|
||
Sie können WeeChat fern steuern indem Sie Befehle oder einen Text an die FIFO Pipe
|
||
schicken (dazu muss die Option "fifo.file.enabled" aktiviert sein (standardmäßig
|
||
ist diese Option aktiviert).
|
||
|
||
Die FIFO-Pipe befindet sich im WeeChat-Laufzeitverzeichnis und wird standardmäßig
|
||
_weechat_fifo_12345_ benannt (wobei _12345_ die WeeChat-Prozess-ID ist).
|
||
|
||
Die Syntax der FIFO Pipe Befehle/Text sieht wie folgt aus:
|
||
|
||
....
|
||
plugin.buffer *hier Text oder Befehl
|
||
*hier Text oder Befehl
|
||
....
|
||
|
||
Backslashes können mit diesem Format interpretiert werden, wobei `*` durch `\` ersetzt wird,
|
||
damit kann man beispielsweise mehrzeilige Nachrichten senden:
|
||
|
||
....
|
||
plugin.buffer \text or command here
|
||
\text or command here
|
||
....
|
||
|
||
einige Beispiele:
|
||
|
||
* Ändert den eigenen Nick auf dem IRC Server libera in "newnick":
|
||
|
||
[source,shell]
|
||
----
|
||
echo 'irc.server.libera */nick newnick' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
* Schickt eine Nachrich in den IRC #weechat Channel:
|
||
|
||
[source,shell]
|
||
----
|
||
echo 'irc.libera.#weechat *hello!' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
* Sendet eine mehrzeilige Nachricht in den IRC Kanal #test, wenn die Fähigkeit "draft/multiline"
|
||
auf dem Ergo Server aktiviert ist:
|
||
|
||
[source,shell]
|
||
----
|
||
echo 'irc.ergo.#test \hello\n...on two lines!' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
* Schickt eine Nachricht in den aktuellen Buffer:
|
||
|
||
[source,shell]
|
||
----
|
||
echo '*hello!' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
* Sendet zwei Befehle um alle Python-Skripten zu entfernen und dann neu zu laden (die beiden Befehle müssen
|
||
mit "\n" getrennt werden):
|
||
|
||
[source,shell]
|
||
----
|
||
printf '%b' '*/python unload\n*/python autoload\n' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
[[fifo_commands]]
|
||
=== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=fifo_commands]
|
||
|
||
[[fifo_options]]
|
||
=== Optionen
|
||
|
||
Sektionen in Datei _fifo.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| file | /set fifo.file.* | FIFO Pipe Optionen.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=fifo_options]
|
||
|
||
[[trigger]]
|
||
== Trigger
|
||
|
||
Trigger ist das Schweizer Armeemesser für WeeChat. Es können verschiedene
|
||
Hooks überwacht werden (signal. modifier, print, ...), der Inhalt von
|
||
Daten kann verändert werden, es können ein- oder mehrere Befehle ausgeführt
|
||
werden. Eine Bedingung kann genutzt werden um damit zu verhindern, dass der
|
||
Trigger unter bestimmten Umständen ausgeführt wird.
|
||
|
||
Um Trigger nutzen zu können ist es von Vorteil zu wissen wie signals,
|
||
modifiers, ... in WeeChat überhaupt funktionieren. Deshalb sollte man überlegen,
|
||
ob man nicht folgende Anleitung lesen sollte link:weechat_plugin_api.en.html#hooks[Anleitung für API Erweiterung / Hooks ^↗^^] (Englisch).
|
||
|
||
[[trigger_default]]
|
||
=== standardmäßige Trigger
|
||
|
||
WeeChat erstellt standardmäßig fünf Trigger, welche deaktiviert, angepasst oder
|
||
gelöscht werden können:
|
||
|
||
* ein _beep_ Trigger für Benachrichtigungen
|
||
* vier Trigger um Passwörter auf dem Bildschirm zu unterdrücken
|
||
|
||
Liste der standardmäßigen Trigger:
|
||
|
||
[width="100%",cols="5m,3,22",options="header"]
|
||
|===
|
||
| Name | Hook | Beschreibung
|
||
|
||
| beep | print
|
||
| Beep bei Highlight/privaten Nachrichten.
|
||
|
||
| cmd_pass | modifier
|
||
| unterdrückt Passwörter in den Befehlen:
|
||
`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
|
||
| unterdrückt Passwort im Befehl `pass:[/msg nickserv register]`.
|
||
|
||
| msg_auth | modifier
|
||
| unterdrückt Passwort einer IRC auth Nachricht (Nachricht welche vom Server empfangen wird,
|
||
nachdem der User den Befehl verschickt hat).
|
||
|
||
| server_pass | modifier
|
||
| unterdrückt Passwort bei den Befehlen `/server` und `/connect`.
|
||
|===
|
||
|
||
[[trigger_anatomy]]
|
||
=== Aufbau eines Triggers
|
||
|
||
Ein Trigger hat folgende Optionen (Benennung ist
|
||
`trigger.trigger.<name>.<option>`):
|
||
|
||
[width="100%",cols="2m,3,10",options="header"]
|
||
|===
|
||
| Option | Wert | Beschreibung
|
||
|
||
| enabled | `on`, `off`
|
||
| Wenn die Option auf `off` gesetzt ist, dann ist der Trigger deaktiviert und die Ausführung ist gestoppt.
|
||
|
||
| hook | `+signal+`, `+hsignal+`, `+modifier+`, `+line+`, `+print+`, `+command+`,
|
||
`+command_run+`, `+timer+`, `+config+`, `+focus+`, `+info+`, `+info_hashtable+`
|
||
| Der hook welcher durch Trigger genutzt werden soll. Für weitere Informationen siehe
|
||
link:weechat_plugin_api.en.html#hooks[Anleitung für API Erweiterung / Hooks ^↗^^] (Englisch).
|
||
|
||
| arguments | string
|
||
| Argumente welche der Hook nutzen soll. Dies ist davon abhängig welcher Hook-Typ genutzt wird.
|
||
|
||
| conditions | string
|
||
| Bedingung wann der Trigger ausgeführt werden soll; Inhalt ist evaluiert
|
||
(siehe Befehl <<command_weechat_eval,/eval>>).
|
||
|
||
| regex | string
|
||
| Einer oder mehrere erweiterte reguläre POSIX Ausdrücke, um die empfangenen Daten
|
||
im Hook-Callback zu ändern (oder Daten die durch die Trigger-Erweiterung hinzugefügt
|
||
worden sind), siehe <<trigger_regex,reguläre Ausdrücke>>.
|
||
|
||
| command | string
|
||
| Befehl der ausgeführt werden soll (mehrere Befehle können durch Kommata
|
||
voneinander getrennt werden); Inhalt ist evaluiert (siehe Befehl <<command_weechat_eval,/eval>>).
|
||
|
||
| return_code | `+ok+`, `+ok_eat+`, `+error+`
|
||
| Rückgabewert des Callback (Standardwert: `ok`, sollte für fast jeden Trigger
|
||
genutzt werden. Die anderen Werte werden höchst selten verwendet).
|
||
|
||
| post_action | `none`, `disable`, `delete`
|
||
| Aktion welche nach der Abarbeitung des Triggers ausgeführt werden soll
|
||
(Standardwert ist `none` und sollte in den meisten Fällen zur Anwendung
|
||
kommen.)
|
||
|===
|
||
|
||
Ein Beispiel ist der standardmäßig genutzte Trigger _beep_, der
|
||
folgende Optionen besitzt:
|
||
|
||
----
|
||
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]]
|
||
=== Ausführung
|
||
|
||
Wenn ein Trigger-Callback aufgerufen wird, dann wird folgende Befehlskette
|
||
abgearbeitet:
|
||
|
||
. Überprüfung von Bedingungen; falls unwahr, beenden
|
||
. ersetze Text mittels erweitertem regulärer POSIX Ausdruck (sofern im Trigger definiert)
|
||
. ein oder mehrere Befehle werden ausgeführt (sofern im Trigger definiert)
|
||
. Beendigung mit einem Rückgabewert (ausgenommen sind die Hooks _modifier_,
|
||
_line_, _focus_, _info_ und _info_hashtable_)
|
||
. Aktion welche nach der Abarbeitung des Triggers ausgeführt werden soll (falls der Wert abweichend von `none` sein sollte).
|
||
|
||
[[trigger_hook_arguments]]
|
||
=== Hook Argumente
|
||
|
||
Die Argumente sind abhängig von dem genutzten Hook und werden durch
|
||
ein Semikolon getrennt.
|
||
|
||
[width="100%",cols="2,6,7,2",options="header"]
|
||
|===
|
||
| Hook | Argumente | Beispiele | Dokumentation (API)
|
||
|
||
| signal
|
||
| 1. Signalname (Priorität erlaubt) (erforderlich) +
|
||
2. Signalname (Priorität erlaubt) +
|
||
3. ...
|
||
| `+*,irc_in_privmsg+` +
|
||
`+*,irc_in_privmsg;*,irc_in_notice+` +
|
||
`+signal_sigwinch+`
|
||
| link:weechat_plugin_api.en.html#_hook_signal[hook_signal ^↗^^] +
|
||
(Englisch)
|
||
|
||
| hsignal
|
||
| 1. Signalname (Priorität erlaubt) (erforderlich) +
|
||
2. Signalname (Priorität erlaubt) +
|
||
3. ...
|
||
| `+nicklist_nick_added+`
|
||
| link:weechat_plugin_api.en.html#_hook_hsignal[hook_hsignal ^↗^^] +
|
||
(Englisch)
|
||
|
||
| modifier
|
||
| 1. modifier-Name (Priorität erlaubt) (erforderlich) +
|
||
2. modifier-Name (Priorität erlaubt) +
|
||
3. ...
|
||
| `+weechat_print+` +
|
||
`+5000\|input_text_display;5000\|history_add+`
|
||
| link:weechat_plugin_api.en.html#_hook_modifier[hook_modifier ^↗^^] +
|
||
(Englisch)
|
||
|
||
| line
|
||
| 1. Buffertyp +
|
||
2. Buffername +
|
||
3. Tags
|
||
| `+formatted+` +
|
||
`+free+` +
|
||
`+*;irc.libera.*+` +
|
||
`+*;irc.libera.#weechat+` +
|
||
`+formatted;irc.libera.#weechat;irc_notice+`
|
||
| link:weechat_plugin_api.en.html#_hook_line[hook_line ^↗^^] +
|
||
(Englisch)
|
||
|
||
| print
|
||
| 1. Buffername +
|
||
2. Tags +
|
||
3. Nachricht +
|
||
4. entferne Farben (0/1)
|
||
| `+irc.libera.*+` +
|
||
`+irc.libera.#weechat+` +
|
||
`+irc.libera.#weechat;irc_notice+` +
|
||
`+*;;;1+`
|
||
| link:weechat_plugin_api.en.html#_hook_print[hook_print ^↗^^] +
|
||
(Englisch)
|
||
|
||
| command
|
||
| 1. Befehlsname (Priorität erlaubt) (erforderlich) +
|
||
2. Beschreibung (evaluiert, siehe Befehl <<command_weechat_eval,/eval>>) +
|
||
3. Argumente (evaluiert, siehe Befehl <<command_weechat_eval,/eval>>) +
|
||
4. Beschreibung der Argumente (evaluiert, siehe Befehl <<command_weechat_eval,/eval>>) +
|
||
5. Vervollständigung (evaluiert, siehe Befehl <<command_weechat_eval,/eval>>)
|
||
| `+test+` +
|
||
`+5000\|test+` +
|
||
`+test;test command;arg1 arg2;arg1: description 1${\n}arg2: description 2+`
|
||
| link:weechat_plugin_api.en.html#_hook_command[hook_command ^↗^^] +
|
||
(Englisch)
|
||
|
||
| command_run
|
||
| 1. Befehl (Priorität erlaubt) (erforderlich) +
|
||
2. Befehl (Priorität erlaubt) +
|
||
3. ...
|
||
| `+/cmd arguments+`
|
||
| link:weechat_plugin_api.en.html#_hook_command_run[hook_command_run ^↗^^] +
|
||
(Englisch)
|
||
|
||
| timer
|
||
| 1. Intervall in Millisekunden (erforderlich) +
|
||
2. Abgleich der Sekunden (Standardwert: 0) +
|
||
3. max. Anzahl an Aufrufen (Standardwert: 0, was "unendlich" bedeutet)
|
||
| `+3600000+` +
|
||
`+60000;0;5+`
|
||
| link:weechat_plugin_api.en.html#_hook_timer[hook_timer ^↗^^] +
|
||
(Englisch)
|
||
|
||
| config
|
||
| 1. Name der Option (Priorität erlaubt) (erforderlich) +
|
||
2. Name der Option (Priorität erlaubt) +
|
||
3. ...
|
||
| `+weechat.look.*+`
|
||
| link:weechat_plugin_api.en.html#_hook_config[hook_config ^↗^^] +
|
||
(Englisch)
|
||
|
||
| focus
|
||
| 1. area Name (Priorität erlaubt) (erforderlich) +
|
||
2. area Name (Priorität erlaubt) +
|
||
3. ...
|
||
| `+buffer_nicklist+`
|
||
| link:weechat_plugin_api.en.html#_hook_focus[hook_focus ^↗^^] +
|
||
(Englisch)
|
||
|
||
| info
|
||
| 1. info name (Priorität erlaubt) (erforderlich) +
|
||
2. info name (Priorität erlaubt) +
|
||
3. ...
|
||
| `+my_info+`
|
||
| link:weechat_plugin_api.en.html#_hook_info[hook_info ^↗^^] +
|
||
(Englisch)
|
||
|
||
| info_hashtable
|
||
| 1. info name (Priorität erlaubt) (erforderlich) +
|
||
2. info name (Priorität erlaubt) +
|
||
3. ...
|
||
| `+my_info+`
|
||
| link:weechat_plugin_api.en.html#_hook_info_hashtable[hook_info_hashtable ^↗^^] +
|
||
(Englisch)
|
||
|===
|
||
|
||
[[trigger_conditions]]
|
||
=== Bedingungen
|
||
|
||
Bedingungen werden benötigt um eine Ausführung am Laufen zu halten oder um
|
||
diese zu stoppen.
|
||
|
||
Diese sind evaluiert und die Daten im Callback können verwendet werden
|
||
(siehe <<trigger_callback_data,Daten in Callbacks>> und Befehl
|
||
<<command_weechat_eval,/eval>>).
|
||
|
||
Beispiel: der standardmäßig genutzte Trigger _beep_ nutzt folgende Bedingungen,
|
||
um ausschließlich bei einer privaten Nachricht oder einem Highlight ausgeführt
|
||
zu werden:
|
||
|
||
----
|
||
${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})
|
||
----
|
||
|
||
[[trigger_regex]]
|
||
=== Reguläre Ausdrücke
|
||
|
||
Der reguläre Ausdruck wird verwendet, um Variablen in der Callback-Hashtabelle zu ändern.
|
||
|
||
Format ist eines der folgenden:
|
||
|
||
----
|
||
/string1/string2
|
||
/string1/string2/var
|
||
s/string1/string2
|
||
s/string1/string2/var
|
||
y/string1/string2
|
||
y/string1/string2/var
|
||
----
|
||
|
||
Felder:
|
||
|
||
* `s` oder `y`: ein Buchstabe mit dem Befehl; falls nicht vorhanden, ist der Standardbefehl `s`
|
||
und das erste Zeichen wird dann als Trennzeichen verwendet:
|
||
** `s`: Regex-Ersetzung: Die erste Zeichenfolge ist ein regulärer Ausdruck, die zweite Zeichenfolge
|
||
ist der Ersatz für jede passende Zeichenfolge
|
||
** `y`: Zeichenübersetzung: Die erste Zeichenfolge ist eine Reihe von Zeichen, die ersetzt werden
|
||
durch die Zeichen in der zweiten Zeichenfolge; einmal ausgewertet, muss jeder String haben
|
||
genau die gleiche Anzahl von UTF-8-Zeichen
|
||
* `/`: das Regex-Trennzeichen; das Zeichen "/" kann durch ein beliebiges Zeichen ersetzt werden
|
||
(ein oder mehrere identische Zeichen)
|
||
* `string1`: die erste Zeichenkette (Verwendung ist abhängig vom Befehl)
|
||
* `string2`: die zweite Zeichenkette (Verwendung ist abhängig vom Befehl)
|
||
* `var`: die zu aktualisierende Hashtable-Variable
|
||
|
||
Mehrere reguläre Ausdrücke können durch ein Leerzeichen getrennt werden, zum Beispiel:
|
||
|
||
----
|
||
s/regex1/replace1/var1 y/abcdef/ABDDEF/var2
|
||
----
|
||
|
||
[[trigger_regex_replace]]
|
||
==== Regex ersetzen
|
||
|
||
Für den Befehl `s` ist das Format: `s/regex/replace` oder `s/regex/replace/var`
|
||
(wobei _var_ eine Variable der Hashtabelle ist).
|
||
|
||
Da `s` der Standardbefehl ist, kann dieser weggelassen werden, also ist es auch `/regex/replace`
|
||
gültig (aber das erste Zeichen, das das Trennzeichen ist, darf kein Buchstabe sein).
|
||
|
||
Zutreffende Gruppen können in _replace_ verwendet werden:
|
||
|
||
* `+${re:0}+` nach `+${re:99}+`: `+${re:0}+` ist die ganze Trefferanzahl, `+${re:1}+` nach
|
||
`+${re:99}+` sind als Gruppen erfasst.
|
||
* `pass:[${re:+}]`: das letzte Treffer (mit der höchsten Zahl)
|
||
* `+${re:#}+`: index of last group captured
|
||
* `+${re:repl_index}+`: index of replacement being done (starts to 1)
|
||
* `+${hide:c,${re:N}}+`: Treffer "N" mit allen Zeichen die durch "c" ersetzt wurden
|
||
(Beispiele: `+${hide:*,${re:2}}+` ist die Gruppe #2, mit allen Zeichen die durch
|
||
`+*+` ersetzt wurden).
|
||
|
||
Beispiel: Verwenden Sie Fettschrift für Wörter zwischen `+*+`:
|
||
|
||
----
|
||
s/\*([^ ]+)\*/*${color:bold}${re:1}${color:-bold}*/
|
||
----
|
||
|
||
Beispiel: Der Standardtrigger _server_pass_ verwendet diesen regulären Ausdruck zum Ausblenden
|
||
des Passwortes in den Befehlen `/server` und `/connect` (Zeichen in Passwörtern werden ersetzt
|
||
durch `+*+`):
|
||
|
||
----
|
||
s==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}
|
||
----
|
||
|
||
[NOTE]
|
||
In diesem Beispiel ist das verwendete Trennzeichen "==", da ein "/" in dem
|
||
regulären Ausdruck vorhanden ist.
|
||
|
||
[[trigger_regex_translate_chars]]
|
||
==== Zeichen ersetzen
|
||
|
||
Für den Befehl „y“ ist das Format: „y/chars1/chars2“ oder „y/chars1/chars2/var“.
|
||
(wobei _var_ eine Variable der Hashtabelle ist).
|
||
|
||
Beispiel: ersetze "a", "b" und "c" durch Großbuchstaben:
|
||
|
||
----
|
||
y/abc/ABC/
|
||
----
|
||
|
||
Beispiel: rotiere Pfeile im Uhrzeigersinn:
|
||
|
||
----
|
||
y/←↑→↓/↑→↓←/
|
||
----
|
||
|
||
Beispiel: konvertiere alle Zeichen in Kleinbuchstaben:
|
||
|
||
----
|
||
y/${chars:upper}/${chars:lower}/
|
||
----
|
||
|
||
Beispiel: verschiebt jeden Buchstaben um eine Position, wobei die Groß- und Kleinschreibung erhalten bleibt: 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]]
|
||
==== Variablen
|
||
|
||
Wenn _var_ nicht in der Hashtabelle vorhanden ist, wird es automatisch mit einem
|
||
leerer Wert erstellt. Dies ermöglicht das Erstellen benutzerdefinierter temporärer Variablen.
|
||
|
||
Wenn _var_ nicht angegeben ist, wird die Standardvariable verwendet, sie hängt vom Hook-Typ ab:
|
||
|
||
[width="100%",cols="2,3,7",options="header"]
|
||
|===
|
||
| Hook | Standard-Variable | Update erlaubt ^(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 | | alle Variablen die in der hashtable empfangen wurden
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Alle Variablen können im Trigger upgedated werden, aber nur diese Variablen
|
||
haben einen Einfluss auf den Wert der vom Trigger zurückgegeben wird und dann von
|
||
WeeChat genutzt wird.
|
||
|
||
[[trigger_command]]
|
||
=== Befehl
|
||
|
||
Der Befehl wird erst ausgeführt nach dem mittels eines regulären Ausdruckes
|
||
der Text verändert wurde. Mehrere Befehle können durch Semikolon voneinander
|
||
getrennt werden.
|
||
|
||
Der Inhalt ist evaluiert (siehe Befehl <<command_weechat_eval,/eval>>) und der
|
||
durch einen regulären Ausdruck veränderte Text kann in dem Befehl verwendet
|
||
werden.
|
||
|
||
Beispiel: der standardmäßig genutzte Trigger _beep_ nutzt folgenden
|
||
Befehl um einen Ton (BEL) zu erzeugen.
|
||
|
||
----
|
||
/print -beep
|
||
----
|
||
|
||
[[trigger_callback_data]]
|
||
=== Daten in Callbacks
|
||
|
||
Daten, die dem Callback übergeben werden, werden in einer Hashtable (Pointer
|
||
und Strings) gesichert und können durch folgende Optionen genutzt werden:
|
||
|
||
* _conditions_
|
||
* _regex_
|
||
* _command_
|
||
|
||
Der Inhalt eines Hashtable ist abhängig von dem Hook-Typ.
|
||
|
||
Ein komfortabler Weg um die Daten eines Triggers zu sehen ist es den
|
||
Monitor-Buffer zu öffnen:
|
||
|
||
----
|
||
/trigger monitor
|
||
----
|
||
|
||
Alle Callbacks setzen folgende Variablen in das hashtable:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| tg_trigger_name | string | Name des Trigger.
|
||
| tg_hook_type | string | Hook-Typ: "signal", "command", etc.
|
||
|===
|
||
|
||
[[trigger_data_signal]]
|
||
==== Signale
|
||
|
||
Der Callback von "signal" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| tg_signal | string | Name des Signals.
|
||
| tg_signal_data | string | Daten die vom Signal gesendet wurde.
|
||
|===
|
||
|
||
Sollte das Signal eine IRC Nachricht beinhalten, wird die Nachricht analysiert
|
||
und die Daten in einer Hashtable gesichert:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| irc_server | pointer | Pointer auf IRC Server (Variable in hdata vom Typ "irc_server" kann verwendet werden, wie `+${irc_server.name}+`).
|
||
| irc_channel | pointer | Pointer auf IRC Channel (Variable in hdata vom Typ "irc_channel" kann verwendet werden, wie `+${irc_channel.name}+`).
|
||
| server | string | Name des Server (Beispiel: "libera").
|
||
| tags | string | Tags in Nachricht (findet selten Verwendung).
|
||
| message_without_tags | string | Nachricht ohne Tags.
|
||
| nick | string | Nick. ^(1)^
|
||
| host | string | Hostname.
|
||
| command | string | IRC Befehl (Beispiel: "PRIVMSG", "NOTICE", ...).
|
||
| channel | string | IRC Channel.
|
||
| arguments | string | Argumente des Befehls (Beinhaltet Wert von _channel_).
|
||
| text | string | Text (zum Beipiel eine Nachricht eines Users).
|
||
| pos_command | string | Index von _command_ innerhalb einer Nachricht ("-1" falls _command_ nicht gefunden wird).
|
||
| pos_arguments | string | Index von_arguments_ innerhalb einer Nachricht ("-1" falls _arguments_ nicht gefunden wird).
|
||
| pos_channel | string | Index von _channel_ innerhalb einer Nachricht ("-1" falls _channel_ nicht gefunden wird).
|
||
| pos_text | string | Index von _text_ innerhalb einer Nachricht ("-1" falls _text_ nicht gefunden wird).
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Der Nick, ist der Absender der Nachricht. +
|
||
Der eigene Nick für den Server ist `${irc_server.nick}`.
|
||
|
||
Sofern es sich bei den Daten um einen Pointer handelt, kann die Variable `+tg_signal_data+`
|
||
wie im folgenden Beispiel genutzt werden um den Inhalt von hdata zu lesen (im Beispiel
|
||
wird der Pointer eines Buffer verwendet):
|
||
|
||
----
|
||
${buffer[${tg_signal_data}].full_name}
|
||
----
|
||
|
||
[[trigger_data_hsignal]]
|
||
==== Hsignal
|
||
|
||
Der Callback von "hsignal" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| tg_signal | string | Name des Signals.
|
||
|===
|
||
|
||
Das Hashtable enthält alle Schlüssel/Werte (Typ: string/string).
|
||
|
||
[[trigger_data_modifier]]
|
||
==== Modifier
|
||
|
||
Der Callback von "modifier" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| tg_modifier | string | Name des modifier.
|
||
| tg_modifier_data | string | Daten die der modifier übermittelt.
|
||
| tg_string | string | Zeichenkette die verändert werden kann.
|
||
| tg_string_nocolor | string | Zeichenkette ohne Farbcodes.
|
||
|===
|
||
|
||
Für den modifier _weechat_print_ gilt, Tags werden hinzugefügt, sofern sie
|
||
vorhanden sind (siehe <<trigger_data_print,hook print>> weiter unten), und nachfolgende Variablen:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| buffer | pointer | Buffer in welchem die Nachricht geschrieben werden soll.
|
||
| tg_plugin | string | Erweiterung des entsprechenden Buffers.
|
||
| tg_buffer | string | vollständiger Name des Buffers.
|
||
| tg_prefix | string | Präfix der Nachricht.
|
||
| tg_prefix_nocolor | string | Präfix ohne Farbcodes.
|
||
| tg_message | string | Nachricht die ausgegeben werden soll.
|
||
| tg_message_nocolor | string | Nachricht die ausgegeben werden soll, ohne Farbcodes.
|
||
|===
|
||
|
||
Sollte das Signal eine IRC Nachricht beinhalten, wird die Nachricht analysiert
|
||
und die Daten in einer Hashtable gesichert (siehe <<trigger_data_signal,hook signal>>).
|
||
|
||
[[trigger_data_line]]
|
||
==== Line
|
||
|
||
Der Callback von "line" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| buffer | pointer | Buffer.
|
||
| buffer_name | string | Buffername.
|
||
| buffer_type | string | Buffertyp ("formatted" oder "free").
|
||
| y | string | Zeilennummer bei einem Buffer mit freier Einteilung (≥ 0), -1 für einen Buffer mit formatiertem Inhalt.
|
||
| date | string | Datum der Zeile (Zeitstempel).
|
||
| date_usec | string | Mikrosekunden des Zeilendatums.
|
||
| date_printed | string | Datum wann die Zeile dargestellt wurde (Zeitstempel).
|
||
| date_usec_printed | string | Mikrosekunden des Datums, an dem die Zeile angezeigt wurde.
|
||
| str_time | string | Datum für Darstellung. Kann Farbkodierungen erhalten.
|
||
| tags | string | Tags einer Nachricht (Komma wird automatisch zu Beginn und Ende den Tags hinzugefügt).
|
||
| displayed | string | "1" wenn Zeile dargestellt wird, "0" wenn Zeile gefiltert wird.
|
||
| notify_level | string | "-1" = keine Benachrichtigung, "0" = niedrige Stufe, "1" = Nachricht, "2" = private Nachricht, "3" = Highlight
|
||
| highlight | string | "1" wenn Highlight, andernfalls "0".
|
||
| prefix | string | Prefix.
|
||
| tg_prefix_nocolor | string | Prefix, ohne Farbkodierung.
|
||
| message | string | Nachricht.
|
||
| tg_message_nocolor | string | Nachricht, ohne Farbkodierung.
|
||
|===
|
||
|
||
Variablen die mittels Tags in der Nachricht gesetzt werden:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| tg_tags_count | string | Anzahl an Tags der Nachricht.
|
||
| tg_tag_nick | string | Nick (extrahiert aus Tag "nick_xxx").
|
||
| tg_tag_prefix_nick | string | Nickfarbe für Präfix (extrahier aus Tag "prefix_nick_ccc").
|
||
| tg_tag_host | string | Username und Host, Format: username@host (extrahiert aus Tag "host_xxx").
|
||
| tg_tag_notify | string | Benachrichtigungsstufe (_none_, _message_, _private_, _highlight_).
|
||
| tg_tag_irc_xxx | string | Tag einer IRC Nachricht (Schlüssel "xxx"). ^(1)^
|
||
| tg_notify | string | Benachrichtigungsstufe, falls von _none_ abweichend.
|
||
| tg_msg_pv | string | "1" für eine private Nachricht, andernfalls "0".
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Kommas werden durch Semikolon ersetzt in IRC Tag (Schlüssel und Wert).
|
||
|
||
[[trigger_data_print]]
|
||
==== Print
|
||
|
||
Der Callback von "print" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| buffer | pointer | Buffer.
|
||
| tg_date | string | Datum/Uhrzeit der Nachricht (Format: `%FT%T.%f`, siehe link:weechat_plugin_api.en.html#_util_strftimeval[WeeChat plugin API reference / util_strftimeval ^↗^^]).
|
||
| tg_displayed | string | "1" wenn Nachricht dargestellt wird, "0" falls Nachricht gefiltert wird.
|
||
| tg_highlight | string | "1" falls es sich um eine Highlight-Nachricht handelt, andernfalls "0".
|
||
| tg_prefix | string | Präfix.
|
||
| tg_prefix_nocolor | string | Präfix ohne Farbcodes.
|
||
| tg_message | string | Nachricht.
|
||
| tg_message_nocolor | string | Nachricht ohne Farbcodes.
|
||
|===
|
||
|
||
Variablen die mittels Tags in der Nachricht gesetzt werden:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| tg_tags | string | Tags einer Nachricht (Komma wird automatisch zu Beginn und Ende den Tags hinzugefügt).
|
||
| tg_tags_count | string | Anzahl an Tags der Nachricht.
|
||
| tg_tag_nick | string | Nick (extrahiert aus Tag "nick_xxx").
|
||
| tg_tag_prefix_nick | string | Nickfarbe für Präfix (extrahier aus Tag "prefix_nick_ccc").
|
||
| tg_tag_host | string | Username und Host, Format: username@host (extrahiert aus Tag "host_xxx").
|
||
| tg_tag_notify | string | Benachrichtigungsstufe (_none_, _message_, _private_, _highlight_).
|
||
| tg_tag_irc_xxx | string | Tag einer IRC Nachricht (Schlüssel "xxx"). ^(1)^
|
||
| tg_notify | string | Benachrichtigungsstufe, falls von _none_ abweichend.
|
||
| tg_msg_pv | string | "1" für eine private Nachricht, andernfalls "0".
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Kommas werden durch Semikolon ersetzt in IRC Tag (Schlüssel und Wert).
|
||
|
||
[[trigger_data_command]]
|
||
==== Command
|
||
|
||
Der Callback von "command" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| buffer | pointer | Buffer.
|
||
| tg_argc | string | Die Anzahl von Argumenten (der Befehl wird mitgezählt).
|
||
| tg_argvN | string | Argument #N (`+tg_argv0+` ist der Befehl selber, die weiteren sind Argumente).
|
||
| tg_argv_eolN | string | von Argument #N bis zum Ende der Argumente (`+tg_argv_eol0+` enthält den eigentlichen Befehl).
|
||
| tg_shell_argc | string | Die Anzahl der Argumente mit einer Aufteilung wie bei der Shell (der Befehl selbst zählt als eins).
|
||
| tg_shell_argvN | string | #N Argumente mit einer Aufteilung wie bei der Shell (`+tg_shell_argv0+` ist der eigentliche Befehl, alle weiteren sind die Argumente, des Befehls).
|
||
|===
|
||
|
||
[[trigger_data_command_run]]
|
||
==== Command_run
|
||
|
||
Der Callback von "command_run" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| buffer | pointer | Buffer.
|
||
| tg_command | string | auszuführender Befehl.
|
||
|===
|
||
|
||
[[trigger_data_timer]]
|
||
==== Timer
|
||
|
||
Der Callback von "timer" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| tg_remaining_calls | string | Anzahl der noch ausstehenden Aufrufe.
|
||
| tg_date | string | aktuelles Datum und Uhrzeit (Format: `%FT%T.%f`, siehe link:weechat_plugin_api.en.html#_util_strftimeval[WeeChat plugin API reference / util_strftimeval ^↗^^]).
|
||
|===
|
||
|
||
[[trigger_data_config]]
|
||
==== Config
|
||
|
||
Der Callback von "config" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| tg_option | string | Option.
|
||
| tg_value | string | Wert.
|
||
|===
|
||
|
||
[[trigger_data_focus]]
|
||
==== Focus
|
||
|
||
Der Callback von "focus" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| window | pointer | Fenster.
|
||
| buffer | pointer | Buffer.
|
||
|===
|
||
|
||
Das Hashtable enthält alle Schlüssel/Werte (Typ: string/string).
|
||
|
||
[[trigger_data_info]]
|
||
==== Info
|
||
|
||
Der Callback von "info" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| tg_info_name | string | Name der Information.
|
||
| tg_arguments | string | Argumente.
|
||
| tg_info | string | ein leerer String (die Information die zurückgegeben werden soll).
|
||
|===
|
||
|
||
[[trigger_data_info_hashtable]]
|
||
==== Info_hashtable
|
||
|
||
Der Callback von "info_hashtable" legt folgende Variablen in der Hashtable an:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Variable | Typ | Beschreibung
|
||
| tg_info_name | string | Name der Information.
|
||
|===
|
||
|
||
Das Hashtable enthält alle Schlüssel/Werte (Typ: string/string).
|
||
|
||
[[trigger_examples]]
|
||
=== Beispiele
|
||
|
||
[[trigger_example_url_color]]
|
||
==== URLs werden eingefärbt
|
||
|
||
Zeigt URLs in grün an:
|
||
|
||
----
|
||
/trigger add url_color modifier weechat_print "${tg_notify}" "==[a-zA-Z0-9_]+://[^ ]+==${color:green}${re:0}${color:reset}=="
|
||
----
|
||
|
||
[NOTE]
|
||
Dies ist ein einfacher regulärer Ausdruck der möglicherweise nicht alle URLs
|
||
erkennt, dafür ist er aber wesentlich schneller als ein komplexer regulärer Ausdruck.
|
||
|
||
[[trigger_example_auto_pong]]
|
||
==== automatisierte "pong" Antwort, bei einer "ping" Anfrage
|
||
|
||
Wenn jemand eine "ping" Nachricht in einen privaten Buffer sendet, verschickt dieser Trigger
|
||
automatisch eine `pong` Antwort:
|
||
|
||
----
|
||
/trigger add pong print "" "${type} == private && ${tg_message} == ping" "" "pong"
|
||
----
|
||
|
||
[[trigger_example_responsive_layout]]
|
||
==== reaktives layout
|
||
|
||
Der nachfolgende Trigger kann verwendet werden um Anpassungen vorzunehmen, falls
|
||
sich die Größe des Terminalfensters verändert:
|
||
|
||
----
|
||
/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"
|
||
----
|
||
|
||
Der Trigger nutzt das Signal "signal_sigwinch", welches durch WeeChat verschickt wird
|
||
sobald das Signal SIGWINCH vom Terminal empfangen wird.
|
||
|
||
Die Bedingung `+${info:term_width}+` überprüft die Breite des Terminal (zusätzlich kann
|
||
auch `+${info:term_height}+` genutzt werden).
|
||
|
||
In obigem Beispiel wird die Nicklist versteckt, sobald das Terminal verkleinert wird.
|
||
Die Benutzerliste wird wieder angezeigt, sobald die Breite des Terminals größer oder
|
||
gleich 100 Zeichen ist.
|
||
|
||
[[trigger_example_config_save]]
|
||
==== automatisches speichern der Konfiguration
|
||
|
||
Die Konfigurationsdateien (`+*.conf+`), können automatisch jede Stunde
|
||
gespeichert werden:
|
||
|
||
----
|
||
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
|
||
----
|
||
|
||
Argumente für den Hook-Timer sind:
|
||
|
||
* _3600000_: 3600 * 1000 Millisekunden, der Callback wird jede Stunde ausgeführt
|
||
* _0_: Abgleich der Sekunden (es findet keine Justierung statt)
|
||
* _0_: maximale Anzahl an aufrufen (0 = unbegrenzt)
|
||
|
||
Der Befehl `/mute /save` sorgt dafür, dass die Konfiguration ohne kommentarlos
|
||
gespeichert wird (es findet keine Ausgabe im Core-Buffer statt).
|
||
|
||
[[trigger_commands]]
|
||
=== Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=trigger_commands]
|
||
|
||
[[trigger_options]]
|
||
=== Optionen
|
||
|
||
Sektionen in Datei _trigger.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set trigger.look.* | Erscheinungsbild.
|
||
| color | /set trigger.color.* | Farben.
|
||
| trigger | <<command_trigger_trigger,/trigger add>> +
|
||
<<command_trigger_trigger,/trigger set>> +
|
||
/set trigger.trigger.* | Trigger Optionen.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=trigger_options]
|
||
|
||
[[extending_weechat]]
|
||
== WeeChat erweitern
|
||
|
||
WeeChat ist modular aufgebaut und kann durch Erweiterungen und Skripten in der
|
||
Funktionalität erweitert werden.
|
||
|
||
Es ist wichtig zwischen _Erweiterung_ und _Skript_ zu unterscheiden. Eine Erweiterung
|
||
ist eine Binärdatei die kompiliert wurde und mit dem Befehl `/plugin` geladen wird.
|
||
Dem gegenüber ist ein _Skript_ eine Textdatei die durch eine Erweiterung z.B. _python_
|
||
mittels dem Befehl `/python` geladen wird.
|
||
|
||
[[plugins]]
|
||
=== Erweiterungen
|
||
|
||
Eine WeeChat Erweiterung ist eine dynamische Bibliothek (library), die in C geschrieben
|
||
und kompiliert ist. Unter GNU/Linux besitzt eine Erweiterung als Dateiendung ".so", unter
|
||
Windows ".dll".
|
||
|
||
Erweiterungen die gefunden werden, werden beim Start von WeeChat automatisch geladen.
|
||
Natürlich ist es möglich während einer laufenden Sitzung von WeeChat Erweiterungen
|
||
nachträglich zu laden oder zu entfernen.
|
||
|
||
Mit dem Befehl `/plugin` kann eine Erweiterung geladen bzw. entfernt werden. Auch können
|
||
mit dem Befehl alle installierten Erweiterungen aufgelistet werden.
|
||
|
||
Sobald eine Erweiterung beendet wird, entfernt WeeChat:
|
||
|
||
* Buffer
|
||
* Konfigurationsoptionen (Optionen die in Datein geschrieben wurden)
|
||
* alle Hooks: commands, modifiers, process, etc.
|
||
* Infos und Infolisten
|
||
* hdata
|
||
* Bar-Items.
|
||
|
||
Beispiele wie man Erweiterungen lädt, entfernt und auflistet:
|
||
|
||
----
|
||
/plugin load irc
|
||
/plugin unload irc
|
||
/plugin list
|
||
----
|
||
|
||
Standarderweiterungen:
|
||
|
||
[width="100%",cols="1,5",options="header"]
|
||
|===
|
||
| Erweiterung | Beschreibung
|
||
| alias | definiert Alias für Befehle.
|
||
| buflist | Bar-Item mit der Liste aller Buffern.
|
||
| charset | Zeichensatz (de)-kodierung in Buffern.
|
||
| exec | ausführen von externen Befehlen aus WeeChat heraus.
|
||
| fifo | FIFO Pipe die zur Fernsteuerung von WeeChat genutzt werden kann.
|
||
| fset | Optionen von WeeChat und Erweiterungen schnell anpassen.
|
||
| irc | IRC Chat-Protokoll.
|
||
| logger | erstellt Protokolldateien von Buffern.
|
||
| relay | Daten via Netzwerk übermitteln.
|
||
| script | Skripten-Manager.
|
||
| python | Python-Skript API.
|
||
| perl | Perl-Skript API.
|
||
| ruby | Ruby-Skript API.
|
||
| lua | Lua-Skript API.
|
||
| tcl | Tcl-Skript API.
|
||
| guile | Guile(scheme)-Skript API.
|
||
| javascript | JavaScript-Skript API.
|
||
| php | PHP-Skript API.
|
||
| spell | Rechtschreibprüfung für Befehlszeile.
|
||
| trigger | Veränderung von Text und Ausführen von Befehlen bei einem Ereignis, welche durch WeeChat oder eine Erweiterung ausgelöst werden.
|
||
| typing | Benutzer anzeigen, die gerade Nachrichten schreiben.
|
||
| xfer | Datentransfer und Direktchat.
|
||
|===
|
||
|
||
Um mehr über Erweiterungen- und Skriptenprogrammierung (mittels API) zu erfahren,
|
||
sollten Sie die link:weechat_plugin_api.en.html[Anleitung für API Erweiterung ^↗^^] (Englisch) oder
|
||
link:weechat_scripting.de.html[WeeChat scripting guide ^↗^^] lesen.
|
||
|
||
[[scripts]]
|
||
=== Skripten
|
||
|
||
WeeChat unterstützt Erweiterungen für insgesamt acht Skriptsprachen:
|
||
Python, Perl, Ruby, Lua, Tcl, Guile (scheme), JavaScript und PHP.
|
||
Mit jeder dieser Erweiterungen können Skripten geladen, ausgeführt und entfernt werden.
|
||
|
||
Sollten wir Ihr Interesse geweckt haben selber Skripten für WeeChat zu programmieren, dann lesen Sie
|
||
bitte die link:weechat_scripting.de.html[WeeChat scripting Guide ^↗^^].
|
||
|
||
[[script_manager]]
|
||
==== Skriptmanager
|
||
|
||
Der Skriptmanager (Befehl <<command_script_script,/script>>) wird benutzt um
|
||
Skripte jeder Sprache zu starten/beenden, sowie Skripte aus dem WeeChat
|
||
Skriptrepositorium zu installieren/entfernen, diese sind aufgelistet auf
|
||
https://weechat.org/scripts/[this page ^↗^^].
|
||
|
||
Aus Datenschutzgründen ist das Herunterladen von Skripten standardmäßig deaktiviert. +
|
||
Um es zu aktivieren, geben Sie diesen Befehl ein:
|
||
|
||
----
|
||
/script enable
|
||
----
|
||
|
||
Dann können Sie die Liste der Skripte herunterladen und in einem separaten Buffer,
|
||
mit dem Befehl <<command_script_script,/script>>, anzeigen lassen:
|
||
|
||
[subs="quotes,attributes"]
|
||
:x: *
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.weechat│322/322 Skripten (Filter: {x}) | Sortierung: i,p,n | Alt+Taste/Eingabe: i=installieren, r=entfernen,>>│
|
||
│2.scripts│{x} autosort.py 3.10 2023-12-31 | Behält die Gruppierung der Buffer nach S│
|
||
│ │{x} highmon.pl 2.7 2020-06-21 | Startet einen Highlight Monitor Buffer. │
|
||
│ │{x}ia r grep.py 0.8.6 0.8.6 2022-11-11 | Sucht nach regulären Ausdrücken in Buffe│
|
||
│ │{x} colorize_nicks.py 32 2023-10-30 | Im Textbereich oder der Eingabezeile wir│
|
||
│ │##{x}ia r go.py 3.0.1 3.0.1 2024-05-30 | Schneller Wechsel zu Buffern. ##│
|
||
│ │ aesthetic.py 1.0.6 2020-10-25 | Macht Nachrichten Ä S T H E T I S C H an│
|
||
│ │ aformat.py 0.2 2018-06-21 | Alternative Textformatierung, nützlich f│
|
||
│ │ alternatetz.py 0.4 2022-01-25 | Fügt der Bar-Item eine zusätzliche Zeitz│
|
||
│ │ amarok2.pl 0.7 2012-05-08 | Fernbedienung für Amarok2 und zum anzeig│
|
||
│ │ amqp_notify.rb 0.1 2011-01-12 | Schickt private Nachrichten und Highligh│
|
||
│ │ announce_url_title.py 19 2021-06-05 | Schickt einen URL Titel an einen User od│
|
||
│ │ anotify.py 1.0.2 2020-05-16 | Benachrichtigung von privaten Nachrichte│
|
||
│ │ anti_password.py 1.2.1 2021-03-13 | Verhindert, dass ein Kennwort versehentl│
|
||
│ │ apply_corrections.py 1.3 2018-06-21 | Zeigt den korrigierten Text an wenn der │
|
||
│ │ arespond.py 0.1.2 2022-01-25 | Anfragen werden automatisch beantwortet.│
|
||
│ │ atcomplete.pl 0.001 2016-10-29 | Fügt "@" Präfix bei der Nick Tab-Vervoll│
|
||
│ │ audacious.pl 0.3 2009-05-03 | Zeigt an welche Musik gerade von Audacio│
|
||
│ │ auth.rb 0.3 2014-05-30 | Automatische Authentifizierung mittels S│
|
||
│ │ auto_away.py 0.4 2018-11-11 | Ein einfaches Abwesenheit-Skript. │
|
||
│ │ autoauth.py 1.3 2021-11-07 | Erlaubt automatische Authentisierung, we│
|
||
│ │ autobump.py 0.1.0 2019-06-14 | Springt zu Buffern nach deren Aktivität.│
|
||
│ │ autoconf.py 0.4 2021-05-11 | Automatisches speichern/laden von Option│
|
||
│ │ autoconnect.py 0.3.3 2019-10-06 | Öffnet erneut die Server und Channel die│
|
||
│ │ autojoin_on_invite.py 0.9 2022-10-25 | Betritt automatisch einen Kanal wenn man│
|
||
│ │ automarkbuffer.py 1.0 2015-03-31 | Buffer werden als gelesen markiert falls│
|
||
│ │ automerge.py 0.2 2018-03-03 | Automatische Zusammenführung neuer Buffe│
|
||
│ │[12:55] [2] [script] 2:scripts │
|
||
│ │█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[script_commands]]
|
||
===== Skript Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=script_commands]
|
||
|
||
[[script_options]]
|
||
===== Script Optionen
|
||
|
||
Sektionen in Datei _script.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set script.look.* | Erscheinungsbild.
|
||
| color | /set script.color.* | Farben.
|
||
| scripts | /set script.scripts.* | Optionen für den Download von Skripten.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=script_options]
|
||
|
||
[[scripting_plugins]]
|
||
==== Skripterweiterung
|
||
|
||
[[python_commands]]
|
||
===== Python Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=python_commands]
|
||
|
||
[[perl_commands]]
|
||
===== Perl Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=perl_commands]
|
||
|
||
[[ruby_commands]]
|
||
===== Ruby Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=ruby_commands]
|
||
|
||
[[lua_commands]]
|
||
===== Lua Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=lua_commands]
|
||
|
||
[[tcl_commands]]
|
||
===== Tcl Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=tcl_commands]
|
||
|
||
[[guile_commands]]
|
||
===== Guile Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=guile_commands]
|
||
|
||
[[php_commands]]
|
||
===== PHP Befehle
|
||
|
||
include::{autogendir}/autogen_user_commands.de.adoc[tag=php_commands]
|
||
|
||
[[python_options]]
|
||
===== Python Optionen
|
||
|
||
Sektionen in Datei _python.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set python.look.* | Erscheinungsbild.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=python_options]
|
||
|
||
[[perl_options]]
|
||
===== Perl Optionen
|
||
|
||
Sektionen in Datei _perl.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set perl.look.* | Erscheinungsbild.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=perl_options]
|
||
|
||
[[ruby_options]]
|
||
===== Ruby Optionen
|
||
|
||
Sektionen in Datei _ruby.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set ruby.look.* | Erscheinungsbild.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=ruby_options]
|
||
|
||
[[lua_options]]
|
||
===== Lua Optionen
|
||
|
||
Sektionen in Datei _lua.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set lua.look.* | Erscheinungsbild.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=lua_options]
|
||
|
||
[[tcl_options]]
|
||
===== Tcl Optionen
|
||
|
||
Sektionen in Datei _tcl.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set tcl.look.* | Erscheinungsbild.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=tcl_options]
|
||
|
||
[[guile_options]]
|
||
===== Guile Optionen
|
||
|
||
Sektionen in Datei _guile.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set guile.look.* | Erscheinungsbild.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=guile_options]
|
||
|
||
[[php_options]]
|
||
===== PHP Optionen
|
||
|
||
Sektionen in Datei _php.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sektion | Steuerbefehl | Beschreibung
|
||
| look | /set php.look.* | Erscheinungsbild.
|
||
|===
|
||
|
||
Optionen:
|
||
|
||
include::{autogendir}/autogen_user_options.de.adoc[tag=php_options]
|
||
|
||
[[support]]
|
||
== Unterstützung
|
||
|
||
Bevor man nach Unterstützung fragt sollte man sicherstellen, dass man sowohl die
|
||
Dokumentation als auch die FAQ gelesen hat, welche mit WeeChat bereitgestellt wird.
|
||
|
||
Unterstützung im IRC findet man auf dem Server _irc.libera.chat_:
|
||
|
||
* offizielle Kanäle (Entwickler vertreten):
|
||
** _#weechat_ (englisch)
|
||
** _#weechat-fr_ (französisch)
|
||
* keine offiziellen Kanäle:
|
||
** _#weechat-de_ (deutsch)
|
||
** _#weechat-fi_ (finnisch)
|
||
|
||
Weitere Möglichkeiten der Unterstützung finden Sie unter
|
||
https://weechat.org/about/support/[this page ^↗^^].
|