# WeeChat Benutzerhandbuch

Sébastien Helleu
flashcode@flashtux.org
version 3.5

Übersetzer:

- Nils Görs <weechatter@arcor.de>, 2010-2022

Diese Anleitung beschreibt den WeeChat Chat Client und ist Teil von WeeChat.

Die aktuelle Version dieser Anleitung finden Sie auf: https://weechat.org/doc

## 1. Einleitung

WeeChat (Wee Enhanced Environment for Chat) ist ein freier, schneller und schlanker Chat-Client der für unterschiedliche Betriebssysteme entwickelt wird.

### 1.1. Funktionen

wesentliche Merkmale:

- Unterstützung verschiedener Protokolle (in der Hauptsache das IRC-Protokoll)

- mehrere Server Verbindungen sind möglich (mittels SSL, 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 1459, 2810, 2811, 2812 und 2813

- IRC proxy und relay für remote Schnittstellen

- Betriebssystemunabhängig (GNU/Linux, *BSD, macOS, Windows und weitere)

- 100% GPL, freie Software

Die WeeChat Homepage findet man unter: https://weechat.org/

### 1.2. 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 Abhängigkeiten).

## 2. Installation

### 2.1. 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

- 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`

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, wie man Pakete installiert.

### 2.2. Quellpakete

WeeChat kann mittels CMake oder autotools kompiliert werden (CMake sollte dabei die bevorzugte Methode sein).

| Unter macOS kann Homebrew verwendet werden: `brew install weechat` (für Hilfe: `brew info weechat`).

#### 2.2.1. Abhängigkeiten

Die folgende Tabelle zeigt die Liste der Pakete, die zum Kompilieren von WeeChat erforderlich sind:

Paket (1) | Version | Funktion
--- | --- | ---
C compiler (gcc / clang) |  | zum Erstellen der Binärdatei.
cmake | ≥ 3.0 | zum kompilieren (autotools ist möglich. CMake wird aber empfohlen).
pkg-config |  | entdeckt installierte Bibliotheken.
libncursesw5-dev (2) |  | Ncurses Oberfläche.
libcurl4-gnutls-dev |  | URL Transfer.
libgcrypt20-dev |  | Geschützte Daten, IRC SASL Authentifikation.
libgnutls28-dev | ≥ 2.2.0 (3) | SSL Verbindung zu einem IRC Server, Unterstützung von SSL in der Relay-Erweiterung, IRC SASL Authentifikation (ECDSA-NIST256P-CHALLENGE).
zlib1g-dev |  | Kompression von Nachrichten (WeeChat → client) mit zlib in relay Erweitertungen (weechat Protokoll), Skript-Erweiterung übertragen werden.
libzstd-dev |  | Kompression von Nachrichten (WeeChat → client) mit Zstandard in relay Erweiterung (weechat Protokoll).

(1) Der Name stammt von der Debian GNU/Linux Bullseye-Distribution, Version und Name können in anderen Distributionen anders lauten.
(2) Es wird empfohlen WeeChat mit libncursesw5-dev (das w ist entscheidend) zu kompilieren. Eine Kompilierung kann auch mit libncurses5-dev erfolgen, aber dies wird NICHT empfohlen: Es können Darstellungsfehler mit breiten Zeichen auftreten.
(3) 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:

Paket (1) | Version | Funktion
--- | --- | ---
C++ compiler (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 SSL Verbindungen.
libaspell-dev / libenchant-dev |  | Spell Erweiterung.
python3-dev (2) |  | Python Erweiterung.
libperl-dev |  | Perl Erweiterung.
ruby2.7, ruby2.7-dev | ≥ 1.9.1 | Ruby Erweiterung.
liblua5.4-dev |  | Lua Erweiterung.
tcl-dev | ≥ 8.5 | Tcl Erweiterung.
guile-2.2-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.

| (1) Der Name stammt von der Debian GNU/Linux Bullseye-Distribution, Version und Name können in anderen Distributionen anders lauten. (2) standardmäßig wird Python 3.x verwendet. Wird die Option `ENABLE_PYTHON2` aktiviert (siehe unten), sollte die Version 2.7 von Python genutzt werden.

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:

    # apt-get build-dep weechat

#### 2.2.2. Kompilieren mit CMake

- Installation in das Systemverzeichnis (benötigt root Privilegien):

    $ mkdir build
    $ cd build
    $ cmake ..
    $ make
    $ sudo make install

- Installation in ein benutzerdefiniertes Verzeichnis (zum Beispiel ins Heimatverzeichnis):

    $ 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 von häufig verwendeten Optionen:

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 Alias Erweiterung.
`ENABLE_BUFLIST` | `ON`, `OFF` | `ON` | kompiliert Buflist Erweiterung.
`ENABLE_CHARSET` | `ON`, `OFF` | `ON` | kompiliert Charset Erweiterung.
`ENABLE_MAN` | `ON`, `OFF` | `OFF` | erstellt die man page.
`ENABLE_DOC` | `ON`, `OFF` | `OFF` | erstellt die HTML Dokumentation.
`ENABLE_ENCHANT` | `ON`, `OFF` | `OFF` | kompiliert Spell Erweiterung mittels Enchant.
`ENABLE_EXEC` | `ON`, `OFF` | `ON` | kompiliert Exec Erweiterung.
`ENABLE_FIFO` | `ON`, `OFF` | `ON` | kompiliert Fifo Erweiterung.
`ENABLE_FSET` | `ON`, `OFF` | `ON` | kompiliert Fset Erweiterung.
`ENABLE_GUILE` | `ON`, `OFF` | `ON` | kompiliert Guile Erweiterung (Scheme).
`ENABLE_IRC` | `ON`, `OFF` | `ON` | kompiliert IRC Erweiterung.
`ENABLE_JAVASCRIPT` | `ON`, `OFF` | `OFF` | kompiliert JavaScript Erweiterung.
`ENABLE_LARGEFILE` | `ON`, `OFF` | `ON` | Unterstützung großer Dateien.
`ENABLE_LOGGER` | `ON`, `OFF` | `ON` | kompiliert Logger Erweiterung.
`ENABLE_LUA` | `ON`, `OFF` | `ON` | kompiliert 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 Perl Erweiterung.
`ENABLE_PHP` | `ON`, `OFF` | `ON` | kompiliert PHP Erweiterung.
`ENABLE_PYTHON` | `ON`, `OFF` | `ON` | kompiliert Python Erweiterung.
`ENABLE_PYTHON2` | `ON`, `OFF` | `OFF` | kompiliert Python Erweiterung nutzt Python 2 anstelle von Python 3.
`ENABLE_RELAY` | `ON`, `OFF` | `ON` | kompiliert Relay Erweiterung.
`ENABLE_RUBY` | `ON`, `OFF` | `ON` | kompiliert Ruby Erweiterung.
`ENABLE_SCRIPT` | `ON`, `OFF` | `ON` | kompiliert Script Erweiterung.
`ENABLE_SCRIPTS` | `ON`, `OFF` | `ON` | kompiliert Skripten-Erweiterungen (Python, Perl, Ruby, Lua, Tcl, Guile, JavaScript, PHP).
`ENABLE_SPELL` | `ON`, `OFF` | `ON` | kompiliert Spell Erweiterung.
`ENABLE_TCL` | `ON`, `OFF` | `ON` | kompiliert Tcl Erweiterung.
`ENABLE_TRIGGER` | `ON`, `OFF` | `ON` | kompiliert Trigger Erweiterung.
`ENABLE_TYPING` | `ON`, `OFF` | `ON` | kompiliert Typing Erweiterung.
`ENABLE_XFER` | `ON`, `OFF` | `ON` | kompiliert Xfer Erweiterung.
`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:

    $ cmake -LA

oder mittels der Curses-Oberfläche:

    $ ccmake ..

#### 2.2.3. Kompilieren mit autotools

| Ausschließlich das Kompilieren mittels CMake wird offiziell unterstützt. Autotools sollte nur verwendet werden, falls man keine Möglichkeit hat CMake zu nutzen. Für die Erstellung mittels autotools werden zusätzliche Pakete benötigt und es ist zeitintensiver als CMake.

- Installation in das Systemverzeichnis (benötigt root Privilegien):

    $ ./autogen.sh
    $ mkdir build
    $ cd build
    $ ../configure
    $ make
    $ sudo make install

- Installation in ein benutzerdefiniertes Verzeichnis (zum Beispiel ins Heimatverzeichnis):

    $ ./autogen.sh
    $ mkdir build
    $ cd build
    $ ../configure --prefix=/Pfad/zum/Verzeichnis
    $ make
    $ make install

Die Optionen können auch für das configure Skript verwendet und mittels folgendem Befehl angezeigt werden:

    $ ./configure --help

#### 2.2.4. Tests ausführen

Folgende Pakete werden benötigt um Tests zu kompilieren:

- libcpputest-dev

- C++ compiler

Tests muss aktiviert werden wenn WeeChat kompiliert wird (mittels CMake):

    $ cmake .. -DENABLE_TESTS=ON

Nach der Kompilierung wird die Testumgebung im build-Verzeichnis (bei CMake) ausgeführt:

    $ ctest -V

### 2.3. 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:

    $ git clone https://github.com/weechat/weechat.git

Folgen Sie bitte der Anleitung zur Erstellung aus Quellpaketen (siehe Quellpakete).

### 2.4. 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

#### 2.4.1. Debug-Build

Bei der Kompilierung mit CMake muss folgende Option gesetzt werden:

    $ cmake .. -DCMAKE_BUILD_TYPE=Debug

#### 2.4.2. Address Sanitizer

Sie können zusätzlich den Adress-Sanitizer aktivieren, der bei Problemen sofort zum Absturz von WeeChat führt:

    $ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address

| 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:

    $ 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`.

#### 2.4.3. Core Dateien

Um core Dateien zu aktivieren kann folgende Option genutzt werden: 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:

    ulimit -c unlimited

optional kann noch die maximale Dateigröße bestimmt werden:

    ulimit -c 200000

#### 2.4.4. 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 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!).

| 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 auf dieser Wiki-Seite: https://wiki.archlinux.org/index.php/Core_dump

Beispiel: weechat ist in /usr/bin/ installiert und die core Datei befindet sich in /home/user/. Nun wird gdb mit folgendem Befehl aufgerufen:

    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/wee-hook.c:1364
            hook_process = 0x254eb90
            status = <value optimized out>
    #5  0x000000000044cc7d in hook_timer_exec ()
        at /some_path/src/core/wee-hook.c:1025
            tv_time = {tv_sec = 1272693881, tv_usec = 212665}
            ptr_hook = 0x2811f40
            next_hook = 0x0
    #6  0x000000000041b5b0 in gui_main_loop ()
        at /some_path/src/gui/curses/gui-curses-main.c:319
            hook_fd_keyboard = 0x173b600
            tv_timeout = {tv_sec = 0, tv_usec = 0}
            read_fds = {fds_bits = {0 <repeats 16 times>}}
            write_fds = {fds_bits = {0 <repeats 16 times>}}
            except_fds = {fds_bits = {0 <repeats 16 times>}}
            max_fd = <value optimized out>

Diese Fehlermeldung senden Sie bitte an den Entwickler mit einer Beschreibung was den Fehler ausgelöst hat.

Danke für Ihre Mithilfe!

#### 2.4.5. 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):

    gdb /usr/bin/weechat 12345

Sollte WeeChat abgestürzt sein, muss der Befehl `bt full` genutzt werden:

    (gdb) bt full

## 3. 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.

### 3.1. Upgrade Befehl

WeeChat kann die neue Binärdatei mit Hilfe des /upgrade Befehls starten: der Bufferinhalt und nicht-SSL Verbindungen bleiben dabei erhalten.
Eine SSL-Verbindung wird während des Upgrades getrennt und wird automatisch, nach dem Beenden des Upgrades, wiederhergestellt (das aufrechterhalten einer SSL-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:

    $ weechat --upgrade

### 3.2. Neustart nach Upgrade

#### 3.2.1. Versionshinweise

Nach einem Upgrade wird dringend empfohlen die, Versionshinweise zu lesen, denn dort sind wichtige Informationen zu Änderungen enthalten und ob eventuell ein manuelles Eingreifen erforderlich sein könnte.

Sie müssen die Versionshinweise aller Versionen zwischen Ihrer alten (abgelaufenen) und Ihrer neuen Version (enthalten) lesen.
Wenn Sie beispielsweise von Version 3.0 auf 3.2 wechseln, müssen Sie die Versionshinweise der Versionen 3.1 und 3.2 lesen.

#### 3.2.2. 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).

## 4. WeeChat starten

Um WeeChat zu starten muss folgender Befehl ausgeführt werden:

    $ weechat

Wird WeeChat das erste mal ausgeführt, wird die Standardkonfiguration und die entsprechenden Dateien im Verzeichnis ~/.config/weechat erstellt. (siehe Dateien und Verzeichnisse).

### 4.1. Optionen für Befehlszeile

-a, --no-connect

  deaktiviert das automatische Verbinden mit den Servern beim Start von WeeChat.

-c, --colors

  zeigt die Standardfarben im Terminal an.

--daemon

  startet WeeChat im Hintergrund, als Deamon (funktioniert nur mit dem Befehl weechat-headless).

--stdout

  die Programmausgabe findet in der Standardausgabe an, anstatt sie in die Protokolldatei zu schreiben Display log messages on standard output instead of writing them in log file (funktioniert ausschließlich mit weechat-headless und ist nicht kompatibel mit Option "--daemon").

-d, --dir <path>

  Erzwingen Sie ein einzelnes Verzeichnis für alle WeeChat-Dateien (Verzeichnis wird erstellt, wenn es nicht gefunden wird). Es können vier Verzeichnisse angegeben werden, die durch Doppelpunkte getrennt sind (folgende Reihenfolge: Konfiguration, Daten, Cache, Laufzeit). Wird diese Option nicht genutzt, wird die Umgebungsvariable WEECHAT_HOME genutzt (sofern diese vorhanden ist).

-t, --temp-dir

  Erstellt ein temporäres WeeChat Heimatverzeichnis welches beim Beenden gelöscht wird (nicht nutzbar mit Option "-d").
  Der Name des Verzeichnisses wird automatisch durch WeeChat vergeben, die Vorgabe für den Namen lautet: "weechat_temp_XXXXXX" ("XXXXXX" ist dabei ein zufälliger Wert). Dieses Verzeichnis wird dann im ersten möglichen Verzeichnis angelegt und anhand folgender Reihenfolge bestimmt: Umgebungsvariable "TMPDIR", "/tmp" (kann abweichend sein, abhängig vom verwendeten Betriebssystem), Umgebungsvariable "HOME", aktuelles Verzeichnis.
  Das temporäre Heimatverzeichnis besitzt die Berichtigung 0700 (nur Besitzer kann lesen, schreiben und ausführen).

-h, --help

  zeigt einen Hilfstext an.

-l, --license

  zeigt die Lizenz von WeeChat an.

-p, --no-plugin

  unterbindet das Laden der Erweiterungen beim Programmstart.

-P, --plugins <plugins>

  lädt nur die angegebenen Erweiterungen, beim Start (siehe /help weechat.plugin.autoload). Wenn diese Option genutzt wird, dann wird die Option weechat.plugin.autoload ignoriert.

-r, --run-command <command>

  führt einen oder mehrere Befehle nach dem Start aus; mehrere Befehle können durch ein Semikolon getrennt werden, diese Option kann mehrfach genutzt werden.

-s, --no-script

  Skripten werden beim Programmstart nicht geladen.

--upgrade

  führt ein WeeChat Upgrade mit Sitzungsdateien durch, die mittels dem Befehl `/upgrade -quit` erstellt wurden.

-v, --version

  zeigt die Version von WeeChat an.

plugin:option

  Option für Erweiterung.

Einige zusätzliche Optionen sollten nur für Debug-Zwecke genutzt werden:

| KEINE dieser Optionen sollte für ein Produktivsystem genutzt werden!

--no-dlclose

  die Funktion dlclose wird nicht ausgeführt, nachdem Erweiterungen beendet wurden Dies ist sinnvoll für Tools wie Valgrind um den Stack für Erweiterungen anzuzeigen, welche beendet wurden.

--no-gnutls

  Es wird die init und deinit Funktion der GnuTLS Bibliothek nicht verwendet. Dies ist sinnvoll für Tools wie Valgrind und electric-fence, um GnuTLS Speicherfehler zu vermeiden.

--no-gcrypt

  Es wird die init und deinit Funktion der Gcrypt Bibliothek nicht verwendet. Dies ist sinnvoll für Tools wie Valgrind um Speicherfehler von Gcrypt zu vermeiden.

### 4.2. Umgebungsvariablen

Einige Umgebungsvariablen werden von WeeChat genutzt, sofern sie definiert wurden:

Name | Beschreibung
--- | ---
`WEECHAT_HOME` | Das WeeChat Verzeichnis (beinhaltet Konfigurationsdateien, Protokolldateien, Skripten, …​). Gleiches Verhalten wie 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).

### 4.3. 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:

$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, …​

| 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

### 4.4. Dateien und Verzeichnisse

#### 4.4.1. XDG directories

WeeChat verwendet standardmäßig XDG-Verzeichnisse (gemäß 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:

Verzeichnis | Standardwert | Fallback-Wert
--- | --- | ---
Konfiguration | `$XDG_CONFIG_HOME/weechat` | `$HOME/.config/weechat` falls `$XDG_CONFIG_HOME` nicht definiert oder leer ist.
Daten | `$XDG_DATA_HOME/weechat` | `$HOME/.local/share/weechat` falls `$XDG_DATA_HOME` nicht definiert oder leer ist.
Cache | `$XDG_CACHE_HOME/weechat` | `$HOME/.cache/weechat` falls `$XDG_CACHE_HOME` nicht definiert oder leer ist.
Laufzeit | `$XDG_RUNTIME_DIR/weechat` | Wie beim Cache Verzeichnis, falls `$XDG_RUNTIME_DIR` nicht definiert oder leer ist.

Die Konfigurationsdateien werden beim ersten Ausführen von WeeChat mit Standardwerten erstellt.

#### 4.4.2. WeeChat Verzeichnisse

Es gibt folgende WeeChat Verzeichnisse:

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.

| (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.

#### 4.4.3. WeeChat Dateien

Folgende Dateien befinden sich im WeeChat-Heimatverzeichnis:

Datei | Beschreibung | sensible Daten
--- | --- | ---
`weechat.conf` | Hauptkonfiguration von WeeChat | möglich (Beispiel: Auflistung der Channels 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 Channels 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.

Es wird nicht empfohlen die Konfigurationsdateien manuell zu editieren, da WeeChat diese Dateien zu jeder Zeit überschreiben kann (zum Beispiel: /quit) und man eine veränderte Datei mit dem Befehl /reload neu laden muss (mit dem Risiko von Datenverlust da Daten kommentarlos überschrieben werden, bevor man diese ggf. gesichert hat /save).
Man sollte immer den /set Befehl nutzen, da der Befehl die Eingabe prüft und Änderungen sofort wirksam werden.

## 5. Schnittstelle

### 5.1. 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}* [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:

Item | Beispiel | Beschreibung
--- | --- | ---
buflist | `1.weechat` | Auflistung der Buffer.

Die title-Bar besitzt als Standardeinträge:

Item | Beispiel | Beschreibung
--- | --- | ---
buffer_title | `Willkommen in #test` | Buffer-Titel.

Die status-Bar besitzt als Standardeinträge:

Item | Beispiel | Beschreibung
--- | --- | ---
time | `[12:55]` | Uhrzeit.
buffer_last_number | `[5]` | Nummer des letzten Buffers.
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 Channel-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.
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 Channel #abc, eine ungelesene Nachricht in Buffer #5).
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:

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 (~ 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.

In der nicklist Bar lautet die Standardeinstellung:

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):

Item | Beispiel | Beschreibung
--- | --- | ---
buffer_count | `10` | absolute Anzahl an geöffneten Buffern.
buffer_last_number | `10` | Nummer des letzten Buffers (kann sich unterscheiden von `buffer_count` wenn Option weechat.look.buffer_auto_renumber deaktiviert (`off`) ist).
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` | List der Buffer, zweites Bar-Item (siehe Option buflist.look.use_items).
buflist3 | `1.weechat` | List der Buffer, drittes Bar-Item (siehe Option buflist.look.use_items).
fset | `buflist.look.sort: …` | Hilfstext zur aktuell ausgewählten Option im Fset-Buffer.
irc_channel | `#test` | aktueller IRC Channelname.
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 Channel.
mouse_status | `M` | Status der Maus (keine Anzeige, falls Maus deaktiviert).
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 Befehlen angepasst werden: `/bar` um die Bars anzupassen, /buffer und `/window` um Buffer und Fenster anzupassen, und /layout um das Bildschirmlayout zu benennen, zu speichern und wiederherzustellen sowie die Zuordnung zwischen Fenstern und Buffern zu behalten.

### 5.2. Befehlszeile

In der WeeChat Befehlszeile (am unteren Rand des Fensters) können Befehle ausgeführt oder ein Text in den Buffer geschrieben werden.

#### 5.2.1. 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

#### 5.2.2. 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 `Ctrl`+`c`, gefolgt von einem der folgenden Zeichen, genutzt werden:

Taste | Beschreibung
--- | ---
`Ctrl`+`c`, `b` | Text wird fett dargestellt.
`Ctrl`+`c`, `c`, `xx` | Textfarbe `xx` (siehe Farbtabelle).
`Ctrl`+`c`, `c`, `xx`, `,`, `yy` | Textfarbe `xx` und Hintergrundfarbe `yy` (siehe Farbtabelle).
`Ctrl`+`c`, `i` | Text wird kursiv dargestellt.
`Ctrl`+`c`, `o` | deaktiviert Farben und Attribute.
`Ctrl`+`c`, `v` | Farben umkehren (kehrt Textfarbe und Hintergrundfarbe um).
`Ctrl`+`c`, `_` | Text wird mit Unterstrich dargestellt.

| Der selbe Befehl (ohne den Wert für `Ctrl`+`c`, `c`) sollte genutzt werden um die Farbkodierungen bzw. Attribute zu deaktivieren.

Farbtabelle für `Ctrl`+`c`, `c`:

IRC-Farbe | WeeChat-Farbe
--- | ---
`00` | white
`01` | black
`02` | blue
`03` | green
`04` | lightred
`05` | red
`06` | magenta
`07` | brown
`08` | yellow
`09` | lightgreen
`10` | cyan
`11` | lightcyan
`12` | lightblue
`13` | lightmagenta
`14` | darkgray
`15` | gray
`16` | 52
`17` | 94
`18` | 100
`19` | 58
`20` | 22
`21` | 29
`22` | 23
`23` | 24
`24` | 17
`25` | 54
`26` | 53
`27` | 89
`28` | 88
`29` | 130
`30` | 142
`31` | 64
`32` | 28
`33` | 35
`34` | 30
`35` | 25
`36` | 18
`37` | 91
`38` | 90
`39` | 125
`40` | 124
`41` | 166
`42` | 184
`43` | 106
`44` | 34
`45` | 49
`46` | 37
`47` | 33
`48` | 19
`49` | 129
`50` | 127
`51` | 161
`52` | 196
`53` | 208
`54` | 226
`55` | 154
`56` | 46
`57` | 86
`58` | 51
`59` | 75
`60` | 21
`61` | 171
`62` | 201
`63` | 198
`64` | 203
`65` | 215
`66` | 227
`67` | 191
`68` | 83
`69` | 122
`70` | 87
`71` | 111
`72` | 63
`73` | 177
`74` | 207
`75` | 205
`76` | 217
`77` | 223
`78` | 229
`79` | 193
`80` | 157
`81` | 158
`82` | 159
`83` | 153
`84` | 147
`85` | 183
`86` | 219
`87` | 212
`88` | 16
`89` | 233
`90` | 235
`91` | 237
`92` | 239
`93` | 241
`94` | 244
`95` | 247
`96` | 250
`97` | 254
`98` | 231
`99` | default

| Um sich alle verfügbaren Farben anzeigen zu lassen, die der Terminal unterstützt, kann man in WeeChat die Tastenkombination `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:

`Ctrl`+`c` `c` `1` `2` `Ctrl`+`c` `b`
`H` `a` `l` `l` `o` `Space`
`Ctrl`+`c` `b` `Ctrl`+`c` `c` `0` `4` `Ctrl`+`c` `_`
`A` `l` `i` `c` `e`
`Ctrl`+`c` `_` `Ctrl`+`c` `c`
`!`

| Die Farben können in der IRC Erweiterung neu belegt werden, mittels der Option irc.color.mirc_remap.

### 5.3. 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 Channel

- 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: below, siehe den Befehl /window command 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 gespeichert und wiederhergestellt werden.

#### 5.3.1. 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)

#### 5.3.2. 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 `Alt`+`l` (`L`), mit dem selben Tastenbefehl wird dieser Modus wieder beendet (dieser Modus kann auch mit jeder beliegen Tasteneingabe beendet werden, siehe Option weechat.look.bare_display_exit_on_input).

Das Format für die Zeitanzeige kann mit folgender Option angepasst werden weechat.look.bare_display_time_format.

Der vereinfachte Anzeigemodus kann mit einer vorgegebenen Zeit gestartet werden /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 │       │
    │         │               | /devel/weechat_plugin_api.en.html#_weechat_hook_pr │       │
    │         │               | ocess                                              │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │                                                                    │       │
    │         │[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/devel/weechat_plugin_a│
    │pi.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).

### 5.4. Buffern

#### 5.4.1. Format von Zeilen

Zeilen die in einem formatierten Buffer dargestellt werden haben folgende Felder:

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 /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).

Die Darstellung von Zeilen kann mittels Optionen individualisiert werden. Zum einen mittels der "look"-Optionen (weechat.look.*) und der Color-Optionen (weechat.color.chat_*).

#### 5.4.2. Tags in Zeilen

WeeChat nutzt Tags für unterschiedliche Aufgaben:

- highlight

- Benachrichtigungsstufe

- logging

- für Befehle /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):

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 `/help 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.

| (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.

#### 5.4.3. 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:

Name | Wert | Beschreibung
--- | --- | ---
`away` | beliebige Zeichenkette | Abwesenheitsnotiz auf dem Server, wird durch IRC Erweiterung genutzt.
`channel` | beliebige Zeichenkette | Channel-Name, 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 definiert für einige Buffer `/fset`, `/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.

| Externe Erweitertungen und Skripte können andere lokale Variablen definieren und verwenden.

### 5.5. Liste der Buffer

Die Buflist-Erweiterung dient dazu eine Liste der geöffneten Buffer in einer Bar-Item, mit Namen "buflist", darzustellen (zwei weiere Bar-Items "buflist2" und "buflist3" sind zusätzlich verfügbar).
Eine Standardbar, "buflist", wird beim Programmstart automatisch mit folgendem Inhalt erstellt.

#### 5.5.1. Befehle

- `buflist`: Bar-Item mit der Liste von Buffern

    /buflist  enable|disable|toggle
              bar
              refresh

     enable: buflist aktivieren
    disable: buflist deaktivieren
     toggle: buflist umschalten
        bar: fügt eine "buflist" Bar hinzu
    refresh: erzwingt eine Aktualisierung der Bar-Item (buflist, buflist2 und buflist3)

    Jede Zeile die einen Buffer anzeigt wird mittels Zeichenketten-Evaluation dargestellt (siehe /help eval für das Format), dazu werden folgende Optionen genutzt:
      - buflist.look.display_conditions: Bedingungen um einen Buffer in der Liste darzustellen
      - buflist.format.buffer: Format für den Buffer, der nicht der aktuell dargestellte Buffer ist
      - buflist.format.buffer_current: Format für den aktuell dargestellten Buffer

    Die folgenden Variablen können in den obigen Optionen genutzt werden:
      - bar item data (siehe hdata "bar_item" in API Dokumentation für eine vollständige Liste), zum Beispiel:
        - ${bar_item.name}
      - window data, wo das Bar-Item dargestellt werden soll (in "root" Bars existieren keine Fenster, siehe hdata "window" in API Dokumentation für eine vollständige Liste), zum Beispiel:
        - ${window.number}
        - ${window.buffer.full_name}
      - buffer data (siehe hdata "buffer" in API Dokumentation für eine vollständige Liste), zum Beispiel:
        - ${buffer.number}
        - ${buffer.name}
        - ${buffer.full_name}
        - ${buffer.short_name}
        - ${buffer.nicklist_nicks_count}
      - irc_server: IRC Serverdaten, ausschließlich genutzt bei einem IRC Buffer (siehe hdata "irc_server" in API Dokumentation)
      - irc_channel: IRC Kanaldaten, ausschließlich genutzt bei einem IRC Kanal-Buffer (siehe hdata "irc_channel" in API Dokumentation)
      - zusätzliche Variablen die durch buflist bereitgestellt werden:
        - ${format_buffer}: der evaluierte Wert der Option buflist.format.buffer; dies kann in der Option buflist.format.buffer_current genutzt werden um zum Beispiel die Hintergrundfarbe zu verändern
        - ${current_buffer}: ein Boolean ("0" oder "1"), "1" falls es sich um den aktuellen Buffer handelt; dies kann in einer Bedingung verwendet werden: ${if:${current_buffer}?...:...}
        - ${merged}: ein Boolean ("0" oder "1"), "1" wenn der Buffer mit einem anderen zusammengefügt ist; kann innerhalb einer Bedingung genutzt werden: ${if:${merged}?...:...}
        - ${format_number}: eingerückte Nummer mit Trennzeichen (evaluiert aus Option buflist.format.number)
        - ${number}: eingerückte Nummer, zum Beispiel " 1", falls die Anzahl der Buffer zwischen 10 und 99 liegt; bei zusammengefügten Buffern enthält die Variable für den ersten Buffer die entsprechende Nummer, die weiteren Buffer enthalten ein Leerzeichen anstelle der Nummer
        - ${number2}: eingerückte Nummer, zum Beispiel " 1", falls die Anzahl der Buffer zwischen 10 und 99 liegt
        - ${number_displayed}: "1" falls Nummer angezeigt wird, ansonsten "0"
        - ${indent}: Einrückung für Name (Channel und private Buffer werden eingerückt) (evaluiert aus Option buflist.format.indent)
        - ${format_nick_prefix}: Nick-Präfix mit entsprechender Farbe für einen Channel (evaluiert aus Option buflist.format.nick_prefix)
        - ${color_nick_prefix}: Farbe für den Nick-Präfix von einem Channel (wird nur genutzt wenn die Option buflist.look.nick_prefix aktiviert ist)
        - ${nick_prefix}: der Nick-Präfix für einen Channel (wird nur genutzt falls die Option buflist.look.nick_prefix aktiviert ist)
        - ${format_name}: der formatierte Name (evaluiert aus Option buflist.format.name)
        - ${name}: der Kurzname (falls einer gesetzt ist), ersatzweise wird auf den Originalnamen zurückgegriffen
        - ${color_hotlist}: die Farbe mit der höchsten Priorität für den entsprechenden Buffer (evaluiert aus Option buflist.format.hotlist_xxx wobei xxx der entsprechende Level ist)
        - ${format_hotlist}: die formatierte Hotlist (evaluiert aus Option buflist.format.hotlist)
        - ${hotlist}: die Hotlist in der Rohform
        - ${hotlist_priority}: "none", "low", "message", "private" oder "highlight"
        - ${format_lag}: die Verzögerung für einen IRC Server-Buffer, ist leer falls es keine Verzögerung gibt (evaluiert aus Option buflist.format.lag)
        - ${format_tls_version}: Indikator der TLS Version für den Serverbuffer, Channels bleiben unberührt (evaluiert aus Option buflist.format.tls_version)

#### 5.5.2. Optionen

Sektionen in Datei buflist.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`format` | `/set buflist.format.*` | Format für die Darstellung der Bufferliste.
`look` | `/set buflist.look.*` | Erscheinungsbild.

Optionen:

- buflist.format.buffer

  - Beschreibung: Format für eine Zeile mit einem Buffer (Hinweis: Inhalt wird evaluiert, siehe /help buflist); Beispiel: Standardformat für Bar-Item "buflist" anwenden und nur die Buffernummer in eckigen Klammern für die anderen Bar-Items ("buflist2 und "buflist3") anzeigen: "${if:${bar_item.name}==buflist?${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}:[${number}]}"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}"`

- buflist.format.buffer_current

  - Beschreibung: Format für die Zeile mit dem ausgewählten Buffer (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${color:,blue}${format_buffer}"`

- buflist.format.hotlist

  - Beschreibung: Format der Hotlist (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `" ${color:green}(${hotlist}${color:green})"`

- buflist.format.hotlist_highlight

  - Beschreibung: Format für Buffer mit der Benachrichtungsstufe "highlight" (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${color:magenta}"`

- buflist.format.hotlist_low

  - Beschreibung: Format für Buffer mit der Benachrichtungsstufe "low" (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${color:white}"`

- buflist.format.hotlist_message

  - Beschreibung: Format für Buffer mit der Benachrichtungsstufe "message" (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${color:brown}"`

- buflist.format.hotlist_none

  - Beschreibung: Format für Buffer die nicht in der Hotlist angezeigt werden (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${color:default}"`

- buflist.format.hotlist_private

  - Beschreibung: Format für Buffer mit der Benachrichtungsstufe "private" (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${color:green}"`

- buflist.format.hotlist_separator

  - Beschreibung: Trennzeichen for counts in hotlist (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${color:default},"`

- buflist.format.indent

  - Beschreibung: Zeichenkette die beim Einrücken von Kanal und privaten Buffern angezeigt wird (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `" "`

- buflist.format.lag

  - Beschreibung: Format für die Anzeige der Verzögerungsanzeige für IRC Serverbuffer (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `" ${color:green}[${color:brown}${lag}${color:green}]"`

- buflist.format.name

  - Beschreibung: Format für den Namen eines Buffers (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${name}"`

- buflist.format.nick_prefix

  - Beschreibung: Format des Nick-Präfix für einen Kanal (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${color_nick_prefix}${nick_prefix}"`

- buflist.format.number

  - Beschreibung: Format für die Darstellung der Buffernummer, hierbei ist die Variable ${number} die eingerückte Nummer (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${color:green}${number}${if:${number_displayed}?.: }"`

- buflist.format.tls_version

  - Beschreibung: Format für die TLS-Version für einen IRC-Serverbuffer (Hinweis: Inhalt wird evaluiert, siehe /help buflist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `" ${color:default}(${if:${tls_version}==TLS1.3?${color:green}:${if:${tls_version}==TLS1.2?${color:yellow}:${color:red}}}${translate:${tls_version}}${color:default})"`

- buflist.look.add_newline

  - Beschreibung: fügt einen Zeilenumbruch zwischen die einzelnen Buffer hinzu um pro Zeile einen Buffer anzuzeigen (empfohlen); falls deaktiviert muss ein Zeilenumbruch manuell hinzugefügt werden, "${\\n}", des Weiteren ist die Mausunterstützung nicht mehr gegeben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- buflist.look.auto_scroll

  - Beschreibung: scrollt automatisch die buflist-Bar um den aktuellen Buffer darzustellen (dies funktioniert ausschließlich wenn die Bar links/rechts positioniert ist und als Darstellung "vertical" verwendet wird); dieser Wert ist eine prozentuale Angabe wo der aktuelle Buffer angezeigt werden soll (-1 = deaktiviert); zum Beispiel wird bei einem Wert von 50 der Buffer in der Mitte der Bar angezeigt, bei 0 wird der Buffer oben und bei 100 am unteren Rand der Bar angezeigt

  - Typ: integer

  - Werte: -1 .. 100

  - Standardwert: `50`

- buflist.look.display_conditions

  - Beschreibung: Bedingungen wann ein Buffer dargestellt werden soll (Hinweis: Inhalt ist evaluiert, siehe /help buflist); Beispielsweise werden Server-Buffer versteckt, sofern sie mit dem Core-Buffer zusammengefügt worden sind: "${buffer.hidden}==0 && ((${type}!=server && ${buffer.full_name}!=core.weechat) || ${buffer.active}==1)"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${buffer.hidden}==0"`

- buflist.look.enabled

  - Beschreibung: buflist aktivieren

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- buflist.look.mouse_jump_visited_buffer

  - Beschreibung: ist diese Einstellung aktiviert, kann mit der linken/rechten Maustaste auf dem aktuellen Buffer zum vorherigen/nächsten Buffer gesprungen werden

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- buflist.look.mouse_move_buffer

  - Beschreibung: ist diese Einstellung aktiviert, kann mit Mausgesten (Drag & Drop) ein Buffer in der Liste verschoben werden

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- buflist.look.mouse_wheel

  - Beschreibung: ist diese Einstellung aktiviert, kann mit dem Mausrad hoch/runter zum nächsten/vorherigen Buffer in der Liste gesprungen werden

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- buflist.look.nick_prefix

  - Beschreibung: holt den Nick-Präfix und die dazugehörige Farbe aus der Nicklist um diese mit der Variable ${nick_prefix} zu nutzen; diese Option ist standardmäßig deaktiviert, da bei einer umfangreichen Nickliste es zu Verzögerungen kommen kann

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- buflist.look.nick_prefix_empty

  - Beschreibung: falls der Nick-Präfix aktiviert ist, wird ein Leerzeichen genutzt falls kein Nick-Präfix für den Buffer existiert

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- buflist.look.signals_refresh

  - Beschreibung: durch Kommata getrennte Liste von zusätzlichen Signalen die dafür sorgen das die Buffer-Liste aktualisiert wird; dies kann nützlich sein falls benutzerdefinierte Variablen genutzt werden und dadurch eine Aktualisierung erforderlich wird

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- buflist.look.sort

  - Beschreibung: durch Kommata getrennte Liste von Feldern um die Buffer zu sortieren; jedes Feld ist entweder eine hdata Variable von Buffer ("var"), eine hdata Variable vom Typ IRC Server ("irc_server.var") oder eine hdata Variable vom Typ IRC Kanal ("irc_channel.var"); wird das "-" Zeichen vor einem Feld angewendet, wird die Ausgabe umgekehrt, um bei einem Vergleich nicht zwischen Groß- und Kleinschreibung zu unterscheiden wird das Zeichen "~" verwendet; Beispiel: "-~short_name" sortiert die Buffer nach ihren Kurznamen, wobei dies invertiert passiert und nicht zwischen Groß-oder Kleinschreibung unterschieden wird (Hinweis: der Inhalt ist evaluiert, vor dem Aufteilen in Felder, kann nur die Variable "bar_item" genutzt werden, um zwischen verschiedenen Buffer-Items zu unterscheiden, zum Beispiel "${bar_item.name}")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"number,-active"`

- buflist.look.use_items

  - Beschreibung: Anzahl der Buflist-Bar-Items, die verwendet werden können; die Item-Namen sind: "buflist", "buflist2", "buflist3"; Seien Sie vorsichtig, wenn Sie mehr als ein Bar-Item verwenden, wird die Anzeige der Bufferliste verlangsamt

  - Typ: integer

  - Werte: 1 .. 3

  - Standardwert: `1`

## 6. Tastenbelegungen

WeeChat bietet viele Standardtastenzuordnungen, die in den folgenden Kapiteln aufgeführt sind.
Sie können mit dem Befehl /key geändert und neue hinzugefügt werden.

### 6.1. Kommandozeile

#### 6.1.1. Cursorbewegung

Taste | Beschreibung | Befehl
--- | --- | ---
`←` `Ctrl`+`b` | setzt den Cursor eine Position nach links. | `/input move_previous_char`
`→` `Ctrl`+`f` | setzt den Cursor eine Position nach rechts. | `/input move_next_char`
`Ctrl`+`←` `Alt`+`b` | springt in der Befehlszeile zum Anfang des vorherigen Wortes. | `/input move_previous_word`
`Ctrl`+`→` `Alt`+`f` | springt in der Befehlszeile zum Anfang des nächsten Wortes. | `/input move_next_word`
`Home` `Ctrl`+`a` | springt zum Anfang der Befehlszeile. | `/input move_beginning_of_line`
`End` `Ctrl`+`e` | springt ans Ende der Befehlszeile. | `/input move_end_of_line`

#### 6.1.2. Bearbeitung

Taste | Beschreibung | Befehl
--- | --- | ---
`Del` `Ctrl`+`d` | entfernt in der Befehlszeile das nächste Zeichen. | `/input delete_next_char`
`Backspace` `Ctrl`+`h` | entfernt in der Befehlszeile das vorherige Zeichen. | `/input delete_previous_char`
`Ctrl`+`k` | entfernt alle Zeichen vom Cursor bis zum Ende der Zeile (die Zeichenkette wird dabei in die interne Zwischenablage kopiert). | `/input delete_end_of_line`
`Ctrl`+`t` | Zeichen austauschen. | `/input transpose_chars`
`Ctrl`+`u` | entfernt alle Zeichen vom Cursor bis zum Anfang der Zeile (die Zeichenkette wird dabei in die interne Zwischenablage kopiert). | `/input delete_beginning_of_line`
`Ctrl`+`w` | entfernt das Wort links vom Cursor (die Zeichenkette wird dabei in die interne Zwischenablage kopiert). | `/input delete_previous_word`
`Ctrl`+`y` | fügt den Inhalt der internen Zwischenablage ein. | `/input clipboard_paste`
`Ctrl`+`_` | Rückgängig machen der letzten Aktion, in der Befehlszeile. | `/input undo`
`Alt`+`_` | Wiederherstellen der letzten Aktion, in der Befehlszeile. | `/input redo`
`Tab` | Vervollständigung von Befehlen oder Nicks (nochmaliges `Tab`: findet nächste Vervollständigung). | `/input complete_next`
`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`
`Enter` `Ctrl`+`j` `Ctrl`+`m` | führt einen Befehl aus oder sendet den Text (im Such-Modus: stoppt Suche). | `/input return`
`Alt`+`Enter` | Zeilenvorschub einfügen. | `/input insert \n`
`Alt`+`d` | löscht das Wort rechts vom Cursor (die Zeichenkette wird dabei in die interne Zwischenablage kopiert). | `/input delete_next_word`
`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`
`Alt`+`r` | komplette Eingabezeile lösche.n | `/input delete_line`

#### 6.1.3. Farbkodierung

Taste | Beschreibung | Befehl
--- | --- | ---
`Ctrl`+`c`, `b` | fügt Steuerzeichen für fett geschrieben Text ein. | `/input insert \x02`
`Ctrl`+`c`, `c` | fügt Steuerzeichen für Textfarbe ein. | `/input insert \x03`
`Ctrl`+`c`, `i` | fügt Steuerzeichen für kursiven Text ein. | `/input insert \x1D`
`Ctrl`+`c`, `o` | fügt Steuerzeichen für Standardfarbe ein. | `/input insert \x0F`
`Ctrl`+`c`, `v` | fügt Steuerzeichen für Hintergrundfarbe ein. | `/input insert \x16`
`Ctrl`+`c`, `_` | fügt Steuerzeichen für unterstrichenen Text ein. | `/input insert \x1F`

#### 6.1.4. Befehlsverlauf

Taste | Beschreibung | Befehl
--- | --- | ---
`↑` | ruft vorherigen Befehl oder Nachricht aus dem Verlaufsspeicher auf (im Such-Modus: rückwärts suchen). | `/input history_previous`
`↓` | ruft nächsten Befehl oder Nachricht aus dem Verlaufsspeicher auf (im Such-Modus: vorwärts suchen). | `/input history_next`
`Ctrl`+`↑` | ruft vorherigen Befehl/Nachricht aus dem globalen Verlaufsspeicher auf (für alle Buffer). | `/input history_global_previous`
`Ctrl`+`↓` | ruft nächsten Befehl/Nachricht aus dem globalen Verlaufsspeicher auf (für alle Buffer). | `/input history_global_next`

### 6.2. Buffer

Taste | Beschreibung | Befehl
--- | --- | ---
`Ctrl`+`r` | Textsuche im Verlaufsspeicher des Buffers (siehe Tasten für Such-Kontext). | `/input search_text_here`
`Ctrl`+`s`, `Ctrl`+`u` | setzt für alle Buffer die Markierung für ungelesene Nachrichten. | `/input set_unread`
`Ctrl`+`x` | Wechseln Sie den aktuellen Buffer, wenn diese zusammengefügt worden sind, z.B. zwischen IRC-Serverbuffer wechseln. | `/input switch_active_buffer`
`Alt`+`x` | Zoom eines zusammengefügten Buffers (`Alt`+`x` ein zweites mal: alle zusammengefügten Buffer werden angezeigt). | `/input zoom_merged_buffer`
`PgUp` | eine Seite im Verlaufsspeicher des Buffers nach oben blättern. | `/window page_up`
`PgDn` | eine Seite im Verlaufsspeicher des Buffer nach unten blättern. | `/window page_down`
`Alt`+`PgUp` | einige Zeilen im Verlaufsspeicher des Buffer nach oben blättern. | `/window scroll_up`
`Alt`+`PgDn` | einige Zeilen im Verlaufsspeicher des Buffer nach unten blättern. | `/window scroll_down`
`Alt`+`Home` | springt zur ersten Zeile des Verlaufsspeichers des aktuellen Buffer.s | `/window scroll_top`
`Alt`+`End` | springt zur letzten Zeile des Verlaufsspeichers des aktuellen Buffers. | `/window scroll_bottom`
`Alt`+`←` `Alt`+`↑` `Ctrl`+`p` `F5` | zum vorherigen Buffer springen. | `/buffer -1`
`Alt`+`→` `Alt`+`↓` `Ctrl`+`n` `F6` | zum nächsten Buffer springen. | `/buffer +1`
`Alt`+`j`, `Alt`+`f` | wechselt zum ersten Buffer. | `/buffer -`
`Alt`+`j`, `Alt`+`l` (`L`) | wechselt zum letzten Buffer. | `/buffer +`
`Alt`+`j`, `Alt`+`r` | wechselt zum IRC RAW Buffer. | `/server raw`
`Alt`+`j`, `Alt`+`s` | wechselt zum IRC Server Buffer. | `/server jump`
`Alt`+`0…​9` | wechselt zum Buffer mit der Nummer (0 = 10). | `/buffer *N`
`Alt`+`j`, `01…​99` | wechselt zum Buffer mit der angegeben Nummer. | `/buffer *NN`
`Alt`+`n` | springt zur nächsten Highlight Nachricht. | `/window scroll_next_highlight`
`Alt`+`p` | springt zur vorherigen Highlight Nachricht. | `/window scroll_previous_highlight`
`Alt`+`u` | springt zur ersten ungelesenen Zeile im Buffer. | `/window scroll_unread`
`Alt`+`<` | springt zum letzten besuchten Buffer. | `/input jump_previously_visited_buffer`
`Alt`+`>` | springt zum nächsten besuchten Buffer. | `/input jump_next_visited_buffer`
`Alt`+`/` | wechselt zum jeweils zuletzt angezeigten Buffern. | `/input jump_last_buffer_displayed`

### 6.3. Fenster

Taste | Beschreibung | Befehl
--- | --- | ---
`Ctrl`+`l` (`L`) | Fenster wird neu gezeichnet. | `/window refresh`
`Alt`+`l` (`L`) | schaltet einfachen Anzeigemodus an/aus. | `/window bare`
`F7` | zum vorherigen Fenster wechseln. | `/window -1`
`F8` | zum nächsten Fenster wechseln. | `/window +1`
`Alt`+`w`, `Alt`+`↑` | wechselt zum oberen Fenster. | `/window up`
`Alt`+`w`, `Alt`+`↓` | wechselt zum unteren Fenster. | `/window down`
`Alt`+`w`, `Alt`+`←` | wechselt zum linken Fenster. | `/window left`
`Alt`+`w`, `Alt`+`→` | wechselt zum rechten Fenster. | `/window right`
`Alt`+`w`, `Alt`+`b` | passt die Größe aller Fenster an. | `/window balance`
`Alt`+`w`, `Alt`+`s` | Wechselt Buffer von zwei Fenstern. | `/window swap`
`Alt`+`z` | Zoom für aktuelles Fenster (nochmals `Alt`+`z`: stellt die vorherigen Einstellungen wieder her). | `/window zoom`

### 6.4. Bars

Taste | Beschreibung | Befehl
--- | --- | ---
`F1` `Ctrl`+`F1` | blättert eine Seite in der buflist hoch. | `/bar scroll buflist * -100%`
`F2` `Ctrl`+`F2` | blättert eine Seite in der buflist runter. | `/bar scroll buflist * +100%`
`Alt`+`F1` | springt zum Anfang der buflist. | `/bar scroll buflist * b`
`Alt`+`F2` | springt zum Ende der buflist. | `/bar scroll buflist * e`
`F9` | Titel des Buffers nach links verschieben. | `/bar scroll title * -30%`
`F10` | Titel des Buffers nach rechts verschieben. | `/bar scroll title * +30%`
`F11` `Ctrl`+`F11` | Benutzerliste um eine Seite nach oben blättern. | `/bar scroll nicklist * -100%`
`F12` `Ctrl`+`F12` | Benutzerliste um eine Seite nach unten blättern. | `/bar scroll nicklist * +100%`
`Alt`+`F11` | springt zum Anfang der Benutzerliste. | `/bar scroll nicklist * b`
`Alt`+`F12` | springt zum Ende der Benutzerliste. | `/bar scroll nicklist * e`
`Alt`+`Shift`+`B` | buflist-Bar umschalten. | `/buflist toggle`
`Alt`+`Shift`+`N` | nicklist bar umschalten. | `/bar toggle nicklist`

### 6.5. Hotlist

Taste | Beschreibung | Befehl
--- | --- | ---
`Alt`+`a` | wechselt zum nächsten Buffer mit Aktivität (nach Priorität: highlight, Nachricht, …​). | `/input jump_smart`
`Alt`+`h`, `Alt`+`c` | Hotlist löschen (Aktivitätsbenachrichtigung bei Buffern). | `/input hotlist_clear`
`Alt`+`h`, `Alt`+`m` | Aktuellen Puffer aus Hotlist entfernen. | `/input hotlist_remove_buffer`
`Alt`+`h`, `Alt`+`r` | stelle die letzte aus dem aktuellen Buffer entfernte Hotlist wieder her. | `/input hotlist_restore_buffer`
`Alt`+`h`, `Alt`+`Shift`+`R` | stelle die neueste Hotlist wieder her, die in allen Buffern entfernt wurde. | `/input hotlist_restore_all`

### 6.6. Tasten zum Umschalten von Funktionen

Taste | Beschreibung | Befehl
--- | --- | ---
`Alt`+`m` | schaltet Mausfunktion ein/aus. | `/mouse toggle`
`Alt`+`s` | Umschalten der Rechtschreibprüfung. | `/mute spell toggle`
`Alt`+`=` | schaltet Filterfunktion an/aus. | `/filter toggle`
`Alt`+`-` | schaltet, für den aktuellen Buffer, Filterfunktion an/aus. | `/filter toggle @`

### 6.7. Suchkontext

Diese Tasten werden im Kontext "search" verwendet (wenn `Ctrl`+`r` genutzt wird um in einem Buffer nach einem Text zu suchen).

Taste | Beschreibung | Befehl
--- | --- | ---
`Ctrl`+`r` | Wechsel des Suchmodus: einfache Textsuche (Standard), reguläre Ausdrücke. | `/input search_switch_regex`
`Alt`+`c` | auf Groß-/Kleinschreibung umschalten. | `/input search_switch_case`
`Tab` | wechselt Suche in: Nachricht (Standard), im Präfix, Präfix + Nachricht. | `/input search_switch_where`
`↑` | sucht vorheriger Zeile. | `/input search_previous`
`↓` | sucht nächste Zeile . | `/input search_next`
`Enter` `Ctrl`+`j` `Ctrl`+`m` | beendet Suche ab aktueller Position. | `/input search_stop_here`
`Ctrl`+`q` | beendet Suche und blättert zum Ende des Buffers. | `/input search_stop`

### 6.8. Cursor-Kontext

Diese Tasten werden im Kontext "cursor" verwendet (Cursor kann frei auf dem Bildschirm bewegt werden)

Taste | Bereich | Beschreibung | Befehl
--- | --- | --- | ---
`↑` | - | bewegt Cursor eine Zeile nach oben. | `/cursor move up`
`↓` | - | bewegt Cursor eine Zeile nach unten. | `/cursor move down`
`←` | - | bewegt Cursor eine Spalte nach links. | `/cursor move left`
`→` | - | bewegt Cursor eine Spalte nach rechts. | `/cursor move right`
`Alt`+`↑` | - | bewegt Cursor einen Bereich nach oben. | `/cursor move area_up`
`Alt`+`↓` | - | bewegt Cursor einen Bereich nach unten. | `/cursor move area_down`
`Alt`+`←` | - | bewegt Cursor einen Bereich nach links. | `/cursor move area_left`
`Alt`+`→` | - | bewegt Cursor einen Bereich nach rechts. | `/cursor move area_right`
`m` | Chat | quotet Nachricht. | `hsignal:chat_quote_message;/cursor stop`
`q` | Chat | quotet prefix + Nachricht. | `hsignal:chat_quote_prefix_message;/cursor stop`
`Q` | Chat | quotet Uhrzeit + prefix + Nachricht. | `hsignal:chat_quote_time_prefix_message;/cursor stop`
`b` | Benutzerliste | verbannt nick (Ban). | `/window ${_window_number};/ban ${nick}`
`k` | Benutzerliste | kickt nick. | `/window ${_window_number};/kick ${nick}`
`K` | Benutzerliste | kickt und verbannt nick. | `/window ${_window_number};/kickban ${nick}`
`q` | Benutzerliste | öffnet privaten Chat mit Nick. | `/window ${_window_number};/query ${nick};/cursor stop`
`w` | Benutzerliste | führt einen whois für Nick aus. | `/window ${_window_number};/whois ${nick}`
`Enter` `Ctrl`+`j` `Ctrl`+`m` | - | beendet den Cursor-Modus. | `/cursor stop`

### 6.9. Maus

Diese Mausaktionen sind nur möglich, wenn die Maus mit der Taste `Alt`+`m` aktiviert wurde (Befehl: `/mouse toggle`).

Maustaste/Mausrad (1) | Mausgeste | Bereich | Beschreibung | Befehl
--- | --- | --- | --- | ---
◾◽◽ | - | Chat | wechselt zum Fenster. | `/window ${_window_number}`
◾◽◽ | links | Chat | zum vorherigen Buffer springen. | `/window ${_window_number};/buffer +1`
◾◽◽ | rechts | Chat | zum nächsten Buffer springen. | `/window ${_window_number};/buffer +1`
◾◽◽ | links(lang) | Chat | wechselt zum ersten Buffer. | `/window ${_window_number};/buffer 1`
◾◽◽ | rechts(lang) | Chat | wechselt zum letzten Buffer. | `/window ${_window_number};/input jump_last_buffer`
`▲` | - | Chat | mehrere Zeilen im Verlaufsspeicher des Buffer nach oben blättern. | `/window scroll_up -window ${_window_number}`
`▼` | - | Chat | mehrere Zeilen im Verlaufsspeicher des Buffer nach unten blättern. | `/window scroll_down -window ${_window_number}`
`Ctrl`+`▲` | - | Chat | horizontal, nach links scrollen. | `/window scroll_horiz -window ${_window_number} -10%`
`Ctrl`+`▼` | - | Chat | horizontal, nach rechts scrollen. | `/window scroll_horiz -window ${_window_number} +10%`
`▲` | - | chat: fset Buffer | Auswahl wird fünf Einträge nach oben bewegt, im fset Buffer. | `/fset -up 5`
`▼` | - | chat: fset buffer | Auswahl wird fünf Einträge nach unten bewegt, im fset Buffer. | `/fset -down 5`
◾◽◽ | - | chat: fset buffer | springt zu einem Eintrag im fset Buffer. | `/window ${_window_number};/fset -go ${_chat_line_y}`
◽◽◾ | - | chat: fset buffer | Boolean-Wert wird umgeschaltet (an/aus) oder editiere den Wert einer Option. | `hsignal:fset_mouse`
◽◽◾ | left | chat: fset buffer | Integer/Farbwerte werden verringert, andere Variabletypen werden in die Eingabezeile kopiert. | `hsignal:fset_mouse`
◽◽◾ | right | chat: fset buffer | Integer/Farbwerte werden erhöht, andere Variabletypen werden in die Eingabezeile kopiert. | `hsignal:fset_mouse`
◽◽◾ | up / down | chat: fset buffer | markieren/demarkieren von mehreren Optionen. | `hsignal:fset_mouse`
`▲` | - | chat: script buffer | fünf Zeilen nach oben blättern, im Script-Buffer. | `/script up 5`
`▼` | - | chat: script buffer | fünf Zeilen nach unten blättern, im Script-Buffer. | `/script down 5`
◾◽◽ | - | chat: script buffer | wählt einen Eintrag im Script-Buffer aus. | `/script go ${_chat_line_y}`
◽◽◾ | - | chat: script buffer | installiert/entfernt ein Skript. | `/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}`
◾◽◽ | up / left | buflist | verschiebt Buffer in der Reihenfolge nach unten. | Signal `buflist_mouse`.
◾◽◽ | down / right | buflist | verschiebt Buffer in der Reihenfolge nach oben. | Signal `buflist_mouse`.
◾◽◽ | - | buflist | wechselt zum Buffer (oder zum vorherigen Buffer, falls der aktuell genutzte Buffer angewählt wurde). | Signal `buflist_mouse`.
◽◽◾ | - | buflist | wechselt zum nächsten Buffer, falls der aktuell genutzte Buffer angewählt wurde. | Signal `buflist_mouse`.
`Ctrl`+`▲` | - | buflist | wechselt zum vorherigen Buffer. | Signal `buflist_mouse`.
`Ctrl`+`▼` | - | buflist | wechselt zum nächsten Buffer. | Signal `buflist_mouse`.
◾◽◽ | hoch | Benutzerliste | Benutzerliste um eine Seite nach oben blättern. | `/bar scroll nicklist ${_window_number} -100%`
◾◽◽ | runter | Benutzerliste | Benutzerliste um eine Seite nach unten blättern. | `/bar scroll nicklist ${_window_number} +100%`
◾◽◽ | hoch(lang) | Benutzerliste | springt zum Anfang der Benutzerliste. | `/bar scroll nicklist ${_window_number} b`
◾◽◽ | runter(lang) | Benutzerliste | springt zum Ende der Benutzerliste. | `/bar scroll nicklist ${_window_number} e`
◾◽◽ | - | Benutzerliste | öffnet privaten Chat mit Nick. | `/window ${_window_number};/query ${nick}`
◽◽◾ | - | Benutzerliste | führt einen whois für Nick aus. | `/window ${_window_number};/whois ${nick}`
◾◽◽ | links | Benutzerliste | kickt Nick. | `/window ${_window_number};/kick ${nick}`
◾◽◽ | links(lang) | Benutzerliste | kickt und verbannt Nick. | `/window ${_window_number};/kickban ${nick}`
◽◽◾ | links | Benutzerliste | verbannt Nick. | `/window ${_window_number};/ban ${nick}`
◽◽◾ | - | Input | fängt ein Mausereignis und fügt dieses in die Befehlszeile ein. | `/input grab_mouse_area`
`▲` | - | jede Bar | blättert Bar um 20% nach oben. | `/bar scroll ${_bar_name} ${_window_number} -20%`
`▼` | - | jede Bar | blättert Bar um 20% nach unten. | `/bar scroll ${_bar_name} ${_window_number} +20%`
◽◾◽ | - | überall | aktiviert den Cursor-Modus an dieser Position. | `/cursor go ${_x},${_y}`

| (1) `▲` und `▼` sind Symbole für Mausrad hoch/runter.

### 6.10. Fset Buffer

Diese Tasten und Aktionen werden im fset-Buffer verwendet (siehe Fset Erweiterung).

Taste | Action (1) | Beschreibung | Befehl
--- | --- | --- | ---
`↑` |  | einen Eintrag nach oben. | `/fset -up`
`↓` |  | einen Eintrag nach unten. | `/fset -down`
`PgUp` |  | eine Seite hoch blättern. | `/window page_up`
`PgDn` |  | eine Seite runter blättern. | `/window page_down`
`Alt`+`Home` | `<<` | springt zum ersten Eintrag. | `/fset -go 0`
`Alt`+`End` | `>>` | springt zum letzten Eintrag. | `/fset -go end`
`F11` | `<` | scrollt horizontal nach links. | `/fset -left`
`F12` | `>` | scrollt horizontal nach rechts. | `/fset -right`
`Alt`+`Space` | `t` | Boolean Wert ein/ausschalten. | `/fset -toggle`
`Alt`+`-` | `-` | subtrahiert 1 vom Wert bei Integer/Farboptionen, bei anderen Typen kann der Wert editiert werden. | `/fset -add -1`
`Alt`+`+` | `+` | addiert 1 zum Wert bei Integer/Farboptionen, bei anderen Typen kann der Wert editiert werden. | `/fset -add 1`
`Alt`+`f`, `Alt`+`r` | `r` | Wert resetten. | `/fset -reset`
`Alt`+`f`, `Alt`+`u` | `u` | Wert zurücksetzen. | `/fset -unset`
`Alt`+`Enter` | `s` | Wert setzen. | `/fset -set`
`Alt`+`f`, `Alt`+`n` | `n` | ein neuer Wert wird gesetzt, der alte Wert wird gelöscht. | `/fset -setnew`
`Alt`+`f`, `Alt`+`a` | `a` | dem Wert was hinzufügen. | `/fset -append`
`Alt`+`,` | `,` | markieren/demarkieren einer Option. | `/fset -mark 1`
`Shift`+`↑` |  | eine Zeile nach oben und markiert/demarkiert Option. | `/fset -up; /fset -mark`
`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 fset command). |
| `u:xxx` | demarkiert Optionen welche angezeigt werden und auf die der Filter "xxx" zutrifft (jeder Filter für Option oder Wert ist erlaubt, siehe fset command). |
`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). |
`Alt`+`p` |  | Umschalten der Beschreibung von Erweiterungen (`plugins.desc.*`). | `/mute /set fset.look.show_plugins_desc toggle`
`Alt`+`v` |  | Hilfe-Bar Ein-/Ausschalten. | `/bar toggle fset`
| `s:x,y` | sortiert Optionen nach Bereichen x,y (siehe Option fset.look.sort). | `/mute /set fset.look.sort x,y`
| `s:` | setzt Sortierung wieder auf Standardwerte (siehe Option 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`
`Ctrl`+`x` | `x` | Umschalten zwischen der Darstellung von Optionen. | `/fset -format`
| `q` | fset Buffer schließen. | `/buffer close`

| (1) Die Aktion muss als Eingabe in die Befehlszeile eingegeben werden, gefolgt von `Enter`.

### 6.11. Skriptbuffer

Diese Tasten und Aktionen werden im fset-Buffer verwendet (siehe script manager).

Taste | Action (1) | Beschreibung | Befehl
--- | --- | --- | ---
`↑` |  | eine Zeile nach oben. | `/script up`
`↓` |  | eine Zeile nach unten. | `/script down`
`PgUp` |  | eine Seite hoch blättern. | `/window page_up`
`PgDn` |  | eine Seite nach unten blättern. | `/window page_down`
`Alt`+`i` | `i` | Skript installieren. | `/script install`
`Alt`+`r` | `r` | Skript entfernen. | `/script remove`
`Alt`+`l` (`L`) | `l` | Skript laden. | `/script load`
`Alt`+`u` | `u` | Skript wird beendet. | `/script unload`
`Alt`+`Shift`+`A` | `A` | das Skript wird in das autoload-Verzeichnis eingebunden. | `/script toggleautoload`
`Alt`+`h` | `h` | Skript wird gehalten bzw. freigegeben. | `/script hold`
`Alt`+`v` | `v` | Skript Quelltext anzeigen. | `/script show`

| (1) Die Aktion muss als Eingabe in die Befehlszeile eingegeben werden, gefolgt von `Enter`.

## 7. Konfiguration

### 7.1. 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:

    ┌──────────────────────────────────────────────────────────────────────────────────────┐
    │1.weechat│1/121 | Filter: weechat.look.* | Sort: ~name | Key(input): alt+space=toggle │
    │2.fset   │weechat.look.bare_display_exit_on_input: exit the bare display mode on any c│
    │         │hanges in input [default: on]                                               │
    │         │----------------------------------------------------------------------------│
    │         │  weechat.look.align_end_of_lines                   integer  message        │
    │         │  weechat.look.align_multiline_words                boolean  on             │
    │         │  weechat.look.bar_more_down                        string   "++"           │
    │         │  weechat.look.bar_more_left                        string   "<<"           │
    │         │  weechat.look.bar_more_right                       string   ">>"           │
    │         │  weechat.look.bar_more_up                          string   "--"           │
    │         │  weechat.look.bare_display_exit_on_input           boolean  on             │
    │         │  weechat.look.bare_display_time_format             string   "%H:%M"        │
    │         │  weechat.look.buffer_auto_renumber                 boolean  on             │
    │         │  weechat.look.buffer_notify_default                integer  all            │
    │         │  weechat.look.buffer_position                      integer  end            │
    │         │  weechat.look.buffer_search_case_sensitive         boolean  off            │
    │         │  weechat.look.buffer_search_force_default          boolean  off            │
    │         │  weechat.look.buffer_search_regex                  boolean  off            │
    │         │  weechat.look.buffer_search_where                  integer  prefix_message │
    │         │  weechat.look.buffer_time_format                   string   "%H:%M:%S"     │
    │         │  weechat.look.buffer_time_same                     string   ""             │
    │         │[12:55] [2] [fset] 2:fset                                                   │
    │         │█                                                                           │
    └──────────────────────────────────────────────────────────────────────────────────────┘

#### 7.1.1. Befehle

- `fset`: Optionen von WeeChat und Erweiterungen schnell anpassen

    /fset  -bar
           -refresh
           -up|-down [<number>]
           -left|-right [<percent>]
           -go <line>|end
           -toggle
           -add [<value>]
           -reset
           -unset
           -set
           -setnew
           -append
           -mark
           -format
           -export [-help|-nohelp] <filename>
           <filter>

           -bar: fügt eine Hilfe in einer Bar hinzu
       -refresh: der Bildschirm wird neu gezeichnet (Befehl: /window refresh)
            -up: bewegt die ausgewählte Zeile um die Anzahl an Zeilen nach oben
          -down: bewegt die ausgewählte Zeile um die Anzahl an Zeilen nach unten
          -left: der fset Buffer wird wird prozentual entsprechend der Fensterbreite nach links verschoben
         -right: der fset Buffer wird wird prozentual entsprechend der Fensterbreite nach rechts verschoben
            -go: wählt eine Zeile mit der entsprechenden Nummer aus, die erste Zeile beginnt mit 0 (mit "end" wird die letzte Zeile ausgewählt)
        -toggle: der Wert einer Variable vom Typ boolean wird umgeschaltet
           -add: addiert den "Wert" (kann auch eine negative Zahl sein) bei Integer und Farbe, für andere Typen wird die Variable in die Eingabezeile kopiert und der Cursor positioniert (bei negativem Wert wird der Cursor an Beginn der Variable positioniert, bei positivem Wert wird der Cursor an das Ende gesetzt)
         -reset: löscht den Wert von der Option
         -unset: Option wird zurückgesetzt
           -set: der /set Befehl wird in die Eingabezeile kopiert um den Wert der Option zu editieren (der Cursor wird auf den Anfang des Wertes gesetzt)
        -setnew: der /set Befehl wird in die Eingabezeile kopiert um den Wert add the /set command in input to edit a new value for the option
        -append: der /set Befehl wird in die Eingabezeile kopiert um einen zusätzlichen Wert einzugeben (der Cursor wird an das Ende der Variable positioniert)
          -mark: Markierung umschalten
        -format: es wird zum nächsten verfügbaren Format gewechselt
        -export: exportiert die Optionen und Werte, welche angezeigt werden, in eine Datei (jede Zeile hat das Format: "/set Name Wert" oder "/unset Name")
          -help: der Hilfstext für eine Option wird in die exportierte Datei geschrieben (siehe /help fset.look.export_help_default)
        -nohelp: der Hilfetext für eine Option wird nicht in die exportierte Datei geschrieben (siehe /help fset.look.export_help_default)
         filter: setzt einen neuen Filter um nur ausgewählte Optionen anzuzeigen (die Filterfunktion kann direkt in der Eingabezeile eingegeben werden); mögliche Formate sind:
                   *       alle Optionen werden angezeigt  (keine Filterung)
                   xxx     zeigt nur Optionen mit "xxx" im Namen
                   f:xxx   zeigt nur Konfigurationsdatei "xxx" an
                   t:xxx   zeigt nur Optionen des entsprechenden Typs, "xxx" (bool/int/str/col)
                   d       zeigt nur Optionen die verändert wurden
                   d:xxx   zeigt nur Optionen die verändert wurden und "xxx" im Namen haben
                   d=xxx   zeigt nur veränderte Optionen, die "xxx" als Wert haben
                   d==xxx  zeigt nur veränderte Optionen die exakt "xxx" als Wert haben
                   h=xxx   zeigt alle Optionen, die den Text "xxx" in der Beschreibung enthalten (in der Übersetzung)
                   he=xxx  zeigt alle Optionen, die den Text "xxx" in der Beschreibung enthalten (in der englischen Beschreibung)
                   =xxx    zeigt nur Optionen mit "xxx" als Wert
                   ==xxx   zeigt nur Optionen die exakt "xxx" als Wert haben
                   c:xxx   zeigt nur Optionen auf die die evaluierte Bedingung "xxx" zutrifft, folgende Variable können verwendet werden: file, section, option, name, parent_name, type, type_en, type_short (bool/int/str/col), type_tiny (b/i/s/c), default_value, default_value_undef, value, quoted_value, value_undef, value_changed, parent_value, min, max, description, description2, description_en, description_en2, string_values

    Zeilen werden mittels evaluierten Ausdrücken dargestellt (siehe /help eval für das Format), dazu werden diese Optionen verwendet:
      - fset.format.option1: erstes Format für eine Option
      - fset.format.option2: zweites Format für eine Option

    Die nachfolgenden Variablen können in den Optionen genutzt werden:
      - Optionsdaten, mit Farbe und durch Leerzeichen auf der rechten Seite aufgefüllt:
        - ${file}: Konfigurationsdatei (zum Beispiel "weechat" oder "irc")
        - ${section}: Sektion
        - ${option}: Name der Option
        - ${name}: vollständiger Name der Option (file.section.option)
        - ${parent_name}: übergeordneter Name der Option
        - ${type}: Optionstyp (übersetzt)
        - ${type_en}: Optionstyp (auf englisch)
        - ${type_short}: Optionstyp Kurzform (bool/int/str/col)
        - ${type_tiny}: Optionstyp klein (b/i/s/c)
        - ${default_value}: Standardwert einer Option
        - ${default_value_undef}: "1" falls Standardwert null ist, andernfalls "0"
        - ${value}: Optionswert
        - ${value_undef}: "1" wenn Wert null ist, andernfalls "0"
        - ${value_changed}: "1" wenn Wert abweichend vom Standardwert ist, andernfalls "0"
        - ${value2}: Optionswert, mit geerbtem Wert falls null
        - ${parent_value}: übergeordneter Optionswert
        - ${min}: minimaler Wert
        - ${max}: maximaler Wert
        - ${description}: Beschreibung der Option (übersetzt)
        - ${description2}: Beschreibung der Option (übersetzt), "(keine Beschreibung)" (übersetzt) falls keine Beschreibung vorhanden
        - ${description_en}: Beschreibung der Option (in englisch)
        - ${description_en2}: Beschreibung der Option (in englisch), "(keine Beschreibung)" falls keine Beschreibung vorhanden
        - ${string_values}: Zeichenketten sind für Integer Optionen erlaubt
        - ${marked}: "1" wenn Option markiert ist, andernfalls "0"
        - ${index}: Index der Option in der Liste
      - Optionsdaten, mit Farbe aber ohne Leerzeichen:
        - selbe Namen, vorangestellt mit Unterstrich, zum Beispiel: ${_name}, ${_type}, ...
      - Optionsdaten, Rohformat (keine Farben/Leerzeichen):
        - selbe Namen, mit zwei vorangestellten Unterstrichen, zum Beispiel: ${__name}, ${__type}, ...
      - Optionsdaten, nur Leerzeichen:
        - selbe Namen, mit vorangestelltem "empty_", zum Beispiel: ${empty_name}, ${empty_type}
      - andere Daten:
        - ${selected_line}: "1" wenn Zeile ausgewählt ist, andernfalls "0"
        - ${newline}: fügt einen Zeilenumbruch an diese Position, dadurch wird die Option über mehrere Zeilen angezeigt

    Tasten und Eingaben um sich im fset Buffer zu bewegen:
      hoch                      eine Zeile nach oben
      runter                    eine Zeile nach unten
      pgup                      eine Seite nach oben
      pgdn                      eine Seite nach unten
      alt-home          <<      springe zur ersten Zeile
      alt-end           >>      springe zur letzten Zeile
      F11               <       horizontal nach links scrollen
      F12               >       horizontal nach rechts scrollen

    Tasten und Eingaben um Optionen im fset Buffer zu editieren:
      alt+space         t       boolean Werte umschalten
      alt+'-'           -       subtrahiert 1 vom Wert, bei Integer/Farboptionen, bei anderen Typen kann der Wert editiert werden
      alt+'+'           +       addiert 1 zum Wert, bei Integer/Farboptionen, bei anderen Typen kann der Wert editiert werden
      alt+f, alt+r      r       Wert resetten
      alt+f, alt+u      u       Wert zurücksetzen
      alt+enter         s       Wert setzen
      alt+f, alt+n      n       ein neuer Wert wird gesetzt, der alte Wert wird gelöscht
      alt+f, alt+a      a       dem Wert was hinzufügen
      alt+','           ,       markieren/demarkieren einer Option
      shift+hoch                eine Zeile nach oben und markiert/demarkiert Option
      shift+runter              markiert/demarkiert Option und geht eine Zeile nach unten
                        m:xxx   markiert Optionen welche angezeigt werden und auf die der Filter "xxx" zutrifft (jeder Filter für Option oder Wert ist erlaubt, siehe Filterung weiter oben)
                        u:xxx   demarkiert Optionen welche angezeigt werden und auf die der Filter "xxx" zutrifft (jeder Filter für Option oder Wert ist erlaubt, siehe Filterung weiter oben)

    weitere Tasten und Eingaben im fset Buffer:
      ctrl+L                    der Bildschirm wird neu gezeichnet (Befehl: /fset -refresh)
                        $       Optionen neu einlesen (markierte Optionen werden beibehalten)
                        $$      Optionen neu einlesen (Markierungen von Optionen werden dabei gelöscht)
      alt+p             p       Umschalten der Beschreibung von Erweiterungen (plugins.desc.*)
      alt+v             v       Hilfe-Bar Ein-/Ausschalten
                        s:x,y   sortiert Optionen nach Bereichen x,y (siehe /help fset.look.sort)
                        s:      setzt Sortierung wieder auf Standardwerte (siehe /help fset.look.sort)
                        w:xxx   exportiert Optionen in Datei "xxx"
                        w-:xxx  exportiert Optionen in Datei "xxx", ohne Hilfstext
                        w+:xxx  exportiert Optionen in Datei "xxx", mit Hilfstext
      ctrl+X            x       umschalten zwischen der Darstellung von Optionen
                        q       schließt fset Buffer

    Mausaktionen im fset Buffer:
      Mausrad hoch/runter              Zeile hoch/runter
      linke Maustaste                  Zeile auswählen
      rechte Maustaste                 boolean umschalten (an/aus) oder editiere den Wert einer Option
      rechte Maustaste + links/rechts  Integer/Farbwerte werden erhöht/verringert, andere Variabletypen werden in die Eingabezeile kopiert
      rechte Maustaste + hoch/runter   markieren/demarkieren von mehreren Optionen

    Hinweis: Leerzeichen am Anfang der Eingabezeile werden ignoriert und der folgende Text wird als Filter verwendet. Ein Beispiel: "q" schließt den fset Buffer wobei hingegen " q" alle Optionen anzeigt die ein "q" im Namen beinhalten.

    Beispiele:
      zeigt alle IRC Optionen an, die verändert wurden:
        /fset d:irc.*
      zeigt alle Optionen die "nicklist" im Namen tragen:
        /fset nicklist
      zeigt alle Werte die "red" beinhalten:
        /fset =red
      zeigt alle Werte die exakt "red" lauten:
        /fset ==red
      zeigt alle Integer-Optionen der IRC-Erweiterung:
        /fset c:${file} == irc && ${type_en} == integer

#### 7.1.2. Optionen

Sektionen in Datei fset.conf:

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:

- fset.color.default_value

  - Beschreibung: Farbe für Standardwert

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.default_value_selected

  - Beschreibung: Farbe für den Standardwert bei der ausgewählten Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.description

  - Beschreibung: Farbe für Beschreibung

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.description_selected

  - Beschreibung: Farbe für Beschreibung für die ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.file

  - Beschreibung: Farbe für Datei

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.file_changed

  - Beschreibung: Farbei für Datei, falls der Wert abweichend ist

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- fset.color.file_changed_selected

  - Beschreibung: Farbe von Datei wenn Wert verändert ist, bei der ausgewählten Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- fset.color.file_selected

  - Beschreibung: Farbe der Datei für die ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.help_default_value

  - Beschreibung: Farbe für Standardwert in der Hilfe-Bar

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.help_description

  - Beschreibung: Farbe für die Beschreibung in der Hilfe-Bar

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.help_name

  - Beschreibung: Farbe für Namen in Hilfe-Bar

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.help_quotes

  - Beschreibung: Farbe der Anführungszeichen für Stringwerte

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `darkgray`

- fset.color.help_values

  - Beschreibung: Farbe für erlaubte Werte

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.index

  - Beschreibung: Farbe für Index einer Option

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- fset.color.index_selected

  - Beschreibung: Farbe für Index der Option bei der ausgewählten Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightcyan`

- fset.color.line_marked_bg1

  - Beschreibung: Hintergrundfarbe für markierte Zeile (wird für das erste Format verwendet, siehe Option fset.format.option1)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.line_marked_bg2

  - Beschreibung: Hintergrundfarbe für markierte Zeile (wird für das zweite Format verwendet, siehe Option fset.format.option2)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.line_selected_bg1

  - Beschreibung: Hintergrundfarbe für ausgewählte Zeile (wird für das erste Format verwendet, siehe Option fset.format.option1)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `blue`

- fset.color.line_selected_bg2

  - Beschreibung: Hintergrundfarbe für ausgewählte Zeile (wird für das zweite Format verwendet, siehe Option fset.format.option2)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `red`

- fset.color.marked

  - Beschreibung: Farbe des Markierungssymbols

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- fset.color.marked_selected

  - Beschreibung: Farbe für das Markierungssymbol für die ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- fset.color.max

  - Beschreibung: Farbe für Maximalwert

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.max_selected

  - Beschreibung: Farbe für Maximalwert bei der ausgewählten Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.min

  - Beschreibung: Farbe für Minimalwert

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.min_selected

  - Beschreibung: Farbe für Minimalwert, für ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.name

  - Beschreibung: Farbe für Name

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.name_changed

  - Beschreibung: Farbe für Namen wenn Wert verändert wurde

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- fset.color.name_changed_selected

  - Beschreibung: Farbe vom Namen, falls Wert verändert wurde bei der ausgewählten Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- fset.color.name_selected

  - Beschreibung: Farbe des Namens für die ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.option

  - Beschreibung: Farbe für Option

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.option_changed

  - Beschreibung: Farbe der Option wenn Wert verändert wurde

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- fset.color.option_changed_selected

  - Beschreibung: Farbe von Option, falls Wert verändert wurde bei der ausgewählten Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- fset.color.option_selected

  - Beschreibung: Farbe der Option für die ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.parent_name

  - Beschreibung: Farbe des Namens für übergeordnete Option

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.parent_name_selected

  - Beschreibung: Farbe des Namens für übergeordnete Option, für ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.parent_value

  - Beschreibung: Farbe des Wertes für übergeordnete Option

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- fset.color.parent_value_selected

  - Beschreibung: Farbe des Wertes für übergeordnete Option, für ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightcyan`

- fset.color.quotes

  - Beschreibung: Farbe der Anführungszeichen für Stringwerte

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `darkgray`

- fset.color.quotes_changed

  - Beschreibung: Farbe der Anführungszeichen um Zeichenketten wenn der Wert verändert wurde

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.quotes_changed_selected

  - Beschreibung: Farbe der Anführungszeichen um Zeichenketten wenn der Wert verändert wurde, bei der ausgewählten Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.quotes_selected

  - Beschreibung: Farbe der Anführungszeichen um Zeichenketten, bei der ausgewählten Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.section

  - Beschreibung: Farbe für Sektion

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.section_changed

  - Beschreibung: Farbe der Sektion wenn Wert verändert wurde

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- fset.color.section_changed_selected

  - Beschreibung: Farbe der aktuellen Zeile für Sektion, sofern Wert verändert wurde

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- fset.color.section_selected

  - Beschreibung: Farbe der Sektion für ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.string_values

  - Beschreibung: Farbe für String-Werte

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.string_values_selected

  - Beschreibung: Farbe für Werte von Zeichenketten, bei der ausgewählten Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.title_count_options

  - Beschreibung: Farbe für die Zahl die im Buffer-Titel anzeigt wie viele Optionen gefunden wurden

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- fset.color.title_current_option

  - Beschreibung: Farbe in welcher die Ordnungszahl der ausgewählten Option im Title angegeben werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightcyan`

- fset.color.title_filter

  - Beschreibung: Farbe für Filter im Buffer-Titel

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- fset.color.title_marked_options

  - Beschreibung: Farbe für die Zahl die im Buffer-Titel anzeigt wie viele Optionen markiert sind

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightgreen`

- fset.color.title_sort

  - Beschreibung: Farbe für Sortierung im Buffer-Titel

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.type

  - Beschreibung: Farbe für den Variablentyp

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- fset.color.type_selected

  - Beschreibung: Farbe für den Variablentyp wenn Zeile angewählt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightgreen`

- fset.color.unmarked

  - Beschreibung: Farbe für das Markierungssymbol wenn die Option nicht markiert ist

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- fset.color.unmarked_selected

  - Beschreibung: Farbe für das Markierungssymbol wenn die Option in der ausgewählten Zeile nicht markiert ist

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- fset.color.value

  - Beschreibung: Farbe für Wert

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- fset.color.value_changed

  - Beschreibung: Farbe für veränderten Wert (abweichend vom Standardwert)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- fset.color.value_changed_selected

  - Beschreibung: Farbe für veränderten Wert (abweichend vom Standardwert) für die ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- fset.color.value_selected

  - Beschreibung: Farbe für Wert für die ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightcyan`

- fset.color.value_undef

  - Beschreibung: Farbe für undefinierten Wert

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `magenta`

- fset.color.value_undef_selected

  - Beschreibung: Farbe für undefinierte Werte für die ausgewählte Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightmagenta`

- fset.format.export_help

  - Beschreibung: Format für die Hilfezeile die vor jede Option geschrieben wird, wenn in eine Datei exportiert wird (Hinweis: Inhalt wird evaluiert, siehe /help fset)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"# ${description2}"`

- fset.format.export_option

  - Beschreibung: Format für jede Option die in eine Datei exportiert wird (Hinweis: Inhalt wird evaluiert, siehe /help fset)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"/set ${name} ${quoted_value}"`

- fset.format.export_option_null

  - Beschreibung: Format für jede Option die "null" als Wert hat und in eine Datei exportiert wird (Hinweis: Inhalt wird evaluiert, siehe /help fset)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"/unset ${name}"`

- fset.format.option1

  - Beschreibung: erstes von zwei Formaten um Optionen anzuzeigen, wird genutzt wenn die Option fset.look.format_number auf 1 gesetzt ist (Hinweis: der Inhalt ist evaluiert, siehe /help fset); eine leere Zeichenkette nutzt die Standardeinstellung ("${marked} ${name} ${type} ${value2}"), dies findet ohne eine Evaluierung statt, was wesentlich schneller ist; zwischen den Formaten kann mittels ctrl-X umgeschaltet werden

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- fset.format.option2

  - Beschreibung: zweites von zwei Formaten um Optionen anzuzeigen,wird genutzt wenn die Option fset.look.format_number auf 1 gesetzt ist (Hinweis: der Inhalt ist evaluiert, siehe /help fset); eine leere Zeichenkette nutzt die Standardeinstellung ("${marked} ${name} ${type} ${value2}"), dies findet ohne eine Evaluierung statt, was wesentlich schneller ist; zwischen den Formaten kann mittels ctrl-X umgeschaltet werden

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${marked} ${name} ${type} ${value2}${newline} ${empty_name} ${_default_value}${color:darkgray} -- ${min}..${max}${newline} ${empty_name} ${description}"`

- fset.look.auto_refresh

  - Beschreibung: durch Kommata getrennte Liste von Optionen, die eine Aktualisierung des fset Buffers auslösen (falls dieser geöffnet sein sollte); "*" beschreibt alle Optionen (empfohlen). Beginnt der Name einer Option hingegen mit "!" erzeugt diese Option keine Aktualisierung des Buffers. Im Optionsnamen kann der Platzhalter "*" verwendet werden (Beispiel: "*,!plugin.section.*" )

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"*"`

- fset.look.auto_unmark

  - Beschreibung: die Markierung wird automatisch für alle Optionen gelöscht, sobald eine Aktion bei einer markierten Option durchgeführt wird oder die Liste neu eingelesen wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- fset.look.condition_catch_set

  - Beschreibung: Bedingung um den /set Befehl abzufangen und die Ausgabe im fset Buffer darzustellen; folgende Variablen können verwendet werden: ${name} (Name der Option die dem /set Befehl übergeben wurde), ${count} (Anzahl der Optionen die mit /set gefunden wurden); eine leere Zeichenkette deaktiviert die Funktion; der Wert "1", nutzt immer den fset Buffer für die Ausgabe des /set Befehls

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${count} >= 1"`

- fset.look.export_help_default

  - Beschreibung: erstellt standardmäßig eine Hilfe für jede exportierte Option (dies kann mit dem Argumenten "-help" und "-nohelp" überschrieben werden wenn man den Befehl /fset -export nutzt)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- fset.look.format_number

  - Beschreibung: Nummer welches Format genutzt werden soll um Optionen anzuzeigen; diese Option wird dynamisch geändert indem man ctrl-X im fset Buffer nutzt

  - Typ: integer

  - Werte: 1 .. 2

  - Standardwert: `1`

- fset.look.marked_string

  - Beschreibung: Zeichenkette welche dargestellt wird wenn eine Option markiert wurde (um eine Aktion auf mehrere Optionen durchzuführen)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"*"`

- fset.look.scroll_horizontal

  - Beschreibung: links/rechts im fset Buffer scrollen (prozentual zur Breite)

  - Typ: integer

  - Werte: 1 .. 100

  - Standardwert: `10`

- fset.look.show_plugins_desc

  - Beschreibung: zeigt die zusätzlichen Optionen von Erweiterung an, die für die Beschreibung zuständig sind (plugins.desc.*)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- fset.look.sort

  - Beschreibung: durch Kommata getrennte Liste von Feldern um die Optionen zu sortieren (siehe /help fset um eine Auflistung der Felder zu erhalten); wird das "-" Zeichen vor einem Feld angewendet, wird die Ausgabe umgekehrt, um bei einem Vergleich nicht zwischen Groß- und Kleinschreibung zu unterscheiden wird das Zeichen "~" verwendet; Beispiel: "-~name" sortiert die Optionsnamen in umgekehrter Reihenfolge und es wird dabei nicht zwischen Groß-und Kleinschreibung unterschieden

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"~name"`

- fset.look.unmarked_string

  - Beschreibung: Zeichen welches angezeigt wird sofern eine Option nicht markiert ist

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `" "`

- fset.look.use_color_value

  - Beschreibung: Farbe die genutzt wird um Werte für Farboptionen darzustellen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- fset.look.use_keys

  - Beschreibung: nutzt die alt+X Tasten im fset Buffer um Aktionen durchzuführen; wenn deaktiviert sind nur Eingaben in der Eingabezeile erlaubt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- fset.look.use_mute

  - Beschreibung: nutzt /mute Befehl wenn eine Option geändert wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

### 7.2. Farben

#### 7.2.1. Basisfarben

Basisfarben in WeeChat sind:

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ß

#### 7.2.2. erweiterte Farbpalette

WeeChat belegt die Farbpaare dynamisch, sobald die Farbe genutzt werden sollte. 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 `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 darzustellen:

    /set weechat.color.chat_time 214

oder falls man den Hintergrund der Statusbar in einm sehr dunklen Grün haben möchte:

    /set weechat.bar.status.color_bg 22

#### 7.2.3. Alias

Man kann einer Farbe einen Alias zuordnen um diesen Alias anstelle einer Zahl 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

#### 7.2.4. Attribute

Er ist möglich einer Farbe ein Attribut hinzuzufügen. Dazu wird dem Farbnamen oder der Farbnummer ein- oder mehrere Attribute vorangestellt.

- `*` : fett

- `!` : invertierte Darstellung

- `/` : kursiven

- `_` : unterstrichen

- `|` : behält Attribut bei: fett, invertierte Darstellung, Unterstrichen wird beim Farbwechsel nicht zurückgesetzt

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 Statusbar 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

### 7.3. 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

#### 7.3.1. 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-Channel (oder in einem privaten Buffer) zu ändern wird der selbe Befehl im entsprechenden Buffer genutzt.

Um die Zeichenkodierung für alle Channels 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.*

#### 7.3.2. Fehlersuche

sollten Probleme bei der Zeichensatzdarstellung auftreten dann werfen Sie bitte einen Blick in die WeeChat FAQ / Charset.

#### 7.3.3. Befehle

- `charset`: Ändert den Zeichensatz für aktuellen Buffer

    /charset  decode|encode <charset>
              reset

     decode: ändere Zeichensatz zum dekodieren
     encode: ändere Zeichensatz zum kodieren
    charset: wähle neuen Zeichensatz für aktuellen Buffer
      reset: setze im aktuellen Buffer den Zeichensatz zurück

#### 7.3.4. Optionen

Sektionen in Datei charset.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`default` | `/set charset.default.*` | Vorgegebener Zeichensatz zum De-/kodieren.
`decode` | `/charset decode /set charset.decode.*` | Zeichensatz zum dekodieren (Optionen können in Sektion hinzugefügt/entfernt werden).
`encode` | `/charset encode /set charset.encode.*` | Zeichensatz zum kodieren (Optionen können in Sektion hinzugefügt/entfernt werden).

Optionen:

- charset.default.decode

  - Beschreibung: globale Zeichendekodierung: Zeichendekodierung die für eingehende Nachrichten genutzt werden soll, falls diese nicht UTF-8 gültig ist

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"iso-8859-1"`

- charset.default.encode

  - Beschreibung: globale Zeichenkodierung: Zeichenkodierung die für ausgehende Nachrichten genutzt werden soll (sollte keine Zeichenkodierung angegeben werden, wird UTF-8 verwendet, da WeeChat UTF-8 zur internen Kodierung nutzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

### 7.4. Benachrichtigungsstufen

#### 7.4.1. 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: weechat.look.buffer_notify_default, Der Standardwert ist all.

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 Channel "#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

#### 7.4.2. 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 set hotlist_max_level_nicks_add joe:2,mike:2

| Die Buffer-Eigenschaft "hotlist_max_level_nicks" ist keine permanente Einstellung und wird nicht in der Konfigurationsdatei gesichert. + Um diese Einstellung persistent zu machen benötigt man das Skript buffer_autoset.py: Um das Skript zu installieren `/script install buffer_autoset.py` und um eine Hilfe zu erhalten wie man es nutzt: `/help buffer_autoset`.

### 7.5. Highlights

#### 7.5.1. Worte als Highlights hinzufügen

Standardmäßig werden in WeeChat alle Nachrichten von anderen Personen als highlight deklariert wenn diese den eigenen Nick beinhalten, deshalb ist ein highlight abhängig vom jeweiligen Buffer (ein Nick kann in je nach Buffer unterschiedlich sein)

Es können weitere Wörter zu den highlights hinzugefügt werden, mit der Option 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: 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: weechat.look.word_chars_highlight.

#### 7.5.2. 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: 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*"

#### 7.5.3. 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 set highlight_regex .*

| Die Buffer-Eigenschaft "highlight_regex" ist keine permanente Einstellung und wird nicht in der Konfigurationsdatei gesichert. + Um diese Einstellung persistent zu machen benötigt man das Skript buffer_autoset.py: Um das Skript zu installieren `/script install buffer_autoset.py` und um eine Hilfe zu erhalten wie man es nutzt: `/help buffer_autoset`.

### 7.6. 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.

#### 7.6.1. 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 Channel 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 Channel auf "3" wird WeeChat alle Nachrichten protokollieren, ausgenommen join/part/quit Nachrichten.

weitere Beispiele:

- Level 3 für IRC Channel #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 Channels auf dem Server libera nutzen:

    /set logger.level.irc.libera 3

- Level 2 für alle IRC Buffers nutzen:

    /set logger.level.irc 2

#### 7.6.2. 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").

##### 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
        ...

##### Protokolldateien nach Server und Channel

Soll für jeden IRC Server ein Verzeichnis erstellt werden mit jeweils einer Protokolldatei für jeden Channel:

    /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
            ...

#### 7.6.3. Befehle

- `logger`: Konfiguration für "logger" Erweiterung (dient zum protokollieren der Buffer)

    /logger  list
             set <level>
             flush
             disable

       list: zeigt von allen geöffneten Buffern den Status der Protokollierung an
        set: legt den Level fest, nach dem der aktuelle Buffer protokolliert werden soll
      level: legt fest, welche Nachrichten protokolliert werden sollen (0 = nichts protokollieren, 1 = nur die wichtigsten Nachrichten protokollieren .. 9 = alle Nachrichten werden protokolliert)
      flush: sichert alle Protokolle umgehend
    disable: die Protokollierung wird für den aktuellen Buffer deaktiviert (der Level wird auf 0 gestellt)

    Die Einstellungen "logger.level.*" und "logger.mask.*" können genutzt werden um den Level der Protokollierung festzulegen und um eine Maske für einen oder mehrere Buffer zu definieren.

    Level der Protokollierung, die die IRC Erweiterung unterstützt:
      1: Nachrichten von Usern (private und öffentliche Nachrichten), notice (Server und Kanal)
      2: Wechsel von Nicks (/nick)
      3: Nachrichten vom Server
      4: join/part/quit Nachrichten
      9: alle Nachrichten

    Beispiele:
      Stellt den Level für den aktuellen Buffer auf 5 ein:
        /logger set 5
      Die Protokollierung für den aktuellen Buffer wird ausgeschaltet:
        /logger disable
      Stellt den Level für alle IRC-Buffer auf 3 ein:
        /set logger.level.irc 3
      Die Protokollierung, für den WeeChat Haupt-Buffer, wird deaktiviert:
        /set logger.level.core.weechat 0
      Für jeden IRC-Server wird ein separates Verzeichnis erstellt und darin eine eigene Protokoll-Datei, für jeden Kanal:
        /set logger.mask.irc "$server/$channel.weechatlog"

#### 7.6.4. Optionen

Sektionen in Datei logger.conf:

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:

- logger.color.backlog_end

  - Beschreibung: Farbe für die letzte Zeile im Verlaufsspeicher

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- logger.color.backlog_line

  - Beschreibung: Farbe der Zeilen des Verlaufspeichers; wird nur dann angewandt, wenn die Option logger.file.color_lines = off ist

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- logger.file.auto_log

  - Beschreibung: speichert automatisch den Inhalt eines Buffers in eine Datei (sofern das Protokollieren für den Buffer nicht deaktiviert sein sollte)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- logger.file.color_lines

  - Beschreibung: Nutze ANSI-Farbcodes für die in Logdateien geschriebenen Zeilen und zeige die Zeilen aus dem Verlaufspeicher in diesen Farben an

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- logger.file.flush_delay

  - Beschreibung: Zeit, in Sekunden, die verstreicht bis eine Protokolldatei gesichert wird (0 = Protokolldatei wird unmittelbar gesichert, nachdem eine neue Zeile dargestellt wurde)

  - Typ: integer

  - Werte: 0 .. 3600

  - Standardwert: `120`

- logger.file.fsync

  - Beschreibung: es wird fsync verwendet um die Protokolldateien mit dem Datenträger zu synchronisieren (siehe man fsync); dies verlangsamt das Sichern der Daten, soll aber zum Beispiel bei einem Stromausfall dafür sorgen, dass keine Daten verloren gehen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- logger.file.info_lines

  - Beschreibung: fügt eine Information in die Protokoll-Datei ein, wenn die Protokollierung gestartet oder beendet wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- logger.file.mask

  - Beschreibung: Standardmaske für Protokolldateien (Format: "Verzeichnis/zur/Datei" oder "Datei", ohne ein führendes "/", da die "Verzeichnis" Einstellung genutzt wird um vollständige Verzeichnisstrukturen zu erstellen); lokale Buffer Variablen und Datumsspezifikationen (siehe: man strftime) sind zulässig (es sollten aber nur solche Variablen genutzt werden die auf alle Buffer angewendet werden können. Zum Beispiel sollten NICHT die Variablen $server oder $channel genutzt werden)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"$plugin.$name.weechatlog"`

- logger.file.name_lower_case

  - Beschreibung: Protokolldateien werden ausschließlich in Kleinschreibung erstellt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- logger.file.nick_prefix

  - Beschreibung: Zeichenkette, die dem Nick vorangestellt werden soll. Beispiel: "<"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- logger.file.nick_suffix

  - Beschreibung: Zeichenkette, die nach dem Nick eingefügt werden soll. Beispiel: ">"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- logger.file.path

  - Beschreibung: Pfad für WeeChat-Protokolldateien; Datumsangaben sind zulässig (siehe man strftime) (Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${weechat_data_dir}/logs"`

- logger.file.replacement_char

  - Beschreibung: Ersatzzeichen für Dateinamen, falls der Dateiname Sonderzeichen beinhaltet (z.B. das Trennzeichen bei Verzeichnissen "/")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"_"`

- logger.file.time_format

  - Beschreibung: Zeitstempel in Protokoll-Datei nutzen (siehe man strftime, welche Platzhalter für das Datum und die Uhrzeit verwendet werden)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%Y-%m-%d %H:%M:%S"`

- logger.look.backlog

  - Beschreibung: maximale Anzahl der letzten Zeilen die aus der Protokolldatei dargestellt werden sollen, sobald ein Buffer geöffnet wird (0 = kein Darstellung)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `20`

- logger.look.backlog_conditions

  - Beschreibung: Bedingungen um die Protokolldatei anzuzeigen (Hinweis: Der Inhalt ist evaluiert, siehe /help eval); wird kein Wert angegeben, wird die Protokolldatei bei allen Buffern angezeigt ; Beispiel: um nur bei privaten Buffern die Protokolldatei anzuzeigen: "${type} == private"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

### 7.7. Mausunterstützung

WeeChat unterstützt Maustasten als auch Mausgesten. Dies funktioniert sowohl im lokalen Terminal wie auch über eine Remote Verbindung via SSH.

#### 7.7.1. 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 `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 `Alt`+`%` die Mausunterstützung für 10 Sekunden deaktiviert werden:

    /key bind meta-% /mouse toggle 10

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 `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 `Alt` anstelle von `Shift` verwendet werden).

| Sollten Probleme bei der Mausunterstützung auftreten, dann sollte Bitte die WeeChat FAQ / Mausunterstützung.

#### 7.7.2. Befehle einem Maus-Ereignis zuweisen

Es gibt eine Anzahl von Maus-Ereignissen, die standardmäßig durch WeeChat definiert sind (siehe 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 /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 Modifiers:

Modifier | Beschreibung
--- | ---
`ctrl` | Taste `Ctrl`
`alt` | Taste `Alt`
`ctrl-alt` | Taste `Ctrl` + `Alt`

Liste der Maustasten/Mausrad:

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 …​ button9` | 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):

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):

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`

- `ctrl-alt-wheeldown`

| 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.

| 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.

### 7.8. 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.

#### 7.8.1. 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 Channel:

    /spell setdict fr

Um einer Gruppe von Buffern das selbe Wörterbuch zuzuordnen, zum Beispiel das deutsche Wörterbuch für alle Channels auf dem libera IRC Server:

    /set spell.dict.irc.libera de

Für weitere Informationen, siehe den Befehl /spell.

#### 7.8.2. 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:

    $ aspell config

Um zum Beispiel die Option "ignore-case" einzuschalten:

    /set spell.option.ignore-case "true"

#### 7.8.3. 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 █                                                                │
    └─────────────────────────────────────────────────────────────────────────────────┘

#### 7.8.4. Befehle

- `spell`: Konfiguration für spell-Erweiterung

    /spell  enable|disable|toggle
            listdict
            setdict <dict>[,<dict>...]
            deldict
            addword [<dict>] <word>

      enable: Rechtschreibprüfung wird aktiviert
     disable: Rechtschreibprüfung wird deaktiviert
      toggle: Funktionalität der Rechtschreibprüfung umschalten
    listdict: die, auf dem System, installierten Wörterbücher werden aufgelistet
     setdict: Wörterbuch für den aktuellen Buffer einstellen (mehrere Wörterbücher müssen durch Kommata getrennt werden)
     deldict: Wörterbuch für den aktuellen Buffer entfernen
     addword: fügt ein Wort in das persönliche Wörterbuch hinzu

    Eingaben die mit '/' beginnen werden nicht überprüft, davon ausgenommen sind einige Befehle (siehe /set spell.check.commands).

    Um die Rechtschreibprüfung auf allen Buffer anzuwenden sollte die Einstellung "default_dict" genutzt und die Rechtschreibprüfung aktiviert werden:
      /set spell.check.default_dict "de_DE-neu"
      /spell enable

    Um sich eine Liste von Vorschlägen in einer Bar anzeigen zu lassen nutzt man das Item "spell_suggest".

    Die Standardtastaturbelegung zum Umschalten der Rechtschreibprüfung lautet alt-s.

#### 7.8.5. Optionen

Sektionen in Datei spell.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`color` | `/set spell.color.*` | Farben.
`check` | `/set spell.check.*` | Optionen um Einstellungen an der Rechtschreibprüfung vorzunehmen.
`dict` | `/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.*` | Optionen für Rechtschreibprüfung (Optionen können in Sektion hinzugefügt/entfernt werden).

Optionen:

- spell.check.commands

  - Beschreibung: durch Kommata getrennte Liste der Befehle, für die eine Rechtschreibprüfung gelten soll (Rechtschreibprüfung ist für andere Befehle deaktiviert)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"`

- spell.check.default_dict

  - Beschreibung: Voreingestelltes Wörterbuch (oder durch Kommata getrennte Liste der Wörterbücher) welche(s) genutzt werden soll, sofern kein Wörterbuch für einen Buffer definiert wurde (wird kein Wörterbuch angegeben dann ist die Rechtschreibprüfung in allen Buffer deaktiviert, außer es wird für einen Buffer explizit ein Wörterbuch angegeben)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- spell.check.during_search

  - Beschreibung: Überprüfe Wörter während im Buffer nach einem Text gesucht wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- spell.check.enabled

  - Beschreibung: Rechtschreibprüfung wird für die Eingabezeile aktiviert

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- spell.check.real_time

  - Beschreibung: Eine Korrektur findet während der Texteingabe statt (da dies langsamer ist, ist diese Funktion standardmäßig deaktiviert. Wörter werden erst überprüft sobald ein Leerzeichen dem vorangegangenen Wort folgt)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- spell.check.suggestions

  - Beschreibung: legt die Anzahl an Vorschlägen, für ein falsch geschriebenes Wort, fest. Die Vorschläge werden mittels der Bar-Item "spell_suggest", für die jeweilige(n) Sprache(n), die für den Buffer augewählt wurden, angezeigt (-1 = deaktiviert die Funktion, 0 = zeigt alle verfügbaren Vorschläge, für alle ausgewählten Sprachen, an)

  - Typ: integer

  - Werte: -1 .. 2147483647

  - Standardwert: `-1`

- spell.check.word_min_length

  - Beschreibung: Mindestlänge für ein Wort, welches auf Rechtschreibung überprüft werden soll (bei 0 werden alle Wörter überprüft)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `2`

- spell.color.misspelled

  - Beschreibung: Farbe in der ein Wort mit einem Rechtschreibfehler hervorgehoben werden soll (Eingabezeile)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightred`

- spell.color.suggestion

  - Beschreibung: Textfarbe für die Vorschläge der Rechtsschreibkorrektur in der Bar-Item "spell_suggest"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- spell.color.suggestion_delimiter_dict

  - Beschreibung: Textfarbe für das Trennzeichen welches zwischen zwei Wörterbüchern dargestellt wird, im Bar-Item "spell_suggest"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- spell.color.suggestion_delimiter_word

  - Beschreibung: Textfarbe für das Trennzeichen zwischen zwei Wörtern in der Bar-Item "spell_suggest"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- spell.look.suggestion_delimiter_dict

  - Beschreibung: Trennzeichen, im Bar-Item "spell_suggest", welches zwischen zwei Wörterbücher dargestellt wird

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `" / "`

- spell.look.suggestion_delimiter_word

  - Beschreibung: Trennzeichen, im Bar-Item "spell_suggest", welches zwischen zwei Wörtern dargestellt wird

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `","`

### 7.9. 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:

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 /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 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 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 filling für weitere Informationen).
`conditions` | string | Bedingungen, wann die Bar angezeigt wird (siehe conditions für weitere Informationen).

#### 7.9.1. 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":

    ┌───────────────────────────────────────────────────────────────────────────┐
    │[12:55] 3:irc/libera.#weechat                                              │
    └───────────────────────────────────────────────────────────────────────────┘

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"

#### 7.9.2. 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 ▲

#### 7.9.3. 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 /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)"

### 7.10. sensible Daten

#### 7.10.1. 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

##### 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.

##### Verschlüsselung

Die Daten werden in drei Schritten verschlüsselt:

1. erstellt einen Schlüssel anhand der Passphrase (optional mit Salt).

2. errechnet einen Hash über die Daten die verschlüsselt werden soll.

3. verschlüsselt den Hash + Daten (Ausgabe ist: Salt + Hash/Daten verschlüsselt)

| Der Cipher Block Modus ist CFB.

Das Ergebnis wird als hexadezimale Zeichenkette in sec.conf gesichert. Zum Beispiel:

    [data]
    __passphrase__ = on
    libera = "53B1C86FCDA28FC122A95B0456ABD79B5AB74654F21C3D099A6CCA8173239EEA59533A1D83011251F96778AC3F5166A394"

##### Entschlüsselung

Die Entschlüsselung findet in drei Schritten statt:

1. erstellt einen Schlüssel mittels Salt und Passphrase.

2. entschlüsselt Hash + Daten.

3. überprüft ob der entschlüsselte Hash mit dem Hash der entschlüsselten Daten übereinstimmt.

#### 7.10.2. 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 `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 aller unterstützten Optionen, siehe `/help secure`.

Um z.B. das oben eingestellte libera Passwort für eine SASL Authentifizierung zu nutzen:

    /set irc.server.libera.sasl_password "${sec.data.libera}"

### 7.11. 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:

Alias | Befehl | Vervollständigung
--- | --- | ---
`/AAWAY` | `/allserv /away` | -
`/ANICK` | `/allserv /nick` | -
`/BEEP` | `/print -beep` | -
`/BYE` | `/quit` | -
`/C` | `/buffer clear` | -
`/CL` | `/buffer clear` | -
`/CLOSE` | `/buffer close` | -
`/CHAT` | `/dcc chat` | -
`/EXIT` | `/quit` | -
`/IG` | `/ignore` | -
`/J` | `/join` | -
`/K` | `/kick` | -
`/KB` | `/kickban` | -
`/LEAVE` | `/part` | -
`/M` | `/msg` | -
`/MUB` | `/unban *` | -
`/MSGBUF` | `/command -buffer $1 * /input send $2-` | %(buffers_plugins_names)
`/N` | `/names` | -
`/Q` | `/query` | -
`/REDRAW` | `/window refresh` | -
`/SAY` | `/msg *` | -
`/SIGNOFF` | `/quit` | -
`/T` | `/topic` | -
`/UB` | `/unban` | -
`/UMODE` | `/mode $nick` | -
`/V` | `/command core version` | -
`/W` | `/who` | -
`/WC` | `/window close` | -
`/WI` | `/whois` | -
`/WII` | `/whois $1 $1` | -
`/WM` | `/window merge` | -
`/WW` | `/whowas` | -

#### 7.11.1. Befehle

- `alias`: auflisten, hinzufügen oder entfernen von Alternativnamen

    /alias  list [<alias>]
            add <alias> [<command>[;<command>...]]
            addcompletion <completion> <alias> [<command>[;<command>...]]
            del <alias> [<alias>...]

             list: listet Alternativbefehle auf (ohne Angabe von Argumenten wird diese Liste dargestellt)
              add: fügt einen Alternativbefehl hinzu
    addcompletion: fügt einen Alternativbefehl, mit einer benutzerdefinierten Vervollständigung, hinzu
              del: entfernt einen Alternativbefehl
       completion: Vervollständigung für Alternativbefehl: standardmäßig wird die Vervollständigung auf den Zielbefehl angewendet
                   Hinweis: Mit der Variablen "%%command" kann eine Vervollständigung eines vorhandenen Befehls durchgeführt werden
            alias: Name des Alternativbefehls
          command: Name des zuzuordnenden Befehls, inklusive Argumenten (mehrere Befehle können durch Semikolon getrennt werden)

    Anmerkung: Im Befehl können Variablen genutzt werden, die dann durch den entsprechenden Wert ersetzt werden:
            $n: Argument 'n' (zwischen 1 und 9)
           $-m: Argumente von 1 bis 'm'
           $n-: Argumente von 'n' bis zum letzten Argument
          $n-m: Argumente von 'n' bis 'm'
            $*: alle Argumente
            $~: letztes Argument
          $var: "var" ist eine lokale Variable für den jeweiligen Buffer (siehe /buffer listvar)
                Beispiel: $nick, $channel, $server, $plugin, $name

    Beispiele:
      Alternativbefehl "/split" wird anlegt um ein Fenster horizontal zu teilen:
        /alias add split /window splith
      Alternativbefehl "/hallo" wird angelegt um in allen Channels, außer im #weechat Channel, den Text "Hallo" auszugeben:
        /alias add hallo /allchan -exclude=#weechat hallo
      Alternativbefehl "/forcejoin" wird angelegt um den IRC Befehl "forcejoin" mit einer Vervollständigung von /sajoin auszuführen:
        /alias addcompletion %%sajoin forcejoin /quote forcejoin

#### 7.11.2. Optionen

Sektionen in Datei alias.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`cmd` | `/alias /set alias.cmd.*` | Befehle für Alias.
`completion` | `/alias /set alias.completion.*` | Vervollständigung für Alias.

### 7.12. Befehle und Optionen

#### 7.12.1. WeeChat Befehle

- `away`: Abwesenheitsstatus setzen oder entfernen

    /away  [-all] [<message>]

       -all: Abwesenheitsstatus auf allen verbundenen Server setzen oder entfernen
    message: Abwesenheitsnachricht (ohne Angabe einer Nachricht wird der Abwesenheitszustand entfernt)

- `bar`: Infobars verwalten

    /bar  list|listfull|listitems
          add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
          default [input|title|status|nicklist]
          del <name>|-all
          set <name> <option> <value>
          hide|show|toggle <name>
          scroll <name> <window> <scroll_value>

             list: zeigt alle Infobars an
         listfull: zeigt eine detaillierte Liste aller Infobars an (ausführlich)
        listitems: zeigt alle Items an, die in den Infobars genutzt werden
              add: füge eine neue Infobar hinzu
             name: Name der Infobar (muss einmalig sein)
             type:   root: außerhalb eines Fensters,
                   window: innerhalb eines Fensters, mit optionalen Bedingungen (siehe unten)
       conditions: Bedingungen für eine Infobar:
                     active: in einem aktiven Fenster
                   inactive: in einem inaktiven Fenster
                   nicklist: in Fenstern mit einer Benutzerliste
                   weitere mögliche Bedingungen: siehe /help weechat.bar.xxx.conditions und /help eval
                   ohne Angabe von Bedingungen wird die Infobar immer angezeigt
         position: bottom (unten), top (oben), left (links) oder right (rechts)
             size: Größe der Infobar (in Zeichen)
        separator: 1 um eine Trennlinien zu zeichnen, bei 0 oder ohne eine Angabe, wird keine Trennlinien gezeichnet
        item1,...: Items die in der Infobar genutzt werden sollen (Items können durch Kommata oder Leerzeichen getrennt werden ("+" (verbindet Items))
          default: erstellt standardisierte Infobars
              del: entfernt eine Infobar (alle Infobars können mit dem Argument "-all" entfernt werden).
              set: setzt einen Wert für Infobar
           option: Option, die verändert werden soll (für eine Liste aller möglichen Optionen bitte folgenden Befehl nutzen: /set weechat.bar.<barname>.*)
            value: neuer Wert für Option
             hide: Infobar wird ausgeblendet
             show: zeigt eine ausgeblendete Infobar an
           toggle: zeigt/versteckt eine Infobar
           scroll: scrollt Infobar hoch/runter
           window: Nummer des Fensters (nutze '*' für aktuelles Fenster oder für die Root-Bars)
     scroll_value: Werte für Scroll-Funktion: 'x' oder 'y' (optional), gefolgt von '+', '-', 'b' (Beginn) oder 'e' (Ende), Wert (für +/-), und optional % (zum scrollen der Breite/Höhe in %, ansonsten wird dieser Wert als Anzahl der Zeichen interpretiert um die gescrollt werden soll)

    Beispiele:
      erstellt eine Infobar mit den Items: time, buffer number + name, und Vervollständigung:
        /bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
      versteckt die Infobar (meinebar):
        /bar hide meinebar
      scrollt die Benutzerliste im aktuellen Buffer um 10 Zeilen nach unten:
        /bar scroll nicklist * y+10
      scrollt zum Ende der Nicklist im aktuellen Buffer:
        /bar scroll nicklist * ye

- `buffer`: Buffer verwalten

    /buffer  list
             add [-free] [-switch] <name>
             clear [<number>|<name>|-merged|-all [<number>|<name>...]]
             move <number>|-|+
             swap <number1>|<name1> [<number2>|<name2>]
             cycle <number>|<name> [<number>|<name>...]
             merge <number>|<name>
             unmerge [<number>|-all]
             hide [<number>|<name>|-all [<number>|<name>...]]
             unhide [<number>|<name>|-all [<number>|<name>...]]
             renumber [<number1> [<number2> [<start>]]]
             close [<n1>[-<n2>]|<name>...]
             notify [<level>]
             listvar [<number>|<name>]
             setvar <name> [<value>]
             delvar <name>
             set <property> [<value>]
             get <property>
             <number>|-|+|<name>

        list: alle geöffneten Buffer werden aufgelistet (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
         add: öffnet einen neuen Buffer (dieser kann mit "/buffer close" oder "q" in der Eingabezeile, beendet werden)
       clear: leert den Inhalt des Buffers (entweder durch Angabe der entsprechenden Nummer des Buffers oder "-merged " für zusammengefügte Buffer oder "-all" für alle Buffer. Ohne Angabe eines Arguments wird der aktuelle Buffer gelöscht)
        move: Buffer in der Liste verschieben (kann auch relativ sein, z.B. -1); "-" = auf erste Position verschieben, "+" = auf letzte Position + 1 verschieben
        swap: tauscht zwei Buffer miteinander aus (bei Angabe von nur einem Buffer (Buffernummer/-name), wird der aktuelle Buffer mit dem angegebenen Buffer getauscht)
       cycle: springt in einer Schleife von einem Buffer zum nächsten, die in einer Liste angegeben werden
       merge: fügt den aktuellen Buffer mit einem anderen Buffer zusammen (bei einem Chat-Buffer werden zwei Buffer zusammengefügt
             (Bei der Standardtastenbelegung wird mittels "CTRL-x" zwischen zusammengefügten Buffern umgeschaltet)
     unmerge: trennt Buffer wieder voneinander, falls zwei Buffer die selbe Nummer teilen
        hide: versteckt einen Buffer
      unhide: macht Buffer wieder sichtbar
    renumber: Buffer werden umnummeriert (Einstellung weechat.look.buffer_auto_renumber muss deaktiviert sein)
       close: Buffer schließen (Nummer oder Bereich ist optional)
      notify: Benachrichtigungsstufe für den aktuellen Buffer anzeigen oder einstellen. Folgende Möglichkeiten bestimmen den Grad der Benachrichtigung und ob der Buffer in der Hotlist angezeigt wird:
                none: keine Benachrichtigung
           highlight: Benachrichtigung bei hervorgehobenen Nachrichten (Highlights)
             message: Benachrichtigung bei Nachrichten von Usern + Highlights
                 all: Benachrichtigung bei allen Nachrichten
               reset: Benachrichtigung auf Standardwert zurück setzen (all)
     listvar: zeigt die lokalen Variablen für den aktuellen Buffer an
      setvar: legt eine lokale Variable für den aktuellen Buffer an
      delvar: löscht eine lokale Variable des aktuellen Buffers
         set: setzt eine Eigenschaft für den aktuellen Buffer
         get: zeigt eine Eigenschaft für den aktuellen Buffer an
      number: wechselt von einem Buffer zu einem anderen, mögliche Optionen:
              '+': relativer Sprung um 'n'-Buffer
              '-': relativer Sprung, um 'n'-Buffer
              '*': wechselt zum Buffer mit der Nummer 'n'; nutzt die interne Einstellung "weechat.look.jump_current_to_previous_buffer"
           -: springt zum ersten Buffer
           +: springt zum letzten Buffer
        name: wechselt zum Buffer mit dem angegebenen Namen (Name muss nicht vollständig sein!)

    Beispiele:
      leert den aktuellen Buffer:
        /buffer clear
      verschiebt Buffer auf Position 5:
        /buffer move 5
      tauscht Buffer 1 und 3:
        /buffer swap 1 3
      tauscht Buffer #weechat und den aktuellen Buffer:
        /buffer swap #weechat
      springt in einer Schleife zu den Buffern #chan1, #chan2, #chan3:
        /buffer cycle #chan1 #chan2 #chan3
      verbindet Buffer mit dem Core-Buffer:
        /buffer merge 1
      verbindet Buffer mit #weechat buffer:
        /buffer merge #weechat
      trennt Buffer voneinander:
        /buffer unmerge
      schließt aktuellen Buffer:
        /buffer close
      schließt Buffer 5 bis 7:
        /buffer close 5-7
      springt zum Buffer: #weechat:
        /buffer #weechat
      springt zum nächsten Buffer:
        /buffer +1
      springt zum letzten Buffer:
        /buffer +

- `color`: definiert Farbaliase und stellt eine Palette der möglichen Farben dar

    /color  alias <color> <name>
            unalias <color>
            reset
            term2rgb <color>
            rgb2term <rgb> [<limit>]
            -o

      alias: weist einer Farbzahl einen Namen zu
    unalias: entfernt einen Namen
      color: Farbnummer (>= 0, maximale Anzahl ist abhängig vom Terminal, üblicherweise 63 oder 255 Farben)
       name: Alternativname für eine Farbe (zum Beispiel: "orange")
      reset: setzt alle Farbpaarungen zurück (nützlich falls keine Farbpaarung mehr verfügbar sein sollte und die automatische Reset-Option deaktiviert ist, siehe Einstellung: "weechat.look.color_pairs_auto_reset")
    term2rgb: konvertiert eine Terminalfarbe (0-255) in eine RGB Farbe
    rgb2term: konvertiert eine RGB Farbe in eine Terminalfarbe (0-255)
       limit: Anzahl an Farben die aus der Terminalpalette genutzt werden sollen (beginnend von 0); Standardwert: 256
         -o: sendet Terminal-/Farbinformationen in den aktuellen Buffer

    Ohne Angabe von Argumenten wird in einem separaten Buffer die darstellbare Farbpalette angezeigt.

    Beispiele:
      der Farbe 214 wird das Alias "orange" zugeordnet:
        /color alias 214 orange
      löscht die Farbe 214:
        /color unalias 214

- `command`: führe explizit einen WeeChat Befehl oder eine Erweiterung aus

    /command  [-buffer <name>] <plugin> <command>

    -buffer: Befehl wird in diesem Buffer ausgeführt
     plugin: Befehl der angegeben Erweiterung wird ausgeführt; 'core' für einen internen WeeChat Befehl, '*' automatisierte Auswahl (entscheidend ist der Buffer in welchem der Befehl ausgeführt wird)
    command: auszuführender Befehl (es wird automatisch ein '/' vorangestellt, falls dieser nicht angegeben wurde)

- `cursor`: Cursor kann frei auf dem Bildschirm bewegt werden, um Aktionen in bestimmten Bildschirmbereichen auszuführen

    /cursor  go chat|<bar>|<x>,<y>
             move up|down|left|right|area_up|area_down|area_left|area_right
             stop

      go: setzt den Cursor in den Chat Bereich, in eine Bar (Name der Bar muss angegeben werden) oder auf die Koordinaten "x,y"
    move: Cursor wird in die entsprechende Richtung bewegt
    stop: beendet den Cursor-Modus

    Ohne Angabe von Argumenten wird der Cursor-Modus umgeschaltet.

    Ist die Mausfunktion aktiviert (siehe /help mouse), startet man den Cursor-Modus mit der mittleren Maustaste und positioniert den Cursor auf diesen Punkt.

    Standardtastenbefehle im Chatbereich:
      m  zitiere Nachricht
      q  zitiere Präfix + Nachricht
      Q  zitiere Zeit + Präfix + Nachricht

    Standardtastenbefehle in Nickliste:
      b  banne Nick (/ban)
      k  kicke Nick (/kick)
      K  kicke und banne Nick (/kickban)
      q  öffne private Unterhaltung mit Nick (/query)
      w  hole Informationen über Anwender (/whois)

    weitere Standardtasten im Cursor-Modus:
      Pfeiltasten      bewege Cursor
      alt+Pfeiltasten  bewege Cursor zum nächsten Bereich
      enter            beendet den Cursor-Modus

    Beispiele:
      gehe zur Benutzerliste:
        /cursor go nicklist
      gehe zu den Koordinaten x=10, y=5:
        /cursor go 10,5

- `debug`: Debug-Funktionen

    /debug  list
            set <plugin> <level>
            dump [<plugin>]
            buffer|color|infolists|libs|certs|memory|tags|term|windows
            mouse|cursor [verbose]
            hdata [free]
            time <command>

         list: zeigt alle Erweiterungen mit Debuglevel an
          set: setzt den Level der Protokollierung für eine Erweiterung
       plugin: Name der Erweiterung ("core" für den WeeChat Kern)
        level: Debuglevel der Erweiterung (0 = deaktiviert Debug)
         dump: Speicherabbild in die WeeChat Protokolldatei schreiben (wie bei einem Programmabsturz)
       buffer: speichert den Bufferinhalt als hexadezimale Ausgabe in die Protokolldatei
        color: zeigt Informationen über die aktuellen Farbpaarungen an
       cursor: schaltet den debug-Modus für den Cursor-Modus ein/aus
         dirs: Verzeichnisse werden angezeigt
        hdata: zeigt Informationen zu hdata an (mittels free werden alle hdata Informationen aus dem Speicher entfernt)
        hooks: zeigt die aktiven Hooks an
    infolists: zeigt Information über die Infolists an
         libs: zeigt an welche externen Bibliotheken verwendet werden
        certs: gibt die Anzahl geladener vertrauenswürdiger Zertifizierungsstellen aus
       memory: gibt Informationen über den genutzten Speicher aus
        mouse: schaltet den debug-Modus für den Maus-Modus ein/aus
         tags: zeigt für jede einzelne Zeile die dazugehörigen Schlagwörter an
         term: zeigt Informationen über das Terminal an
      windows: zeigt die Fensterstruktur an
         time: misst die Zeit um einen Befehl auszuführen oder um einen Text in den aktuellen Buffer zu senden

- `eval`: evaluierter Ausdruck

    /eval  [-n|-s] [-d] <expression>
           [-n] [-d [-d]] -c <expression1> <operator> <expression2>

            -n: gibt das Ergebnis aus, ohne dass dieses in den Buffer gesendet wird (debug Modus)
            -s: teilt Ausdrücke, bevor sie evaluiert werden (mehrere Befehle können durch Semikolon getrennt werden)
            -d: eine Debug-Ausgabe nach Auswertung anzeigen (Nutzung von zwei -d: ausführliche Debug-Ausgabe)
            -c: Auswertung als Bedingung: nutzt Operatoren und runde Klammern, Rückgabewert als Boolean-Wert ("0" oder "1")
    expression: Ausdruck welcher verarbeitet werden soll. Variablen im Format ${variable} werden ersetzt (siehe unten); mehrere Befehle werden durch ein Semikolon voneinander getrennt
      operator: ein logischer oder vergleichender Operand:
                - logische Operanden:
                    &&  boolean "und"
                    ||  boolean "oder"
                - vergleichende Operanden:
                    ==  gleich
                    !=  ungleich
                    <=  kleiner oder gleich
                    <   kleiner
                    >=  größer oder gleich
                    >   größer
                    =~  stimmt mit regulärem POSIX Ausdruck überein
                    !~  stimmt NICHT mit regulärem POSIX Ausdruck überein
                    ==*  stimmt mit Maske überein (Platzhalter "*" ist erlaubt)
                    !!*  stimmt mit Maske NICHT überein (Platzhalter "*" ist erlaubt)
                    =*   stimmt mit Maske überein, Groß- und Kleinschreibung wird nicht beachtet (Platzhalter "*" ist erlaubt)
                    !*   stimmt mit Maske NICHT überein, Groß- und Kleinschreibung wird nicht beachtet (Platzhalter "*" ist erlaubt)
                    ==-  ist enthalten, Groß- und Kleinschreibung wird beachtet
                    !!-  ist NICHT enthalten, Groß- und Kleinschreibung wird beachtet
                    =-   ist enthalten, Groß- und Kleinschreibung wird nicht beachtet
                    !-   ist NICHT enthalten, Groß- und Kleinschreibung wird nicht beachtet

    Ein Ausdruck gilt als "wahr" sofern das Ergebnis weder NULL, nicht leer und von "0" abweichend ist.
    Für einen Vergleich werden Fließkommazahlen genutzt, insofern es sich bei beiden Ausdrücken um gültige Zahlen handelt, folgende Formate werden unterstützt:
      - Integer (Beispiele: 5, -7)
      - Fließkommazahl (Beispiele: 5.2, -7.5, 2.83e-2)
      - hexadezimale Zahl (Beispiele: 0xA3, -0xA3)
    Um einen Vergleich zwischen zwei Zeichenketten zu erzwingen, müssen die Ausdrücke in Anführungszeichen gesetzt werden, zum Beispiel:
      50 > 100      ==> 0
      "50" > "100"  ==> 1

    Einige Variablen werden im Ausdruck mittels der Formatierung ${variable} ersetzt. Mögliche Variablen sind, nach Reihenfolge ihrer Priorität:
      1. die Zeichenfolge selbst ohne Auswertung (Format: "raw:xxx")
      2. eine benutzerdefinierte Variable (Format: "name")
      3. eine evaluierte Teilzeichenkette (Format: "eval:xxx")
      4. eine evaluierte Bedingung (Format: "eval_cond:xxx")
      5. eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx")
      6. Zeichen, die in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette")
      7. eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:max,suffix,string" oder "cut:+max,suffix,string")
         oder maximale Anzahl an Zeichen die auf dem Bildschirm angezeigt werden sollen (Format: "cutscr:Max,Suffix,Zeichenkette oder "cutscr:+Max,Suffix,Zeichenkette")
      8. eine Zeichenkette umkehren (Format: "rev:xxx" oder "revscr:xxx")
      9. eine Zeichenkette wiederholen (Format: "repeat:Anzahl,Zeichenkette")
      10. Länge einer Zeichenkette (Format: "length:xxx" oder "lengthscr:xxx")
      11. Aufteilen einer Zeichenkette (Format: "split:Anzahl,Trennzeichen,Flags,xxx")
      12. Aufteilen von Shell-Argumenten (Format: "split_shell:Anzahl,xxx")
      13. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color")
      14. zum modifizieren (Format: "modifier:name,data,string")
      15. eine Info (Format: "Info:Name,Argumente", Argumente sind optional)
      16. eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx")
      17. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format")
      18. eine Umgebungsvariable (Format: "env:XXX")
      19. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr")
      20. Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx")
      21. eine zufällige ganze Zahl (Format: "random:min,max")
      22. eine übersetzte Zeichenkette (Format: "translate:xxx")
      23. eine Benutzervariable definieren (Format: "define:Name,Wert")
      24. eine Option (Format: "file.section.option")
      25. eine lokale Variable eines Buffers
      26. ein(e) hdata - Name/Variable (der Wert wird automatisch in eine Zeichenkette konvertiert), standardmäßig wird für "window" und "buffer" das aktuelle Fenster/Buffer verwendet.
    Das Format für hdata kann wie folgt aufgebaut sein:
      hdata.var1.var2...: startet mit hdata (der Pointer muss bekannt sein) und fragt eine Variable nach der anderen ab (weitere hdata können folgen)
      hdata[list].var1.var2...: startet hdata mittels einer Liste, zum Beispiel:
        ${buffer[gui_buffers].full_name}: der vollständige Name des ersten Buffers, in der verknüpften Liste aller Buffer
        ${plugin[weechat_plugins].name}: Name der ersten Erweiterung, in der verknüpften Liste aller Erweiterungen
      hdata[pointer].var1.var2...: startet hdata mittels einem Pointer, zum Beispiel:
        ${buffer[0x1234abcd].full_name}: vollständiger Name eines Buffers und des dazugehörigen Pointers (kann in triggern benutzt werden)
        ${buffer[my_pointer].full_name}: vollständiger Name des Buffers mit dem entsprechenden Pointernamen (kann in Triggern verwendet werden)
    Die vorhandenen Namen für hdata und Variablen sind in der "Anleitung für API Erweiterung", Bereich "weechat_hdata_get". beschrieben

    Beispiele (einfache Zeichenketten):
      /eval -n ${raw:${info:version}}                ==> ${info:version}
      /eval -n ${eval_cond:${window.win_width}>100}  ==> 1
      /eval -n ${info:version}                       ==> 0.4.3
      /eval -n ${env:HOME}                           ==> /home/user
      /eval -n ${weechat.look.scroll_amount}         ==> 3
      /eval -n ${sec.data.password}                  ==> geheim
      /eval -n ${window}                             ==> 0x2549aa0
      /eval -n ${window.buffer}                      ==> 0x2549320
      /eval -n ${window.buffer.full_name}            ==> core.weechat
      /eval -n ${window.buffer.number}               ==> 1
      /eval -n ${\t}                                 ==> <tab>
      /eval -n ${hide:-,${relay.network.password}}   ==> --------
      /eval -n ${cut:3,+,test}                       ==> tes+
      /eval -n ${cut:+3,+,test}                      ==> te+
      /eval -n ${date:%H:%M:%S}                      ==> 07:46:40
      /eval -n ${if:${info:term_width}>80?big:small} ==> big
      /eval -n ${rev:Hello}                          ==> olleH
      /eval -n ${repeat:5,-}                         ==> -----
      /eval -n ${length:test}                        ==> 4
      /eval -n ${split:1,,,abc,def,ghi}              ==> abc
      /eval -n ${split:-1,,,abc,def,ghi}             ==> ghi
      /eval -n ${split:count,,,abc,def,ghi}          ==> 3
      /eval -n ${split:random,,,abc,def,ghi}         ==> def
      /eval -n ${split_shell:1,"arg 1" arg2}         ==> arg 1
      /eval -n ${split_shell:-1,"arg 1" arg2}        ==> arg2
      /eval -n ${split_shell:count,"arg 1" arg2}     ==> 2
      /eval -n ${split_shell:random,"arg 1" arg2}    ==> arg2
      /eval -n ${calc:(5+2)*3}                       ==> 21
      /eval -n ${random:0,10}                        ==> 3
      /eval -n ${base_encode:64,test}                ==> dGVzdA==
      /eval -n ${base_decode:64,dGVzdA==}            ==> test
      /eval -n ${translate:Plugin}                   ==> Erweiterung
      /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8

    Beispiele (Bedingungen):
      /eval -n -c ${window.buffer.number} > 2  ==> 0
      /eval -n -c ${window.win_width} > 100    ==> 1
      /eval -n -c (8 > 12) || (5 > 2)          ==> 1
      /eval -n -c (8 > 12) && (5 > 2)          ==> 0
      /eval -n -c abcd =~ ^ABC                 ==> 1
      /eval -n -c abcd =~ (?-i)^ABC            ==> 0
      /eval -n -c abcd =~ (?-i)^abc            ==> 1
      /eval -n -c abcd !~ abc                  ==> 0
      /eval -n -c abcd =* a*d                  ==> 1
      /eval -n -c abcd =- bc                   ==> 1

- `filter`: Filterfunktion um Nachrichten in Buffern aus- oder einzublenden, dazu können Schlagwörter oder reguläre Ausdrücke verwendet werden

    /filter  list
             enable|disable|toggle [<name>|@]
             add|addreplace <name> <buffer>[,<buffer>...] <tags> <regex>
             rename <name> <new_name>
             recreate <name>
             del <name>|-all

          list: alle Filter auflisten
        enable: Filter wird aktiviert (Filter werden standardmäßig aktiviert)
       disable: Filter deaktivieren
        toggle: Filter umschalten
          name: Name des Filters ("@" = aktiviert/deaktiviert alle Filter im aktuellen Buffer)
           add: Filter hinzufügen
    addreplace: erzeugt neuen Filter oder ersetzt einen schon existierenden Filter
        rename: benennt einen Filter um
      recreate: in die Eingabezeile wird die entsprechende Filtereinstellung übernommen, um diese dann editieren zu können
           del: Filter entfernen
          -all: entfernt alle Filter
        buffer: durch Kommata getrennte Liste von Buffer in denen der Filter aktiv sein soll:
                - ist der vollständige Name eines Buffer inklusive seiner Erweiterung (Beispiel: "irc.libera.#weechat" oder "irc.server.libera")
                - "*" bedeutet, alle Buffer
                - beginnt ein Name mit '!' wird für diesen Buffer kein Filter genutzt
                - Platzhalter "*" kann verwendet werden
          tags: durch Kommata getrennte Liste von Schlagwörtern. Zum Beispiel: "irc_join,irc_part,irc_quit"
                - logisch "und": mittels "+" zwischen den Tags (zum Beispiel: "nick_toto+irc_action")
                - Platzhalter "*" kann verwendet werden
                - wird ein Tag mit '!' eingeleitet, dann muss dieser Tag NICHT in der Nachricht enthalten sein
         regex: erweiterter regulärer POSIX Ausdruck, um in einer Zeile zu suchen
                - das Präfix (z.B. Nick) wird mittels '\t' von der Nachricht getrennt. Sonderzeichen wie '|' müssen mit einer Escapesequenz : '\|' eingebunden werden)
                - wird ein regulärer Ausdruck mit '!' eingeleitet dann wird das übereinstimmende Ergebnis umgekehrt (nutze '\!' um mit '!' zu beginnen)
                - es werden zwei reguläre Ausdrücke erstellt: Der erste für den Präfix und der zweite für die eigentliche Nachricht
                - reguläre Ausdrücke unterscheiden nicht zwischen Groß- und Kleinschreibung. Um zwischen Groß- und Kleinschreibung zu unterscheiden müssen diese mit "(?-i)" eingeleitet werden.

    Mit der Tastenvoreinstellung alt+'=' kann die globale Filterfunktion (de-)aktiviert werden und alt+'-' (de-)aktiviert die Filterfunktion für den aktuellen Buffer.

    Die am häufigsten gebrauchten Schlagwörter lauten:
      no_filter, no_highlight, no_log, log0..log9 (log Level),
      notify_none, notify_message, notify_private, notify_highlight,
      self_msg, nick_xxx (xxx ist der Nickname), prefix_nick_ccc (ccc ist die Farbe mit der der Nick dargestellt wird),
      host_xxx (xxx ist der Username + Host in Nachricht),
      irc_xxx (xxx ist durch einen IRC-Befehl/-Nummer zu ersetzen, siehe /server raw oder /debug tags)
      irc_numeric, irc_error, irc_action, irc_ctcp, irc_ctcp_reply, irc_smart_filter, away_info.
    Mittels "/debug tags" kann man sich die Schlagwörter jeder einzelnen Zeile darstellen lassen.

    Beispiele:
      aktiviert den intelligenten IRC Filter für alle Buffer:
        /filter add irc_smart * irc_smart_filter *
      aktiviert den intelligenten IRC Filter für alle Buffer, außer Buffer die "#weechat" im Namen tragen:
        /filter add irc_smart *,!*#weechat* irc_smart_filter *
      filtert alle IRC join/part/quit Nachrichten:
        /filter add joinquit * irc_join,irc_part,irc_quit *
      filtert Nicks wenn diese den Channel betreten oder durch den Befehl "/names" angezeigt werden:
        /filter add nicks * irc_366 *
      filtert Nick "toto" im IRC Channel #weechat:
        /filter add toto irc.libera.#weechat nick_toto *
      filtert IRC join/action Nachrichten von Nick "toto":
        /filter add toto * nick_toto+irc_join,nick_toto+irc_action *
      filtert Zeilen die "weechat sucks" im IRC Channel #weechat enthalten:
        /filter add sucks irc.libera.#weechat * weechat sucks
      filter Zeilen die exakt "WeeChat sucks" lauten und das in allen Buffern:
        /filter add sucks2 * * (?-i)^WeeChat sucks$

- `help`: Zeigt einen Hilfstext für Befehle und Einstellungen an

    /help  -list|-listfull [<plugin> [<plugin>...]]
           <command>
           <option>

        -list: zeigt alle Befehle, nach Erweiterungen sortiert (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
    -listfull: zeigt alle Befehle mit Beschreibung, nach Erweiterung
       plugin: zeigt Befehle explizit für diese Erweiterung an
      command: Name eines Befehls
       option: Name einer Einstellung (nutze /set um Einstellungen anzeigen zu lassen)

- `history`: Zeigt den Befehlsverlauf des Buffers

    /history  clear
              <value>

    clear: löscht den Befehlsverlauf
    value: Anzahl der gewünschten Einträgen im Befehlsverlauf anzeigen

- `input`: Funktionen für die Befehlszeile

    /input  <action> [<arguments>]

    Auflistung der möglichen Aktionen:
      return: simuliert die "enter" Taste
      complete_next: vervollständigt Wort mit nächster Komplettierung
      complete_previous: vervollständigt Word mit vorheriger Komplettierung
      search_text_here: Textsuche ab aktueller Position
      search_text: Textsuche im Buffer
      search_switch_case: schaltet Groß-/Kleinschreibung ein und aus
      search_switch_regex: Wechsel des Suchmodus: einfache Textsuche/reguläre Ausdrücke
      search_switch_where: wechselt Suche in Nachricht/Präfix
      search_previous: sucht vorheriger Zeile
      search_next: sucht nächste Zeile
      search_stop_here: beendet Suche ab aktueller Position
      search_stop: suche beenden
      delete_previous_char: entfernt vorheriges Zeichen
      delete_next_char: entfernt nächstes Zeichen
      delete_previous_word: entfernt vorheriges Wort
      delete_next_word: entfernt nächstes Wort
      delete_beginning_of_line: entfernt alle Zeichen ab Zeilenanfang bis zum Cursor
      delete_end_of_line: entfernt alle Zeichen ab Cursor bis zum Ende der Zeile
      delete_line: löscht die komplette Eingabezeile
      clipboard_paste: fügt Zeichenkette aus der internen Zwischenablage ein
      transpose_chars: Zeichen austauschen
      undo: letzten Befehl in der Eingabezeile rückgängig machen
      redo: letzten Befehl in der Eingabezeile wiederherstellen
      move_beginning_of_line: springt an den Anfang der Eingabezeile
      move_end_of_line: springt ans Ende der Eingabezeile
      move_previous_char: setzt den Cursor eine Position nach links
      move_next_char: setzt den Cursor eine Position nach rechts
      move_previous_word: springt zum Anfang des vorherigen Wortes, in der Eingabezeile
      move_next_word: springt zum Anfang des nächsten Wortes, in der Eingabezeile
      history_previous: ruft vorherigen Befehl oder Nachricht aus dem Befehlsspeicher auf (im Such-Modus: rückwärts suchen)
      history_next: ruft nächsten Befehl oder Nachricht aus dem Befehlsspeicher auf (im Such-Modus: vorwärts suchen)
      history_global_previous: ruft vorherigen Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer)
      history_global_next: ruft nächsten Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer)
      jump_smart: wechselt zum nächsten Buffer mit Aktivität (nach Priorität: highlight, Nachricht, …)
      jump_last_buffer_displayed: wechselt zum jeweils zuletzt angezeigten Buffer
      jump_previously_visited_buffer: springt zum letzten besuchten Buffer
      jump_next_visited_buffer: springt zum nächsten besuchten Buffer
      hotlist_clear: löscht Hotlist (Aktivitätsanzeige für die Buffer), (optionales Argument: "lowest" löscht den niedrigsten Eintrag der Hotlist, "highest" löscht den höchsten Eintrag der Hotlist, oder eine integer Maske: eine Kombination aus 1=join/part, 2=Nachricht,4=privat,8=highlight)
      hotlist_remove_buffer: entferne aktuellen Buffer von der Hotlist
      hotlist_restore_buffer: Wiederherstellen der neuesten Hotlist, die im aktuellen Buffer entfernt wurde
      hotlist_restore_all: Wiederherstellen der neuesten Hotlist, die in allen Buffern entfernt wurde
      grab_key: fängt eine Taste (optionales Argument: Verzögerung um eine Taste einzufangen. Standard sind 500 Millisekunden)
      grab_key_command: zeigt den Tastencode (inklusive des eingebundenen Befehls) einer Tastenkombination an und fügt ihn in die Befehlszeile ein (optionales Argument: Verzögerung um eine Taste einzufangen. Standard sind 500 Millisekunden)
      grab_mouse: fängt den Code einer Maus Aktivität
      grab_mouse_area: fängt den Code einer Maus Aktivität mit entsprechendem Bereich
      set_unread: setzt für alle Buffer die Markierung der ungelesen Nachrichten
      set_unread_current_buffer: setzt nur für den aktuellen Buffer eine Markierung der ungelesen Nachrichten
      switch_active_buffer: springt zum nächsten zusammengefügten Buffer
      switch_active_buffer_previous: springt zum vorherigen zusammengefügten Buffer
      zoom_merged_buffer: zoomt in zusammengefügte Buffer
      insert: fügt einen Text in die Eingabezeile ein (Escapesequenzen sind möglich, siehe /help print)
      send: schickt Text an einen Buffer
      paste_start: Einfügen wird gestartet (bracketed paste mode)
      paste_stop: Einfügen wird beendet (bracketed paste mode)

    Dieser Befehl wird sinnvollerweise mittels Tastenbelegungen oder Erweiterungen genutzt.

- `key`: Einer Taste einen Befehl zuordnen oder entfernen

    /key  list|listdefault|listdiff [<context>]
          bind <key> [<command> [<args>]]
          bindctxt <context> <key> [<command> [<args>]]
          unbind <key>
          unbindctxt <context> <key>
          reset <key>
          resetctxt <context> <key>
          resetall -yes [<context>]
          missing [<context>]

           list: zeigt die aktuelle Tastenbelegungen an (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
    listdefault: zeigt die Standardeinstellung der Tastenbelegung an
       listdiff: zeigt die Unterschiede zwischen der aktuell genutzten Tastaturbelegung und der Standardbelegung an (hinzugefügte/verändert/gelöschte Tastenbelegungen)
        context: Name des Kontextes ("default" oder "search")
           bind: belegt eine Taste mit einem Befehl oder zeigt an welcher Befehl auf eine Taste gelegt wurde (für Kontext "default")
       bindctxt: belegt eine Taste mit einem Befehl oder zeigt an welcher Befehl auf eine Taste gelegt wurde, dies trifft für Kontext definierte Tasten zu
        command: Befehl (mehrere Befehle werden durch ein Semikolon getrennt)
         unbind: hebt eine Tastenbelegung auf (für Kontext "default")
     unbindctxt: hebt eine Tastenbelegung für den angegebenen Kontext auf
          reset: die Tastenbelegung wird für die ausgewählte Taste auf die Standardeinstellung zurück gesetzt (für Kontext "default")
      resetctxt: die Tastenbelegung wird für die ausgewählte Taste auf die Standardeinstellung zurück gesetzt, dies trifft für den ausgewählten Kontext zu
       resetall: die Tastenbelegung wird auf die Standardeinstellungen zurück gesetzt. Dies löscht ALLE persönlichen Tastenbelegungen (Vorsicht!)
        missing: fügt fehlende Tastenbelegungen hinzu (dazu wird die Standardbelegung genutzt). Dies kann sinnvoll sein wenn man auf eine neue WeeChat Version umgestiegen ist

    Falls ein Befehl einer Taste zugeordnet werden soll ist es ratsam zuerst mit der Tastenkombination alt+k (oder Esc + k) einen Fangmodus zu aktivieren um damit die zu belegende Taste zu ermitteln. Durch diesen Schritt wird der benötigte Tasten-Code in die Befehlszeile übernommen.

    Für Kontext "mouse" (Kontext "cursor" ist auch möglich), hat der zu verwendende Schlüssel folgendes Format: "@area:Schlüssel" oder "@area1>area2:Schlüssel". "area" kann folgende Werte habe:
              *: jedweder Bereich des Bildschirms
           chat: Chatbereich (für jeden Buffer)
      chat(xxx): Chatbereich für einen Buffer mit dem Namen "xxx" (vollständiger Name mit Erweiterung. Beispiel: chat(perl.iset):)
         bar(*): beliebige Bar
       bar(xxx): Bar mit dem Namen "xxx"
        item(*): beliebiges Bar-Item
      item(xxx): Bar-Item mit Namen "xxx"
    Der Platzhalter "*" kann verwendet werden um mehrere unterschiedliche Mausereignisse auszuwählen.
    Für den Kontext "mouse" kann ein besonderer Übergabewert für den zu nutzenden Befehl verwendet werden, "hsignal:name". Dieses sendet das hsignal "name" und als Inhalt ein Hashtable als Argument.
    Ein weiterer Übergabewert ist "-" und kann genutzt werden um einen Schlüssel zu deaktivieren (der Schlüssel wird bei der Durchführung übersprungen).

    Beispiele:
      Mit der Tastenkombination "alt-t" wird die Nicklist-Bar an-und aus geschaltet:
        /key bind meta-t /bar toggle nicklist
      Mit der Tastenkombination "alt-r" wird direkt zum IRC #weechat Buffer gewechselt:
        /key bind meta-r /buffer #weechat
      Die Tastenkombination "alt-r" wird auf die Standardfunktion zurückgesetzt:
        /key reset meta-r
      "Tab"-Taste nutzen um im Kontext "search" die Suche innerhalb eines Buffers zu beenden:
        /key bindctxt search ctrl-I /input search_stop
      Auswahl eines Nicknamens mittels mittlerer Maustaste zeigt zusätzliche Informationen zu dem Nick an:
        /key bindctxt mouse @item(buffer_nicklist):button3 /msg nickserv info ${nick}

- `layout`: Verwaltet Buffer/Fenster Layouts

    /layout  store [<name>] [buffers|windows]
             apply [<name>] [buffers|windows]
             leave
             del [<name>] [buffers|windows]
             rename <name> <new_name>

      store: erstellt ein Layout der zur Zeit verwendeten Buffer/Fenster
      apply: erstelltes Layout verwenden
      leave: belässt das aktuelle Layout (es wird kein Layout aktualisiert)
        del: entfernt Buffer und/oder Fenster eines erstellten Layouts
             (falls weder "buffers" noch "windows" angegeben wird, dann wird das Layout entfernt)
     rename: ein Layout umbenennen
       name: Name unter welchem das Layout erstellt werden soll (Standardlayout heisst "default")
    buffers: erstellt bzw. verwendet nur Buffer (Reihenfolge der Buffer)
    windows: erstellt bzw. verwendet nur Fenster (Buffer welche im jeweiligen Fenster dargestellt werden)

    Wird der Befehl ohne Argumente aufgerufen, werden die erstellten Layout dargestellt.

    Das aktuelle Layout kann beim Ausführen des /quit Befehls mit der Option "weechat.look.save_layout_on_exit" gesichert werden.

    Hinweis: Das Layout merkt sich nur Fenstereinteilungen und die Positionsnummern von Buffern. Layout öffnet keine Buffer. Das bedeutet zum Beispiel, dass Sie IRC-Kanäle immer noch automatisch betreten müssen, um die Buffer zu öffnen. Das gespeicherte Layout wird erst verwendet, wenn die Buffer geöffnet sind.

- `mouse`: Maussteuerung

    /mouse  enable|disable|toggle [<delay>]

     enable: aktiviert Maus
    disable: deaktiviert Maus
     toggle: umschalten der Mausunterstützung
      delay: Verzögerung (in Sekunden) nach welcher der ursprüngliche Status wiederhergestellt wird (sinnvoll um die Mausunterstützung zeitabhängig zu deaktivieren)

    Die Mausunterstützung wird in der Einstellung "weechat.look.mouse" gesichert.

    Beispiele:
      Mausunterstützung aktivieren:
        /mouse enable
      Mausunterstützung für 5 Sekunden umschalten:
        /mouse toggle 5

- `mute`: führt einen Befehl ohne Textausgabe aus

    /mute  [-core | -current | -buffer <name>] <command>

       -core: keine Ausgabe im WeeChat Core Buffer
    -current: Ausgabe im aktuellen Buffer wird unterdrückt
     -buffer: Ausgabe im ausgewählten Buffer wird unterdrückt
        name: vollständiger Buffername (Beispiel: "irc.server.libera", "irc.libera.#weechat")
     command: Befehl der ohne Textausgabe ausgeführt werden soll (das Präfix, '/', wird automatisch hinzugefügt, falls es dem Befehl nicht vorangestellt wurde)

    Wird kein Buffer ausgewählt (-core, -current oder -buffer), dann wird die Textausgabe generell unterdrückt.

    Beispiele:
      Speichern der Konfiguration:
      /mute save
      Nachricht in den aktuellen Kanal senden:
      /mute -current msg * hi!
      Nachricht an den #weechat Kanal senden:
      /mute -buffer irc.libera.#weechat msg #weechat hi!

- `plugin`: Erweiterungen verwalten (auflisten/installieren/beenden)

    /plugin  list [-o|-ol|-i|-il|<name>]
             listfull [<name>]
             load <filename> [<arguments>]
             autoload [<arguments>]
             reload [<name>|* [<arguments>]]
             unload [<name>]

         list: installierte Erweiterungen werden aufgelistet
           -o: sende Liste der geladenen Erweiterungen an den Buffer (Ausgabe in Englisch)
          -ol: sende Liste der geladenen Erweiterungen an den Buffer (Übersetzte Ausgabe)
           -i: Liste der geladenen Erweiterungen in die Befehlszeile kopieren (zum Senden an den Buffer) (Ausgabe in Englisch)
          -il: Liste der geladenen Erweiterungen in die Befehlszeile kopieren (zum Senden an den Buffer) (Übersetzte Ausgabe)
         name: Name einer Erweiterung
     listfull: geladene Erweiterungen auflisten (ausführlich)
         load: Laden einer Erweiterung
     filename: Erweiterung (Dateiname) welche installiert werden soll
    arguments: Argumente die der Erweiterung beim Installieren übergeben werden sollen
     autoload: installiert automatisch alle Erweiterungen aus dem System- oder Benutzerverzeichnis
       reload: startet eine Erweiterung erneut (falls kein Name angegeben wird, werden alle Erweiterungen beendet und neu gestartet)
       unload: beendet eine oder alle Erweiterungen (wird kein Name angegeben dann werden alle Erweiterung beendet)

    Ohne Angabe eines Arguments werden alle installierten Erweiterungen angezeigt.

- `print`: gibt einen Text in einem Buffer aus

    /print  [-buffer <number>|<name>] [-newbuffer <name>] [-free] [-switch] [-core|-current] [-y <line>] [-escape] [-date <date>] [-tags <tags>] [-action|-error|-join|-network|-quit] [<text>]
            -stdout|-stderr [<text>]
            -beep

       -buffer: Buffer in welchem der Text ausgegeben werden soll (standardmäßig: aktueller Buffer)
    -newbuffer: erstellt einen neuen Buffer und stellt Text in diesem Buffer dar
         -free: erstellt einen Buffer mit freiem Inhalt (nur mit -newbuffer möglich)
       -switch: wechselt zum Buffer
         -core: Alternativname für "-buffer core.weechat"
      -current: Text wird im aktuell genutzten Buffer ausgegeben
            -y: schreibt den Text in die angegebene Zeile (nur bei Buffern mit freiem Inhalt)
          line: Zeilennummer bei einem Buffer mit freiem Inhalt (erste Zeile ist 0, bei einer negative Zahl wird der Text nach der letzten Zeile eingefügt: -1 = nach der letzten Zeile, -2 = zwei Zeilen, nach der letzten Zeile, usw.)
       -escape: Escapesequenzen werden umgewandelt (zum Beispiel \a, \07, \x07)
         -date: Datum der Nachricht, mögliche Formatierung:
                  -n: 'n' vor dem jetzigen Zeipunkt, in Sekunden
                 +n: 'n' in Zukunft, in Sekunden
                   n: 'n' Sekunden seit der Epoche (siehe man time)
                   date/time (ISO 8601): yyyy-mm-ddThh:mm:ss, Beispiel: 2014-01-19T04:32:55
                   time: hh:mm:ss (Beispiel: 04:32:55)
         -tags: durch Kommata getrennte Liste von Tags (siehe /help filter für eine Liste von Tags die häufig genutzt werden)
          text: Text der ausgegeben werden soll (Präfix und Nachricht muss durch \t getrennt werden, sollte der Text mit "-" beginnen, muss ein "\" vorangestellt werden)
       -stdout: Text wird an stdout geschickt (Escapesequenzen werden umgewandelt)
       -stderr: Text wird an stderr geschickt (Escapesequenzen werden umgewandelt)
         -beep: Alias für "-stderr \a"

    Das Argument -action ... -quit nutzt den Präfix der in der Einstellung "weechat.look.prefix_*" definiert ist.

    Folgende Escapesequenzen werden unterstützt:
      \" \\ \a \b \e \f \n \r \t \v \0ooo \xhh \uhhhh \Uhhhhhhhh

    Beispiele:
      zeigt eine Erinnerung, mit Highlight, im Core-Buffer dar:
        /print -core -tags notify_highlight Reminder: Milch kaufen
      zeigt eine Fehlernachricht im Core-Buffer an:
        /print -core -error irgend ein Fehler
      zeigt eine Nachricht im Core-Buffer mit dem Präfix "abc" an:
        /print -core abc\tmeine Nachricht
      es wird eine Nachricht im Channel #weechat ausgegeben:
        /print -buffer irc.libera.#weechat Nachricht an #weechat
      gibt einen Schneemann aus (U+2603):
        /print -escape \u2603
      verschickt Alarm (BEL):
        /print -beep

- `proxy`: Proxys verwalten

    /proxy  list
            add <name> <type> <address> <port> [<username> [<password>]]
            del <name>|-all
            set <name> <option> <value>

        list: listet alle Proxys auf
         add: fügt neuen Proxy hinzu
        name: Name des neuen Proxy (der Name darf nur einmal genutzt werden)
        type: http, socks4 oder socks5
     address: IP oder Hostname
        port: Port
    username: Username (optional)
    password: Passwort (optional)
         del: entfernt einen Proxy (-all um alle Proxys zu entfernen)
         set: setzt einen Wert für Proxy
      option: Optionen die geändert werden (für eine Liste der möglichen Optionen, bitte folgenden Befehl nutzen: /set weechat.proxy.<proxyname>.*)
       value: neuer Wert für Option

    Beispiele:
      erstellt einen HTTP-Proxy, der auf einem lokalen Host läuft und den Port 8888 nutzt:
        /proxy add local http 127.0.0.1 8888
      erstellt einen HTTP-Proxy der das IPv6 Protokoll nutzt:
        /proxy add local http ::1 8888
        /proxy set local ipv6 on
      erstellt einen socks5-Proxy, mit Username und Passwort:
        /proxy add myproxy socks5 sample.host.org 3128 myuser mypass
      entferne einen Proxy:
        /proxy del myproxy

- `quit`: WeeChat beenden

    /quit  [-yes] [<arguments>]

         -yes: Argument muss genutzt werden falls weechat.look.confirm_quit aktiviert sein sollte
    arguments: Text der beim Signal "quit" verschickt wird
               (zum Beispiel sendet die IRC Erweiterung diesen Text als Quit-Nachricht an den Server)

    Standardmäßig werden alle Konfigurationsdateien beim Beenden gespeichert (siehe Option "weechat.look.save_config_on_exit") und das aktuelle Layout kann gesichert werden (siehe Option "weechat.look.save_layout_on_exit").

- `reload`: Konfiguration neu laden

    /reload  [<file> [<file>...]]

    file: Konfigurationsdatei die erneut geladen werden soll (ohne Dateinamenserweiterung ".conf")

    Ohne Angabe von Argumenten werden alle Konfigurationen (WeeChat und Erweiterungen) neu geladen.

- `repeat`: führt einen Befehl mehrfach aus

    /repeat  [-interval <delay>[<unit>]] <count> <command>

      delay: Verzögerung zwischen dem Ausführen der Befehle
       unit: mögliche Werte (optional):
               ms: Millisekunden
                s: Sekunden (Vorgabewert)
                m: Minuten
                h: Stunden
      count: Anzahl, wie oft der Befehl ausgeführt werden soll
    command: Befehl welcher ausgeführt werden soll (oder ein Text der an einen Buffer gesendet werden soll, sofern der Befehl nicht mit '/' beginnt)

    Hinweis: Der Befehl wird in dem Buffer ausgeführt, in welchem der /repeat Befehl ausgeführt wurde (sollte der Buffer nicht mehr existieren, wird der Befehl nicht ausgeführt).

    Beispiel:
      scrolle zwei Seiten hoch:
        /repeat 2 /window page_up

- `save`: Konfiguration abspeichern

    /save  [<file> [<file>...]]

    file: Konfigurationsdatei die gesichert werden soll (ohne Dateinamenserweiterung ".conf")

    Wird keine Datei angegeben dann werden alle Konfigurationen (WeeChat und Erweiterungen) gesichert.

    Standardmäßig werden alle Konfigurationsdateien beim Ausführen des /quit Befehls gespeichert (siehe Option "weechat.look.save_config_on_exit").

- `secure`: verwaltet zu schützende Daten (Passwörter oder private Daten werden in der Datei sec.conf verschlüsselt)

    /secure  passphrase <passphrase>|-delete
             decrypt <passphrase>|-discard
             set <name> <value>
             del <name>

    passphrase: ändern der Passphrase (ohne Passphrase, werden die Daten in der Datei sec.conf in Klartext gesichert)
       -delete: löscht Passphrase
       decrypt: entschlüsselt Daten nachträglich (dies passiert nur falls die Passphrase beim Start nicht angegeben wurde)
      -discard: verwirft alle verschlüsselten Daten
           set: fügt eine schutzwürdige Information hinzu oder ändert eine bestehende
           del: entfernt eine schutzwürdige Information

    Ohne Angabe von Argumenten wird ein neuer Buffer geöffnet und die schutzwürdigen Informationen können dort eingesehen werden.

    Tastenbefehle für den secure-Buffer:
      alt+v Werte werden in Klartext angezeigt bzw. verborgen

    Wird eine Passphrase verwendet (Daten liegen verschlüsselt vor), fragt WeeChat beim Start die Passphrase ab.
    Setzt man die Umgebungsvariable "WEECHAT_PASSPHRASE", kann die Eingabeaufforderung der Passphrase beim Programmstart vermieden werden (diese Variable wird von WeeChat auch beim /upgrade verwendet). Es ist auch möglich mittels der Option sec.crypt.passphrase_command die Passphrase aus der Ausgabe eines externen Befehls, wie eines Passwort-Managers zu lesen (siehe /help sec.crypt.passphrase_command )

    schutzwürdige Daten mit dem Format ${sec.data.xxx} können wie folgt genutzt werden:
      - Befehl /eval.
      - Argument in der Befehlszeile für "--run-command"
      - Einstellung weechat.startup.command_{before|after}_plugins
      - weitere Optionen die Passwörter oder sensible Daten beinhalten (zum Beispiel: proxy, irc server und relay); nutze /help mit der entsprechenden Option um zu überprüfen ob die Daten evaluiert werden.

    Beispiele:
      festlegen eine Passphrase:
        /secure passphrase Dies ist meine Passphrase
      nutze Programm "pass" um die Passphrase beim Start auszulesen:
        /set sec.crypt.passphrase_command "/usr/bin/pass show weechat/passphrase"
      verschlüsselt libera SASL Passwort:
        /secure set libera meinPasswort
        /set irc.server.libera.sasl_password "${sec.data.libera}"
      verschlüsselt oftc Passwort für nickserv:
        /secure set oftc meinPasswort
        /set irc.server.oftc.command "/msg nickserv identify ${sec.data.oftc}"
      Alternativbefehl um den eigenen Nick zu ghosten:
        /alias add ghost /eval /msg -server libera nickserv ghost meinNick ${sec.data.libera}

- `set`: um Konfigurationsoptionen und Umgebungsvariablen zu setzen

    /set  [<option> [<value>]]
          diff [<option> [<option>...]]
          env [<variable> [<value>]]

    option: Name der zu ändernden Einstellung (der Platzhalter "*" kann verwendet werden, um sich mehrere Einstellungen anzeigen zu lassen)
     value: neuer Wert den die Einstellung erhalten soll. Abhängig von der ausgewählten Einstellung, kann die Variable folgenden Inhalt haben:
              boolean: on, off oder toggle
              integer: Nummer, ++Nummer oder --Nummer
               string: beliebige Zeichenkette ("" für eine leere Zeichenkette)
                color: Farbwert, ++Nummer oder --Nummer
            Hinweis: für alle Typen von Variablen kann die Zeichenkette "null" (ohne "")  genutzt werden, um den Wert der Einstellung zu löschen (undefinierter Wert). Dies kann nur auf einige besondere Variablen (Erweiterungen) angewendet werden.
      diff: es werden nur Einstellungen angezeigt, die geändert wurden
       env: setzt oder zeigt eine Umgebungsvariable an (um eine Variable zu entfernen muss der Wert "" genutzt werden)

    Beispiele:
      Zeigt alle Einstellungen an, die etwas mit highlight zu tun haben:
        /set *highlight*
      Fügt ein highlight-Wort hinzu:
        /set weechat.look.highlight "word"
      zeigt Einstellungen an, die verändert wurden:
        /set diff
      zeigt Einstellungen der IRC Erweiterung an, die verändert wurden:
        /set diff irc.*
      zeigt den Wert der Umgebungsvariable LANG an:
        /set env LANG
      setzt die Umgebungsvariable LANG und nutzt diese:
        /set env LANG fr_FR.UTF-8
        /upgrade
      entfernt die Umgebungsvariable ABC:
        /set env ABC ""

- `toggle`: den Wert einer Konfigurationsoption umschalten

    /toggle  <option> [<value> [<value>...]]

    option: Name einer Option
     value: mögliche Werte für die Option (Werte werden wie bei Shell-Befehlsargumente aufgeteilt: Anführungszeichen können verwendet werden, um Leerzeichen am Anfang/Ende von Werten zu nutzen)

    Verhalten:
      - nur eine Option vom Typ Boolean oder String kann ohne Wert umgeschaltet werden:
          - boolean: zwischen Ein/Aus Status umschalten, entsprechend dem aktuellen Wert
          - string: Umschalten zwischen leerem String und Standardwert (funktioniert nur, wenn für die Option ein leerer String erlaubt ist)
      - mit einem vorgegeben einzelnen Wert, zwischen diesem Wert und dem Standardwert der Option umschalten
      - sind mehrere Werte angegeben, schalten Sie zwischen diesen Werten um: Der verwendete Wert ist der, der dem aktuellen Wert der Option folgt; wenn der aktuelle Wert der Option nicht in der Liste enthalten ist, wird der erste Wert aus der Liste verwendet
      - der Sonderwert "null" kann genutzt werden, jedoch nur als erster Wert in der Liste und ohne Anführungszeichen.

    Beispiele:
      die Uhrzeit im Chat-Bereich umschalten (die Ausgabe des neuen Wertes wird unterdrückt):
        /mute /toggle weechat.look.buffer_time_format
      Zeitformat im Chat-Bereich ändern (mit Sekunden, ohne Sekunden, deaktiviert):
        /toggle weechat.look.buffer_time_format "%H:%M:%S" "%H:%M" ""
      den automatischen Beitritt des #weechat-Kanals auf dem libera-Server umschalten:
        /toggle irc.server.libera.autojoin null #weechat

- `unset`: Konfigurationsparameter freigeben/zurücksetzen

    /unset  <option>
            -mask <option>

    option: Name einer Option
     -mask: nutzt eine Maske um Optionen auszuwählen (Platzhalter "*" kann verwendet werden um viele Optionen in einem Arbeitsschritt zurückzusetzen. Nutzen Sie diese Funktion mit äußerster Sorgfalt!)

    Gemäß der jeweiligen Einstellung wird diese zurückgesetzt (bei Standardeinstellungen) oder komplett entfernt (bei optionalen Einstellungen, zum Beispiel die Server-Einstellungen).

    Beispiele:
      Eine Einstellung zurücksetzen:
        /unset weechat.look.item_time_format
      Alle Farbeinstellungen zurücksetzen:
        /unset -mask weechat.color.*

- `upgrade`: WeeChat Binärdatei neu laden, ohne die Verbindung zum Server zu trennen

    /upgrade  [-yes] [<path_to_binary>|-quit]

              -yes: wird benötigt, sobald Option "weechat.look.confirm_upgrade" aktiviert ist
    path_to_binary: Pfad zu einer ausführbaren WeeChat Binärdatei (Standardeinstellung ist die aktuell ausführbare Datei)
            -dummy: ohne Funktion (dient lediglich dazu, um nicht versehentlich die "-quit" Funktion auszuführen)
             -quit: trennt *ALLE* Verbindungen, speichert die aktuelle Sitzung und beendet WeeChat, um den aktuellen Zustand später wiederherstellen (siehe unten)

    Dieser Befehl führt ein Upgrade von WeeChat durch und startet die laufende Sitzung neu. Bevor dieser Befehl ausgeführt wird, sollte eine neue Version von WeeChat entweder vorab kompiliert, oder mit einem Paketmanager installiert worden sein.

    Hinweis: SSL Verbindungen werden während eines Upgrades unterbrochen, da diese Verbindungen zur Zeit nicht mit GnuTLS gehalten werden können. Nach einem erfolgten Upgrade findet eine automatische Verbindung zu diesen Servern statt.

    Der Upgrade Vorgang besteht aus vier Schritten:
      1. Sicherung der Sitzung, in Dateien für Core und Erweiterungen (buffers, history, ..)
      2. alle Erweiterungen werden ausgeschaltet (Konfigurationen *.conf werden gesichert)
      3. Sicherung der WeeChat Konfiguration (weechat.conf)
      4. ausführen der neuen Version von WeeChat und wiederherstellen der Sitzung.

    Nutzt man die "-quit" Funktion ist die Abfolge geringfügig anders:
      1. es werden *ALLE* Verbindungen getrennt (irc,xfer,relay, ...)
      2. die Sitzung wird in Dateien gesichert (*.upgrade)
      3. alle Erweiterungen werden ausgeschaltet
      4. die WeeChat Konfiguration wird gesichert
      5. WeeChat wird beendet
    Die Sitzung kann zu einem späteren Zeitpunkt wiederhergestellt werden: weechat --upgrade
    WICHTIG: Die Sitzung muss mit exakt den selben Konfigurationsdateien wiederhergestellt werden (*.conf)
    Es ist möglich, die WeeChat-Sitzung auf einem anderen Computer wiederherzustellen, wenn Sie den Inhalt der WeeChat Verzeichnisse kopieren (siehe / debug dirs).

- `uptime`: Zeigt die Uptime von WeeChat an

    /uptime  [-o|-ol]

     -o: die Laufzeit von WeeChat wird in den aktuellen Buffer geschrieben (in englischer Sprache)
    -ol: die Laufzeit von WeeChat wird in den aktuellen Buffer geschrieben (in der voreingestellten Landessprache)

- `version`: Zeigt die WeeChat-Version und das Datum der Kompilierung an

    /version  [-o|-ol]

     -o: die Version von WeeChat wird in den aktuellen Buffer ausgegeben (in englischer Sprache)
    -ol: die Version von WeeChat wird in den aktuellen Buffer ausgegeben (in der voreingestellten Landessprache)

    Um diesen Befehl in jedem Buffer ausführen zu können, kann der Standardkurzbefehl /v genutzt werden (andernfalls wird der IRC Befehl /version in einem IRC Buffer ausgeführt).

- `wait`: Terminiere einen Befehl der ausgeführt werden soll

    /wait  <number>[<unit>] <command>

     number: die Zeit, die gewartet werden soll (dies muss eine natürlich Zahl sein)
       unit: mögliche Werte (optional):
               ms: Millisekunden
                s: Sekunden (Vorgabewert)
                m: Minuten
                h: Stunden
    command: Befehl welcher ausgeführt werden soll (oder ein Text der an einen Buffer gesendet werden soll, sofern der Befehl nicht mit '/' beginnt)\n

    Hinweis: Der Befehl wird in dem Buffer ausgeführt, in welchem der /wait Befehl ausgeführt wurde (sollte der Buffer nicht mehr existieren, wird der Befehl nicht ausgeführt).

    Beispiele:
      Betritt nach 10 Sekunden den Kanal #test:
      /wait 10 /join #test
      Setzt nach 15 Minuten eine globale Abwesenheit:
      /wait 15m /away -all Bin dann mal eben weg
      Versendet nach zwei Minuten den Text 'Hallo':
      /wait 2m Hallo

- `window`: Fenster verwalten

    /window  list
             -1|+1|b#|up|down|left|right [-window <number>]
             <number>
             splith|splitv [-window <number>] [<pct>]
             resize [-window <number>] [h|v][+|-]<pct>
             balance
             merge [-window <number>] [all]
             close [-window <number>]
             page_up|page_down [-window <number>]
             refresh
             scroll [-window <number>] [+|-]<value>[s|m|h|d|M|y]
             scroll_horiz [-window <number>] [+|-]<value>[%]
             scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_beyond_end|scroll_previous_highlight|scroll_next_highlight|scroll_unread [-window <number>]
             swap [-window <number>] [up|down|left|right]
             zoom [-window <number>]
             bare [<delay>]

             list: listet die geöffneten Fenster (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
               -1: springt zum vorherigen Fenster
               +1: springt zum nächsten Fenster
               b#: springt zum nächsten Fenster, welches die Buffer Nummer # besitzt
               up: wechselt zum Fenster über dem aktuellen
             down: wechselt zum Fenster unter dem aktuellen
             left: wechselt zum linken Fenster
            right: wechselt zum rechten Fenster
           number: Nummer des Fensters (siehe /window list)
           splith: teilt das aktuelle Fenster horizontal (um den Vorgang rückgängig zu machen: /window merge)
           splitv: teilt das aktuelle Fenster vertikal (um den Vorgang rückgängig zu machen: /window merge)
           resize: verändert die Größe des aktuellen Fensters. Die neue Größe des Fensters ist prozentual <pct> zum Stammfensters groß
                   wird "h" oder "v" angegeben, findet eine Größenanpassung des Stammfenster statt, sofern es vom selben Typ ist (horizontal/vertikal)
          balance: passt die Größe aller Fenster an
            merge: vereinigt Fenster miteinander (all = alle Fenster vereinigen)
            close: Fenster wird geschlossen
          page_up: scrollt eine Seite nach oben
        page_down: scrollt eine Seite nach unten
          refresh: Seite wird neu aufgebaut
           scroll: scrollt eine Anzahl an Zeilen (+/-N) oder zu einer angegebenen Zeit: s=Sekunden, m=Minuten, h=Stunden, d=Tage, M=Monate, y=Jahre
     scroll_horiz: scrollt horizontal eine Anzahl an Spalten (+/-N) oder prozentual von der Fenstergröße ausgehend (dieses scrolling ist nur in Buffern möglich die über einen freien Inhalt verfügen)
        scroll_up: scrollt ein paar Zeilen nach oben
      scroll_down: scrollt ein paar Zeilen nach unten
       scroll_top: scrollt zum Anfang des Buffers
    scroll_bottom: scrollt zum Ende des Buffers
    scroll_beyond_end: scrollt über das Ende des Buffers hinaus
    scroll_previous_highlight: scrollt zum vorherigen Hightlight
    scroll_next_highlight: scrollt zum nächsten Highlight
    scroll_unread: scrollt zur ersten ungelesenen Zeile in einem Buffer
             swap: tauscht die Buffer von zwei Fenstern (mit optionaler Angabe für das Zielfenster)
             zoom: vergrößert ein Fenster auf 100%
             bare: wechselt zum einfachen Anzeigemodus (optional kann eine Wartezeit in Sekunden angegeben werden, wann wieder zum Standardmodus zurück gewechselt werden soll)

    Für splith und splitv gibt "pct" die Größe des neuen Fensters im Verhältnis zur aktuellen Größe an. Zum Beispiel würde ein Wert von 25 bedeuten, dass das neue Fenster nur noch ein Viertel der Größe des alten Fensters besitzt.

    Beispiele:
      springt zum Fenster mit dem Buffer #1:
        /window b1
       scrollt zwei Zeilen hoch:
        /window scroll -2
      scrollt zwei Tage hoch:
        /window scroll -2d
      scrollt zum Beginn des aktuellen Tages:
        /window scroll -d
      Fenster #2 wird vergrößert:
        /window zoom -window 2
      teilt das Fenster horizontal, wobei das obere Fenster 30% an Platz zugeteilt bekommt:
        /window splith 30
      ändert die Größe auf 75% des Stammfensters:
        /window resize 75
      die vertikale Aufteilung um 10% vergrößern:
        /window resize v+10
      eine Teilung wird rückgängig gemacht:
        /window merge
      das aktuelle Fenster wird geschlossen:
        /window close
      aktiviert den einfachen Anzeigemodus für zwei Sekunden:
        /window bare 2

#### 7.12.2. Optionen für schutzwürdige Daten

Sektionen in Datei sec.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`crypt` | `/set sec.crypt.*` | Optionen für Verschlüsselung.
`data` | `/secure` | geschützte Daten.

Optionen:

- sec.crypt.cipher

  - Beschreibung: zu nutzendes Chiffre zum Verschlüsseln von Daten (die Zahl hinter dem Algorithmus bestimmt die Größe des Schlüssels, in Bits)

  - Typ: integer

  - Werte: aes128, aes192, aes256

  - Standardwert: `aes256`

- sec.crypt.hash_algo

  - Beschreibung: Hash-Algorithmus zur Überprüfung der verschlüsselten Daten

  - Typ: integer

  - Werte: sha224, sha256, sha384, sha512

  - Standardwert: `sha256`

- sec.crypt.passphrase_command

  - Beschreibung: Auslesen der Passphrase aus der Ausgabe des angegebenen Befehls (nur die erste Zeile wird verwendet und darf kein zusätzliches Zeichen enthalten); Diese Option wird nur verwendet, wenn die Datei sec.conf gelesen wird und wenn die Umgebungsvariable "WEECHAT_PASSPHRASE" nicht festgelegt ist (die Umgebungsvariable hat eine höhere Priorität); Beispiel mit Passwortspeicher: "/usr/bin/pass show weechat / passphrase"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- sec.crypt.salt

  - Beschreibung: nutzt salt bei der Schlüsselerstellung für die Verschlüsselung (wird für maximale Sicherheit empfohlen); wenn aktiviert, ist der Inhalt der verschlüsselten Daten bei jeder Sicherung in die Datei sec.conf verschieden. Wird die Datei sec.conf in eine Versionsverwaltung eingepflegt kann die Einstellung deaktiviert werden, um immer den selben Dateiinhalt zu erhalten

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

#### 7.12.3. WeeChat Optionen

Sektion in Datei weechat.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`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` | `/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` | `/proxy /set weechat.proxy.*` | Proxy Optionen.
`network` | `/set weechat.network.*` | Netzwerk/SSL Optionen.
`plugin` | `/set weechat.plugin.*` | Optionen für Erweiterungen.
`signal` | `/set weechat.signal.*` | Optionen für Signale.
`bar` | `/bar /set weechat.bar.*` | Optionen für die Bars.
`layout` | `/layout` | Layouts.
`notify` | `/buffer notify` | Benachrichtigungsstufe für Buffer (Optionen können in Sektion hinzugefügt/entfernt werden).
`filter` | `/filter` | Filter.
`key` | `/key` | Tastenbefehle in default context.
`key_search` | `/key` | Tastenbefehle in search context.
`key_cursor` | `/key` | Tastenbefehle in cursor context.
`key_mouse` | `/key` | Tastenbefehle in mouse context.

Optionen:

- weechat.color.bar_more

  - Beschreibung: Farbe des "+" beim Scrollen von Info-Bars

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightmagenta`

- weechat.color.chat

  - Beschreibung: Farbe des Chat-Textes

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.chat_bg

  - Beschreibung: Hintergrundfarbe des Chats

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.chat_buffer

  - Beschreibung: Textfarbe für den Namen des Buffers

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- weechat.color.chat_channel

  - Beschreibung: Farbe für den Kanalnamen

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- weechat.color.chat_day_change

  - Beschreibung: Textfarbe für die Nachricht die beim Datumswechsel angezeigt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- weechat.color.chat_delimiters

  - Beschreibung: Farbe der Infobar-Trennzeichen

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- weechat.color.chat_highlight

  - Beschreibung: Textfarbe für Highlight-Präfix

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- weechat.color.chat_highlight_bg

  - Beschreibung: Hintergrundfarbe für Highlight-Präfix

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `magenta`

- weechat.color.chat_host

  - Beschreibung: Textfarbe für Host-Namen

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- weechat.color.chat_inactive_buffer

  - Beschreibung: Textfarbe für inaktive Zeilen im Chatfenster (Buffer wurde mit anderen Buffern zusammengefügt und der Buffer ist nicht aktiv)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.chat_inactive_window

  - Beschreibung: Textfarbe für Chat wenn das Fenster inaktiv ist (betrifft nicht das aktuell ausgewählte Fenster)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.chat_nick

  - Beschreibung: Textfarbe für Nicks im Chatfenster: Farbe wird für einige Server-Nachrichten verwendet und als Ersatz falls eine Farbe für einen Nick nicht gefunden wird; normalerweise wird die Farbe von der Option weechat.color.chat_nick_colors bereitgestellt

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightcyan`

- weechat.color.chat_nick_colors

  - Beschreibung: Textfarbe für Nicks (durch Kommata getrennte Liste von Farben. Eine Hintergrundfarbe kann durch das folgende Format genutzt werden: "fg:bg". Zum Beispiel: "lightred:blue")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"`

- weechat.color.chat_nick_offline

  - Beschreibung: Textfarbe für Nicks die nicht angemeldet sind (nicht in der Benutzerliste aufgeführt sind); diese Farbeinstellung wird aber nur verwendet wenn die Einstellung weechat.look.color_nick_offline aktiviert ist

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.chat_nick_offline_highlight

  - Beschreibung: Textfarbe bei Highlights für Nicks die nicht angemeldet sind; diese Farbeinstellung wird aber nur verwendet wenn die Einstellung weechat.look.color_nick_offline aktiviert ist

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.chat_nick_offline_highlight_bg

  - Beschreibung: Hintergrundfarbe bei Highlights für Nicks die nicht angemeldet sind, diese Farbeinstellung wird aber nur verwendet wenn die Einstellung weechat.look.color_nick_offline aktiviert ist

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `blue`

- weechat.color.chat_nick_other

  - Beschreibung: Farbe des anderen Nicknamens in einem privaten Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- weechat.color.chat_nick_prefix

  - Beschreibung: Farbe für den Nick-Präfix (Zeichenkette die vor dem Nick steht)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- weechat.color.chat_nick_self

  - Beschreibung: Textfarbe für den eigenen Nicknamen, im lokalen Chat-Fenster

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- weechat.color.chat_nick_suffix

  - Beschreibung: Farbe für den Nick-Suffix (Zeichenkette die nach dem Nick steht)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- weechat.color.chat_prefix_action

  - Beschreibung: Textfarbe für Action-Präfix

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- weechat.color.chat_prefix_buffer

  - Beschreibung: Textfarbe des Buffer-Namens (vor dem Präfix, wenn mehrere Buffer mit der selben Nummer zusammengefügt worden sind)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- weechat.color.chat_prefix_buffer_inactive_buffer

  - Beschreibung: Textfarbe für den inaktiven Namen des Buffer (vor dem Präfix, falls mehrere Buffer zu einem zusammengefügt worden sind und der Buffer nicht ausgewählt ist)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.chat_prefix_error

  - Beschreibung: Textfarbe für Fehler-Präfix

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- weechat.color.chat_prefix_join

  - Beschreibung: Textfarbe für Join-Präfix

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightgreen`

- weechat.color.chat_prefix_more

  - Beschreibung: Farbe des "+" Zeichens, falls Präfix zu lang sein sollte

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightmagenta`

- weechat.color.chat_prefix_network

  - Beschreibung: Textfarbe für Netzwerk-Präfix

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `magenta`

- weechat.color.chat_prefix_quit

  - Beschreibung: Textfarbe für Quit-Präfix

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightred`

- weechat.color.chat_prefix_suffix

  - Beschreibung: Textfarbe für den Suffix (senkrechter Strich)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- weechat.color.chat_read_marker

  - Beschreibung: Farbe in der das Lesezeichen dargestellt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `magenta`

- weechat.color.chat_read_marker_bg

  - Beschreibung: Hintergrundfarbe für das Lesezeichen

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.chat_server

  - Beschreibung: Textfarbe für den Namen des Servers

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- weechat.color.chat_tags

  - Beschreibung: Textfarbe in der die Schlagwörter, die nach der jeweiligen Nachricht angezeigt werden, dargestellt werden sollen (wird durch den Befehl "/debug tags" angezeigt)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `red`

- weechat.color.chat_text_found

  - Beschreibung: Farbe zur Hervorhebung des gesuchten Textes in einer Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- weechat.color.chat_text_found_bg

  - Beschreibung: Hintergrundfarbe zur Hervorhebung des gesuchten Textes in einer Zeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightmagenta`

- weechat.color.chat_time

  - Beschreibung: Textfarbe der Zeit im Chatfenster

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.chat_time_delimiters

  - Beschreibung: Farbe in der das Trennzeichen für die Uhrzeit dargestellt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- weechat.color.chat_value

  - Beschreibung: Farbe für Werte

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- weechat.color.chat_value_null

  - Beschreibung: Textfarbe für null-Werte (undefiniert)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `blue`

- weechat.color.emphasized

  - Beschreibung: Textfarbe um Text hervorzuheben (zum Beispiel bei der Textsuche); wird ausschließlich dann genutzt, falls die Einstellung weechat.look.emphasized_attributes keinen Eintrag besitzt (Standardwert)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- weechat.color.emphasized_bg

  - Beschreibung: Hintergrundfarbe um Textpassagen hervorzuheben (zum Beispiel bei der Textsuche); wird ausschließlich dann genutzt, falls die Einstellung weechat.look.emphasized_attributes keinen Eintrag besitzt (Standardwert)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `magenta`

- weechat.color.input_actions

  - Beschreibung: Textfarbe in der Eingabezeile bei Aktivität (z.B. beim Einfügen von Zeilen)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightgreen`

- weechat.color.input_text_not_found

  - Beschreibung: Textfarbe in der Eingabezeile bei einer erfolglosen Textsuche

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `red`

- weechat.color.item_away

  - Beschreibung: Textfarbe für das Abwesenheitsitem

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- weechat.color.nicklist_away

  - Beschreibung: Textfarbe von abwesenden Nicknamen

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- weechat.color.nicklist_group

  - Beschreibung: Textfarbe für Gruppen in Benutzerliste

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- weechat.color.separator

  - Beschreibung: Farbe der Trennlinie von Fenstern (bei Fenster geteilt sind) und Bars (wie z.B. Nicklist)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `blue`

- weechat.color.status_count_highlight

  - Beschreibung: Farbe für die Anzahl der Highlight-Nachrichten die in der Hotlist dargestellt werden (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `magenta`

- weechat.color.status_count_msg

  - Beschreibung: Farbe für die Anzahl der Nachrichten die in der Hotlist dargestellt werden (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- weechat.color.status_count_other

  - Beschreibung: Farbe für die Anzahl aller anderen Nachrichten die in der Hotlist dargestellt werden (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.status_count_private

  - Beschreibung: Farbe für die Anzahl der privaten Nachrichten die in der Hotlist dargestellt werden (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- weechat.color.status_data_highlight

  - Beschreibung: Farbe eines Buffers mit Highlight-Nachricht (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightmagenta`

- weechat.color.status_data_msg

  - Beschreibung: Farbe eines Buffers der neue Nachrichten enthält (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- weechat.color.status_data_other

  - Beschreibung: Farbe eines Buffers mit neuen Daten (keine Nachrichten) (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.status_data_private

  - Beschreibung: Farbe eines Buffers mit privater Nachricht (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightgreen`

- weechat.color.status_filter

  - Beschreibung: Farbe des Filterkennzeichens in der Statuszeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- weechat.color.status_more

  - Beschreibung: Farbe eines Buffers mit neuen Daten (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- weechat.color.status_mouse

  - Beschreibung: Farbe des Zeichens welches den Status der Maus anzeigt

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- weechat.color.status_name

  - Beschreibung: Farbe des aktuellen Buffer-Namens in der Statuszeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- weechat.color.status_name_ssl

  - Beschreibung: Farbe in der der aktuelle Buffer-Name in der Statuszeile angezeigt werden soll, sofern die Verbindung durch ein Protokoll, zum Beispiel, SSL geschützt ist

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightgreen`

- weechat.color.status_nicklist_count

  - Beschreibung: Textfarbe für die Anzahl der Nicks in der Benutzerliste (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.color.status_number

  - Beschreibung: Farbe des aktuellen Kanals in der Statuszeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- weechat.color.status_time

  - Beschreibung: Textfarbe für die Uhrzeit (Statusbar)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- weechat.completion.base_word_until_cursor

  - Beschreibung: ist diese Einstellung aktiviert wird ein zu vervollständigendes Wort in den fließenden Text, mit einem Leerzeichen, hinzugefügt. Ist diese Einstellung deaktiviert, muss in den fließenden Text ein Leerzeichen manuell einfügt werden, um eine Vervollständigung durchführen zu können (Beispiel: In einen schon geschriebenen Text, einen Nick einzufügen)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.completion.command_inline

  - Beschreibung: ist diese Einstellung aktiviert werden Befehle innerhalb der Eingabezeile vervollständigt (ein Befehl zu Beginn der Eingabezeile besitzt die höhere Priorität und wird zuerst verwendet). Hinweis: die Vervollständigung von Verzeichnissen, die mit "/" beginnen, funktioniert außerhalb von Befehlen nicht mehr

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.completion.default_template

  - Beschreibung: Standardvorlage für die automatische Vervollständigung (in der API-Dokumentation findet man die vorgegebenen Codes und Werte, Funktion "weechat_hook_command")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%(nicks)|%(irc_channels)"`

- weechat.completion.nick_add_space

  - Beschreibung: fügt ein Leerzeichen hinter die Nick-Vervollständigung ein (sofern der Nickname nicht das erste Wort in einer Kommandozeile darstellt)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.completion.nick_case_sensitive

  - Beschreibung: Groß-und Kleinschreibung wird bei Vervollständigung von Nicks berücksichtigt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.completion.nick_completer

  - Beschreibung: fügt eine Zeichenkette hinter die Nick-Vervollständigung ein (sofern ein Nickname das erste Wort in der Kommandozeile ist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `": "`

- weechat.completion.nick_first_only

  - Beschreibung: es wird ausschließlich mit dem ersten, passendem Nick-Namen vervollständigt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.completion.nick_ignore_chars

  - Beschreibung: Zeichen, die bei der Vervollständigung von Nicks ignoriert werden

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"[]`_-^"`

- weechat.completion.partial_completion_alert

  - Beschreibung: erzeugt eine Mitteilung (BEL) wenn eine teilweise Vervollständigung auftritt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.completion.partial_completion_command

  - Beschreibung: teilweise Vervollständigung von Befehlen (bricht ab, falls zu viele Befehle mit dem selben Buchstaben beginnen)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.completion.partial_completion_command_arg

  - Beschreibung: teilweise Vervollständigung von Befehls-Argumenten (bricht ab, falls zu viele Befehle mit dem selben Präfix beginnen)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.completion.partial_completion_count

  - Beschreibung: zeigt bei einer teilweisen Vervollständigung die Anzahl der jeweiligen Möglichkeiten in der Bar-Item an

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.completion.partial_completion_other

  - Beschreibung: teilweise Vervollständigung von externen Befehlen (bricht ab, falls zu viele Befehle mit dem selben Buchstaben beginnen)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.completion.partial_completion_templates

  - Beschreibung: durch Kommata getrennte Liste der Vorgaben für die eine teilweise Vervollständigung standardmäßig aktiv ist (mittels TAB Taste, anstelle von shift-TAB); eine Auflistung möglicher Vorgaben findet man in der Dokumentation: Anleitung für API Erweiterung, Funktion "weechat_hook_command"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"config_options"`

- weechat.history.display_default

  - Beschreibung: Wert für die maximale Anzahl der angezeigten Befehle im Verlaufsspeicher, die mittels /history angezeigt werden (0: unbegrenzt)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `5`

- weechat.history.max_buffer_lines_minutes

  - Beschreibung: Dauer in Minuten, wie lange die Zeilen im Verlaufsspeicher, pro Buffer, gehalten werden sollen (0 = unbegrenzt); Beispiele: 1440 = einen Tag, 10080 = eine Woche, 43200 = einen Monat, 525600 = ein Jahr; 0 sollte nur genutzt werden sofern weechat.history.max_buffer_lines_number nicht ebenfalls 0 ist

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `0`

- weechat.history.max_buffer_lines_number

  - Beschreibung: maximale Anzahl an Zeilen im Verlaufsspeicher, dies gilt pro Buffer (0: keine Zeilenbegrenzung); 0 sollte nur genutzt werden sofern weechat.history.max_buffer_lines_minutes nicht ebenfalls 0 ist

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `4096`

- weechat.history.max_commands

  - Beschreibung: maximale Anzahl an Befehlen im Verlaufsspeicher (0: kein Begrenzung, NICHT EMPFOHLEN: keine Begrenzung des Speicherverbrauches)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `100`

- weechat.history.max_visited_buffers

  - Beschreibung: maximale Anzahl an besuchten Buffern, welche im Speicher gehalten werden sollen

  - Typ: integer

  - Werte: 0 .. 1000

  - Standardwert: `50`

- weechat.look.align_end_of_lines

  - Beschreibung: Einstellung für einen Zeilenumbruch (betrifft alle Zeilen, außer der ersten Zeile). Die Darstellung der nachfolgenden Zeile beginnt unter: Uhrzeit = time, Buffer = buffer, Präfix = prefix, Suffix = suffix, Nachricht = message (Standardwert)

  - Typ: integer

  - Werte: time, buffer, prefix, suffix, message

  - Standardwert: `message`

- weechat.look.align_multiline_words

  - Beschreibung: Einstellung für Zeilenumbruch gemäß weechat.look.align_end_of_lines; falls deaktiviert wird ein Wort welches durch einen Zeilenumbruch in die nächste Zeile gezwungen wird nicht in die neue Zeile eingeschoben, sondern beginnt direkt am Zeilenanfang. Dies kann sinnvoll sein um lange URLs weiterhin anklicken zu können und kein Leerzeichen innerhalb der URL zu erhalten

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.bar_more_down

  - Beschreibung: Zeichen welches anzeigt, dass die Bar nach unten gescrollt werden kann (dies trifft nur auf Bars zu bei denen die Einstellung "/set *.filling_*" nicht auf "horizontal" eingestellt ist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"++"`

- weechat.look.bar_more_left

  - Beschreibung: Zeichen welches anzeigt, dass die Bar nach links gescrollt werden kann (dies trifft nur auf Bars zu bei denen die Einstellung "/set *.filling_*" nicht auf "horizontal" eingestellt ist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"<<"`

- weechat.look.bar_more_right

  - Beschreibung: Zeichen welches anzeigt, dass die Bar nach rechts gescrollt werden kann (dies trifft nur auf Bars zu bei denen die Einstellung "/set *.filling_*" nicht auf "horizontal" eingestellt ist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `">>"`

- weechat.look.bar_more_up

  - Beschreibung: Zeichen welches anzeigt, dass die Bar nach oben gescrollt werden kann (dies trifft nur auf Bars zu bei denen die Option "/set *.filling_*" nicht auf "horizontal" eingestellt ist)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"--"`

- weechat.look.bare_display_exit_on_input

  - Beschreibung: beendet den einfachen Anzeigemodus durch Tastendruck

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.bare_display_time_format

  - Beschreibung: Format für die Zeitanzeige im einfachen Anzeigemodus, "time" (siehe man strftime, welche Platzhalter für das Datum und die Uhrzeit verwendet werden)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%H:%M"`

- weechat.look.buffer_auto_renumber

  - Beschreibung: automatisches nummerieren von Buffern um ausschließlich eine aufeinander folgende Durchnummerierung zu besitzen, die bei 1 beginnt; ist diese Einstellung deaktiviert sind Lücken zwischen den Buffern möglich und der erste Buffer muss nicht mit der Zahl 1 beginnen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.buffer_notify_default

  - Beschreibung: Standardeinstellung der Benachrichtigungsstufe für Buffer (dies wird genutzt um WeeChat mitzuteilen ob der Buffer in der Hotlist angezeigt werden soll oder nicht, entsprechend der Wichtigkeit der Nachricht): all=alle Nachrichten (Standard), message=Nachrichten+Highlights, highlights=nur Highlights, none=Hotlist wird niemals angezeigt

  - Typ: integer

  - Werte: none, highlight, message, all

  - Standardwert: `all`

- weechat.look.buffer_position

  - Beschreibung: Position auf der ein neuer Buffer geöffnet werden soll: end = am Ende der Liste (Nummer = letzter Buffer + 1) (Standard), first_gap = erste mögliche Nummer die frei ist (wird das Ende der Liste erreicht, wird der Buffer hinten angehängt); diese Einstellung wird nur angewendet sofern dem Buffer keine Position, durch Layout, zugeordnet wurde

  - Typ: integer

  - Werte: end, first_gap

  - Standardwert: `end`

- weechat.look.buffer_search_case_sensitive

  - Beschreibung: standardmäßige Textsuche im Buffer: zwischen Groß-und Kleinschreibung wird unterschieden

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.buffer_search_force_default

  - Beschreibung: es werden immer die Standardeinstellungen verwendet (anstelle der zuletzt genutzten Sucheinstellungen)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.buffer_search_regex

  - Beschreibung: standardmäßige Textsuche im Buffer: falls aktiviert wird mittels erweiterten regulären POSIX Ausdrücken gesucht, andernfalls findet eine genaue Textsuche statt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.buffer_search_where

  - Beschreibung: standardmäßige Textsuche im Buffer: in der Nachricht (message), im Präfix (prefix), Präfix und Nachricht (prefix_message)

  - Typ: integer

  - Werte: prefix, message, prefix_message

  - Standardwert: `prefix_message`

- weechat.look.buffer_time_format

  - Beschreibung: Format für die Uhrzeit, die in jeder Zeile eines Buffers dargestellt wird (siehe man strftime, welche Platzhalter für das Datum und die Uhrzeit verwendet werden) (Hinweis: Inhalt wird evaluiert, somit kann mittels des Formats "${color:xxx} Farben gesetzt werden, siehe /help eval). Beispiel: Uhrzeit in Graustufen (Unterstützung von 256 Farben notwendig): "${color:252}%H${color:245}%M${color:240}%S"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%H:%M:%S"`

- weechat.look.buffer_time_same

  - Beschreibung: Uhrzeit die bei einer Nachricht dargestellt werden soll, sofern die Uhrzeit der vorherigen Nachricht entspricht: bei einem Leerzeichen " " wird keine Uhrzeit angezeigt, oder man kann eine Zeichenkette anstelle der Uhrzeit anzeigen, keine Zeichenkette deaktiviert diese Funktion (Uhrzeit wird angezeigt) (Hinweis: Inhalt wird evaluiert, es kann z.B. eine Farbe mittels dem Format "${color:xxx}" angegeben werden, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.color_basic_force_bold

  - Beschreibung: erzwingt das Textattribut "fett" für helle Farben und "darkgray", um diese Farben stärker hervorzuheben (diese Einstellung ist standardmäßig deaktiviert: "fett" findet ausschließlich dann Verwendung falls das Terminal weniger als 16 Farben zur Verfügung stellt)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.color_inactive_buffer

  - Beschreibung: Textfarbe für Zeilen in einem inaktiven Buffer (betrifft Zeilen in einem zusammengefügt Buffer, welcher nicht aktiv ist)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.color_inactive_message

  - Beschreibung: nutzt eine andere Farbe um die inaktiven Nachrichten darzustellen (Fenster ist nicht das aktuelle Fenster oder wenn die Zeile des zusammengefügten Buffers nicht die aktiv Zeile ist)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.color_inactive_prefix

  - Beschreibung: nutzt eine andere Farbe um den inaktiven Präfix darzustellen (Fenster ist nicht das aktuelle Fenster oder wenn die Zeile des zusammengefügten Buffers nicht die aktiv Zeile ist)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.color_inactive_prefix_buffer

  - Beschreibung: nutzt eine andere Farbe für den inaktiven Buffernamen im Präfix (das Fenster ist nicht das aktuelle aktive Fenster oder wenn die Zeile des zusammengefügten Buffers nicht die aktiv Zeile ist)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.color_inactive_time

  - Beschreibung: nutzt eine andere Farbe um die inaktive Zeitangabe darzustellen (Fenster ist nicht das aktuelle Fenster oder wenn die Zeile des zusammengefügten Buffers nicht die aktiv Zeile ist)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.color_inactive_window

  - Beschreibung: Textfarbe für Zeilen in einem inaktiven Fenster (betrifft das Fenster, welches nicht aktiv ist)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.color_nick_offline

  - Beschreibung: Nicks die Offline sind werden im Buffer in einer anderen Farbe dargestellt (dies betrifft Nicks, die nicht in der Benutzerliste vorhanden sind!)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.color_pairs_auto_reset

  - Beschreibung: automatischer Reset der Farbpaarungen sobald die verfügbare Anzahl an Paaren kleiner oder gleich der hier angegebenen Anzahl ist (-1 = deaktiviert den automatischen Reset, dann ist ein manueller Reset mittels "/color reset" notwendig falls alle Farbpaarungen belegt sind)

  - Typ: integer

  - Werte: -1 .. 256

  - Standardwert: `5`

- weechat.look.color_real_white

  - Beschreibung: falls diese Einstellung aktiviert ist, wird echtes weiß als Farbe genutzt. Standardmäßig ist diese Einstellung deaktiviert, damit keine Probleme bei Terminals auftreten, die einen weißen Hintergrund nutzen (falls man keinen weißen Hintergrund nutzt, dann ist es ratsam diese Einstellung zu aktivieren. Andernfalls wird die voreingestellte Vordergrundfarbe des Terminals verwendet)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.command_chars

  - Beschreibung: Bestimmt ein- oder mehrere Zeichen mit denen man ebenfalls einen Befehl ausführen kann. Zum Beispiel mittels ".$". Der Schrägstrich (slash: "/") ist ein reserviertes Zeichen und wird immer genutzt

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.command_incomplete

  - Beschreibung: ist diese Einstellung aktiviert werden unvollständige und eindeutige Befehle akzeptiert, zum Beispiel /he für /help

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.confirm_quit

  - Beschreibung: ist diese Einstellung aktiviert, muss der "/quit" Befehl mit dem Argument "-yes" ausgeführt werden (siehe /help quit)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.confirm_upgrade

  - Beschreibung: ist diese Einstellung aktiviert, muss der "/upgrade" Befehl mit dem Argument "-yes" ausgeführt werden (siehe /help upgrade)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.day_change

  - Beschreibung: bei einem Datumswechsel wird eine entsprechende Nachricht angezeigt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.day_change_message_1date

  - Beschreibung: Nachricht welche bei einem Datumswechsel angezeigt wird (zum Beispiel als erste Zeile im Buffer) (siehe man strftime, welche Platzhalter für das Datum und die Uhrzeit verwendet werden) (Hinweis: Inhalt wird evaluiert, somit kann mittels des Formats "${color:xxx} Farben gesetzt werden, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"-- %a, %d %b %Y --"`

- weechat.look.day_change_message_2dates

  - Beschreibung: Nachricht welche bei einem Datumswechsel angezeigt wird, dabei werden zwei Daten angegeben die zwischen zwei Nachrichten liegen; der zweite Platzhalter muss mit zwei "%" angegeben werden, da strftime auch zweimal aufgerufen wird (siehe man strftime, welche Platzhalter für das Datum und die Uhrzeit verwendet werden) (Hinweis: Inhalt wird evaluiert, somit kann mittels des Formats "${color:xxx} Farben gesetzt werden, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"`

- weechat.look.eat_newline_glitch

  - Beschreibung: aktiviert man diese Einstellung, dann wird "eat_newline_glitch" auf 0 gesetzt; dies bedeutet, dass am Ende einer Zeile kein Zeilenumbruch angehängt wird und somit der Text beim kopieren aus WeeChat und beim einfügen in einer anderen Applikation nicht umgebrochen wird (diese Einstellung ist standardmäßig deaktiviert, da es zu schwerwiegenden Grafikfehlern kommen kann)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.emphasized_attributes

  - Beschreibung: Attribute um Textpassagen hervorzuheben: Das setzen von ein- oder mehreren Attributen ist möglich ("*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen); falls die Einstellung weechat.look.emphasized_attributes keinen Eintrag besitzt, werden die Farben genutzt die durch weechat.color.emphasized* definiert sind

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.highlight

  - Beschreibung: eine durch Kommata getrennte Liste der hervorzuhebenden Wörter. Groß- und Kleinschreibung wird dabei standardmäßig nicht beachtet (um zwischen Groß-und Kleinschreibung zu unterscheiden muss am Wortanfang "(?-i)" genutzt werden). Schlagwörter können mit "*", als Joker, beginnen oder enden; Beispiel: "test,(?-i)*toto*,flash*"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.highlight_regex

  - Beschreibung: Suchmuster (erweiterter regulärer POSIX Ausdruck) welches genutzt werden soll, um zu überprüfen ob eine Nachricht ein Highlight enthält oder nicht. Mindestens eine Zeichenkette muss dabei auf das Suchmuster passen (alphanumerisch, "-", "_" oder "|"). Das Suchmuster unterscheidet dabei nicht zwischen Groß-und Kleinschreibung (um zwischen Groß-und Kleinschreibung zu unterscheiden muss am Wortanfang "(?-i)" genutzt werden). Beispiele: "flashcode|flashy", "(?-i)FlashCode|flashy"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.highlight_tags

  - Beschreibung: eine durch Kommata getrennte Liste von Tags, die eine highlight-Nachricht erzeugen; Groß- und Kleinschreibung wird dabei nicht beachtet; der Platzhalter "*" darf in einem Tag genutzt werden. Um eine logische "und" Verknüpfung zu verwenden, können mehrere Tags durch "+" zusammengefügt werden. Beispiele: "nick_flashcode" für Nachrichten von "FlashCode", "irc_notice+nick_toto*" für Notice-Nachrichten von Nicks, die mit "toto" beginnen

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.hotlist_add_conditions

  - Beschreibung: Bedingungen um einen Buffer in die Hotlist einzutragen (sofern der Notify-Level für den Buffer korrekt ist); es können folgende Bedingungen genutzt werden: "window" (zur Zeit genutzter Window-Pointer), "buffer" (Buffer-Pointer welcher zur Hotlist hinzugefügt werden soll), "priority" (0 = niedrig, 1 = Nachricht, 2 = Privat, 3 = Highlight); Standardmäßig wird ein Buffer in die Hotlist eingetragen falls man abwesend sein sollte oder falls der Buffer nicht auf dem Bildschirm angezeigt wird (Buffer wird nicht in einem Fenster dargestellt) oder falls mindestens ein relay client mit dem weechat Protokoll verbunden ist

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${away} || ${buffer.num_displayed} == 0 || ${info:relay_client_count,weechat,connected} > 0"`

- weechat.look.hotlist_buffer_separator

  - Beschreibung: Zeichen welches zum Trennen zwischen den verschiedenen Buffern in der Hotlist genutzt werden soll

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `", "`

- weechat.look.hotlist_count_max

  - Beschreibung: maximale Anzahl an Nachrichtenzähler in der Hotlist, für einen Buffer: 0 = der Nachrichtenzähler wird nicht dargestellt, nächst höhere Zahl = zeigt maximal <N> Nachrichtenzähler an (von höchster zu niedrigster Priorität)

  - Typ: integer

  - Werte: 0 .. 4

  - Standardwert: `2`

- weechat.look.hotlist_count_min_msg

  - Beschreibung: zeigt einen Nachrichtenzähler an, sofern die Anzahl der Nachrichten größer oder gleich dem hier angegebenen Wertes ist

  - Typ: integer

  - Werte: 1 .. 100

  - Standardwert: `2`

- weechat.look.hotlist_names_count

  - Beschreibung: maximale Anzahl an Namen in der Hotlist (0 = es werden keine Namen angezeigt, sondern nur die entsprechenden Nummern der Buffer)

  - Typ: integer

  - Werte: 0 .. 10000

  - Standardwert: `3`

- weechat.look.hotlist_names_length

  - Beschreibung: maximale Länge der Namen in der Hotlist (0: kein Limitierung)

  - Typ: integer

  - Werte: 0 .. 32

  - Standardwert: `0`

- weechat.look.hotlist_names_level

  - Beschreibung: Grad für die Darstellung wann der Namen eines Buffers in der Hotlist angezeigt werden soll (Kombination aus: 1=join/part, 2=Nachricht, 4=Query, 8=Highlight, z.B. 12=Query+Highlight)

  - Typ: integer

  - Werte: 1 .. 15

  - Standardwert: `12`

- weechat.look.hotlist_names_merged_buffers

  - Beschreibung: ist diese Einstellung aktiviert, werden die Namen der zusammengefügten Buffer in der Hotlist dargestellt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.hotlist_prefix

  - Beschreibung: Text der vor der Hotlist angezeigt werden soll

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"H: "`

- weechat.look.hotlist_remove

  - Beschreibung: entfernt Buffer aus der Hotlist: buffer = entfernt einen einzelnen Buffer, merged = entfernt alle zusammengefügten Buffer auf einmal

  - Typ: integer

  - Werte: buffer, merged

  - Standardwert: `merged`

- weechat.look.hotlist_short_names

  - Beschreibung: ist diese Einstellung aktiviert, wird der Kurzname der zusammengefügten Buffer in der Hotlist dargestellt (die Darstellung geschieht nach dem ersten "." im Namen)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.hotlist_sort

  - Beschreibung: Sortierung der Hotlist: group_time_*: nach Benachrichtigungstufe (Highlights zuerst) und dann nach Uhrzeit, group_number_*: nach Benachrichtigungstufe (Highlights zuerst) und dann nach Buffer-Nummer, number_*: sortiert nach Buffer-Nummer; asc = aufsteigende Sortierung, desc = absteigende Sortierung

  - Typ: integer

  - Werte: group_time_asc, group_time_desc, group_number_asc, group_number_desc, number_asc, number_desc

  - Standardwert: `group_time_asc`

- weechat.look.hotlist_suffix

  - Beschreibung: Text der am Ende der Hotlist angezeigt werden soll

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.hotlist_unique_numbers

  - Beschreibung: die Nummer des Buffers wird nur einmal in der Hotlist angezeigt (diese Einstellung kommt nur zum Tragen sofern KEINE Buffernamen angezeigt werden)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.hotlist_update_on_buffer_switch

  - Beschreibung: Aktualisiert die Hotlist, wenn der Buffer gewechselt wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.input_cursor_scroll

  - Beschreibung: Anzahl an Zeichen die nach links verschoben werden sollen, falls das Ende der Eingabezeile erreicht wird

  - Typ: integer

  - Werte: 0 .. 100

  - Standardwert: `20`

- weechat.look.input_share

  - Beschreibung: diese Einstellung erlaubt es den Inhalt der aktuellen Eingabezeile in andere Buffern zu übernehmen. Dabei kann unterschieden werden, ob ausschließlich Befehle (commands), nur Text (text) oder beides (all) berücksichtigt werden soll (der Befehlsverlauf der einzelnen Buffer bleibt davon unberührt)

  - Typ: integer

  - Werte: none, commands, text, all

  - Standardwert: `none`

- weechat.look.input_share_overwrite

  - Beschreibung: ist diese Einstellung aktiviert und die Eingabezeile wird für alle Buffer gleichberechtigt genutzt, dann wird der Inhalt im Zielbuffer überschrieben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.input_undo_max

  - Beschreibung: maximale Anzahl von "Rücknahmen" für Befehle im Verlauf, pro Buffer (0: deaktiviert die Funktion)

  - Typ: integer

  - Werte: 0 .. 65535

  - Standardwert: `32`

- weechat.look.item_away_message

  - Beschreibung: Abwesenheitsnachricht im Away-Bar-Item anzeigen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.item_buffer_filter

  - Beschreibung: Zeichen mit welchem signalisiert wird ob im aktuellen Buffer die Filterfunktion eingeschaltet ist (durch Bar-Item "buffer_filter")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"*"`

- weechat.look.item_buffer_zoom

  - Beschreibung: Zeichen mit welchem signalisiert wird ob im aktuellen Buffer der Zoom aktiviert ist (durch Bar-Item "buffer_zoom")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"!"`

- weechat.look.item_mouse_status

  - Beschreibung: Zeichen mit welchem signalisiert wird ob die Mausfunktionalität eingeschaltet ist (durch Bar-Item "mouse_status")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"M"`

- weechat.look.item_time_format

  - Beschreibung: Format für die Zeitanzeige des Bar-Items, "time" (siehe man strftime, welche Platzhalter für das Datum und die Uhrzeit verwendet werden)(Hinweis: Inhalt wird evaluiert, somit kann mittels des Formats "${color:xxx} Farben gesetzt werden, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%H:%M"`

- weechat.look.jump_current_to_previous_buffer

  - Beschreibung: wechselt zum vorher genutzten Buffer falls man mit dem Befehl /buffer *N (N ist die Buffer-Nummer) zum aktuellen Buffer gewechselt hat. Dies dient dazu um zwischen den letzten beiden Buffern hin- und her zu springen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.jump_previous_buffer_when_closing

  - Beschreibung: wechselt zum vorher genutzten Buffer, falls der aktuelle Buffer geschlossen wird (wenn diese Funktion deaktiviert ist wird zum Buffer gewechselt der die relative Position -1 einnimmt)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.jump_smart_back_to_buffer

  - Beschreibung: falls keine weiteren Einträge in der Hotlist vorhanden sind wird zum Ausgangsbuffer zurückgekehrt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.key_bind_safe

  - Beschreibung: Es dürfen nur "geschützte" Tasten zugeordnet werden (Tasten, die mittels ctrl oder meta verwendet werden)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.key_grab_delay

  - Beschreibung: Standardverzögerung (in Millisekunden) um eine Tasteneingabe zu greifen (Standardtastenbelegung: alt-k); die Verzögerung kann mit dem /input Befehl angepasst werden (siehe /help input)

  - Typ: integer

  - Werte: 1 .. 10000

  - Standardwert: `800`

- weechat.look.mouse

  - Beschreibung: Mausunterstützung einschalten

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.mouse_timer_delay

  - Beschreibung: Verzögerung (in Millisekunden) um eine Mauseingabe zu fangen: WeeChat wartet zuerst diese Verzögerung ab bevor das Kommando verarbeitet wird

  - Typ: integer

  - Werte: 1 .. 10000

  - Standardwert: `100`

- weechat.look.nick_color_force

  - Beschreibung: erzwingt für einen Nick eine spezielle Farbe. Die standardmäßig, mittels Streuwertfunktion aus dem Nicknamen, generierte Farbe findet für diese Nicks keine Anwendung (Format:"Nick1:Farbe1;Nick2:Farbe2"). Zuerst wird beim Namen des Nick nach Groß- und Kleinschreibung unterschieden. Sollte der Nick nicht gefunden werden findet keine Unterscheidung mehr statt. Somit ist es möglich die Nicks, für diese Einstellung, ausschließlich in Kleinschrift aufzuführen; die Farbauswahl kann auch eine Hintergrundfarbe beinhalten "Textfarbe,Hintergrundfarbe", zum Beispiel "yellow,red"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.nick_color_hash

  - Beschreibung: Gibt an welcher Hash-Algorithmus zur Farbauswahl für Nicks genutzt werden soll: djb2 = Variante des djb2 (Position der Buchstaben innerhalb des Nicks werden berücksichtigt: Anagramme eines Nick erhalten eine andere Farbe), djb2_32 = Variante von djb2 wobei 32-Bit anstelle von 64-Bit Integer genutzt wird, sum = hier ist nur die Anzahl der Buchstaben maßgeblich, sum_32 = wie sum, nur das 32-Bit anstelle von 64-Bit Integer genutzt wird

  - Typ: integer

  - Werte: djb2, sum, djb2_32, sum_32

  - Standardwert: `djb2`

- weechat.look.nick_color_hash_salt

  - Beschreibung: salt für den Hash-Algorithmus, der zum Auffinden von Nickfarben verwendet wird (der Nickname wird an diesen Salt angehängt und der Hash-Algorithmus verarbeitet diesen String); Wenn Sie dies ändern, werden die Nickfarben gemischt

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.nick_color_stop_chars

  - Beschreibung: Zeichen die genutzt werden sollen damit bei der Generierung der Farbe für einen Nicknamen abgebrochen wird. Es muss mindestens ein Zeichen im Nicknamen enthalten sein der nicht in dieser Liste aufgeführt wird, damit eine Farbe für den Nicknamen erstellt werden kann (Beispiel: Der Nickname lautet "|nick|abwesend" wobei das Zeichen "|" ignoriert werden soll. Die Farbe für den Nicknamen wird nun für "|nick" anstelle von "|nick|abwesend" erstellt); diese Option hat einen Einfluss auf die Option weechat.look.nick_color_force, dort aufgeführte Nicks sollten keine Zeichen haben, die von dieser Option ignoriert werden

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"_|["`

- weechat.look.nick_prefix

  - Beschreibung: Text, der vor dem Nick dargestellt werden soll, Beispiel: "<"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.nick_suffix

  - Beschreibung: Text, der nach dem Nick dargestellt werden soll, Beispiel: ">"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.paste_auto_add_newline

  - Beschreibung: fügt automatisch einen Zeilenumbruch nach dem Einfügen eines Textes hinzu, sofern mindestens zwei Zeilen eingefügt wurden und nach einer Bestätigung gefragt wurde

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.paste_bracketed

  - Beschreibung: aktiviert den "bracketed paste mode" des Terminals (wird nicht durch alle Terminals/Multiplexer unterstützt): Dieser Modus erlaubt das Einfügen von Steuersequenzen die in Klammern gesetzt sind. WeeChat kann dadurch ermitteln ob ein Text eingefügt oder geschrieben wurde ("ESC[200~", gefolgt von dem einzufügenden Text und einem abschließenden "ESC[201~")

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.paste_bracketed_timer_delay

  - Beschreibung: erzwingt beim Einfügen von Steuersequenzen, nach einer vorgegeben Zeit (in Sekunden), dessen Ende, sofern die Steuersequenz zum Beenden ("ESC[201~") nicht innerhalb dieser Zeitvorgabe empfangen wurde

  - Typ: integer

  - Werte: 1 .. 60

  - Standardwert: `10`

- weechat.look.paste_max_lines

  - Beschreibung: maximale Anzahl an Zeilen die, ohne Rückfrage, eingefügt werden sollen (-1 = deaktiviert die Funktion); diese Option wird nur genutzt wenn das Bar-Item "input_paste" in mindestens einer Bar genutzt wird (Standardmäßig wird es in der "input" Bar verwendet)

  - Typ: integer

  - Werte: -1 .. 2147483647

  - Standardwert: `1`

- weechat.look.prefix_action

  - Beschreibung: Präfix, dass bei einer Action-Nachricht genutzt wird (Hinweis: Inhalt wird evaluiert, somit kann mittels des Formats "${color:xxx} Farben gesetzt werden, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `" *"`

- weechat.look.prefix_align

  - Beschreibung: Einstellung für Präfix (keine = none, links = left, rechts = right (Voreinstellung))

  - Typ: integer

  - Werte: none, left, right

  - Standardwert: `right`

- weechat.look.prefix_align_max

  - Beschreibung: maximale Größe des Präfix (0 = keine Limitierung)

  - Typ: integer

  - Werte: 0 .. 128

  - Standardwert: `0`

- weechat.look.prefix_align_min

  - Beschreibung: minimale Größe des Präfix

  - Typ: integer

  - Werte: 0 .. 128

  - Standardwert: `0`

- weechat.look.prefix_align_more

  - Beschreibung: Zeichen welches dargestellt werden soll, falls der Nickname abgeschnitten wird (es darf nur ein Zeichen genutzt werden)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"+"`

- weechat.look.prefix_align_more_after

  - Beschreibung: Das Zeichen welches zum Verkürzen angezeigt wird (Standardzeichen: "+"), nach dem Nick-Suffix darstellen (das vorhandene Leerzeichen wird ersetzt); wird diese Funktion deaktiviert, dann wird das Zeichen nach dem Nick dargestellt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.prefix_buffer_align

  - Beschreibung: Einstellung des Präfix für den Namen des Buffers, falls viele Buffer zu einem Buffer zusammengefügt wurden (keine = none, links = left, rechts = right (Standardwert))

  - Typ: integer

  - Werte: none, left, right

  - Standardwert: `right`

- weechat.look.prefix_buffer_align_max

  - Beschreibung: maximale Größe für den Namen des Buffers, falls mehrere Buffer zusammengefügt worden sind (0 = keine Größenbegrenzung)

  - Typ: integer

  - Werte: 0 .. 128

  - Standardwert: `0`

- weechat.look.prefix_buffer_align_more

  - Beschreibung: Zeichen welches dargestellt werden soll falls der Name des Buffers abgeschnitten wird (wenn mehrere Buffer zusammengefügt wurden und diese somit die selbe Nummer besitzen) (es darf nur ein Zeichen genutzt werden)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"+"`

- weechat.look.prefix_buffer_align_more_after

  - Beschreibung: Das Zeichen welches zum Verkürzen angezeigt wird (Standardzeichen: "+"), nach dem Nick-Suffix darstellen (das vorhandene Leerzeichen wird ersetzt); wird diese Funktion deaktiviert, dann wird das Zeichen nach dem Nick dargestellt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.prefix_error

  - Beschreibung: Präfix, dass bei einer Fehlernachricht genutzt wird (Hinweis: Inhalt wird evaluiert, somit kann mittels des Formats "${color:xxx} Farben gesetzt werden, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"=!="`

- weechat.look.prefix_join

  - Beschreibung: Präfix, dass bei einer Join-Nachricht genutzt wird (Hinweis: Inhalt wird evaluiert, somit kann mittels des Formats "${color:xxx} Farben gesetzt werden, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"-->"`

- weechat.look.prefix_network

  - Beschreibung: Präfix, dass bei einer Netzwerknachricht genutzt wird (Hinweis: Inhalt wird evaluiert, somit kann mittels des Formats "${color:xxx} Farben gesetzt werden, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"--"`

- weechat.look.prefix_quit

  - Beschreibung: Präfix, dass bei einer Quit-Nachricht genutzt wird (Hinweis: Inhalt wird evaluiert, somit kann mittels des Formats "${color:xxx} Farben gesetzt werden, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"<--"`

- weechat.look.prefix_same_nick

  - Beschreibung: setzt ein Präfix welches anstelle des Nicks der Nachricht vorangestellt wird, sofern die vorherige aber nicht die nachfolgende Nachricht von dem selben Nick geschrieben wurde. Wird ein Leerzeichen (" ") genutzt, dann wird der Nachricht kein Präfix vorangestellt. Um diese Funktion zu deaktivieren und den Nick als Präfix zu nutzen, einfach keine Zeichenkette angeben

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.prefix_same_nick_middle

  - Beschreibung: setzt ein Präfix welches anstelle des Nicks der Nachricht vorangestellt wird, sofern die vorherige und die nachfolgende Nachricht von dem selben Nick geschrieben wurde. Wird ein Leerzeichen (" ") genutzt, dann wird der Nachricht kein Präfix vorangestellt. Um diese Funktion zu deaktivieren und den Nick als Präfix zu nutzen, einfach keine Zeichenkette angeben

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.prefix_suffix

  - Beschreibung: Nach dem Präfix anzufügende Zeichenfolge

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"|"`

- weechat.look.quote_nick_prefix

  - Beschreibung: Text der vor dem Nick dargestellt werden soll, wenn die Nachricht gequotet wird (siehe /help cursor)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"<"`

- weechat.look.quote_nick_suffix

  - Beschreibung: Text der nach dem Nick dargestellt werden soll, wenn die Nachricht gequotet wird (siehe /help cursor)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `">"`

- weechat.look.quote_time_format

  - Beschreibung: Zeitformat wenn eine Nachricht gequotet wird (siehe /help cursor)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%H:%M:%S"`

- weechat.look.read_marker

  - Beschreibung: nutzt eine Linie oder ein Zeichen, als Lesezeichen, um die erste ungelesene Nachricht in einem Buffer hervorzuheben

  - Typ: integer

  - Werte: none, line, char

  - Standardwert: `line`

- weechat.look.read_marker_always_show

  - Beschreibung: ist diese Einstellung gesetzt wird das Lesezeichen immer im Buffer dargestellt, auch wenn noch keine neue Nachricht geschrieben wurde

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.read_marker_string

  - Beschreibung: Zeichen, das als Lesezeichen genutzt werden soll (das Zeichen wird bis zum Ende der Zeile wiederholt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"- "`

- weechat.look.read_marker_update_on_buffer_switch

  - Beschreibung: Aktualisiert das Lesezeichen, wenn der Buffer gewechselt wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.save_config_on_exit

  - Beschreibung: die aktuelle Konfiguration wird beim Beenden automatisch gesichert

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.save_config_with_fsync

  - Beschreibung: es wird fsync verwendet um die Konfigurationsdateien mit dem Datenträger zu synchronisieren (siehe man fsync); dies verlangsamt das Sichern der Daten, soll aber zum Beispiel bei einem Stromausfall dafür sorgen, dass keine Daten verloren gehen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.save_layout_on_exit

  - Beschreibung: beim Beenden wird das aktuelle Layout gesichert (Buffer, Fenster oder beides)

  - Typ: integer

  - Werte: none, buffers, windows, all

  - Standardwert: `none`

- weechat.look.scroll_amount

  - Beschreibung: Anzahl der zu scrollenden Zeilen wenn seitenweise geblättert wird (Bild hoch/runter)

  - Typ: integer

  - Werte: 1 .. 2147483647

  - Standardwert: `3`

- weechat.look.scroll_bottom_after_switch

  - Beschreibung: scrollt zum unteren Ende des Fensters nachdem zu einem anderen Buffer gewechselt wurde (die aktuelle Position wird dabei nicht gesichert); diese Funktion hat nur einen Einfluss auf Buffer mit einem formatierten Inhalt und nicht auf Buffer mit einem freien Inhalt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.scroll_page_percent

  - Beschreibung: Angabe in Prozent, die die Seite hoch oder runter gescrollt werden soll (Beispiel: 100 für eine ganze Seite, 50 für eine halbe Seite)

  - Typ: integer

  - Werte: 1 .. 100

  - Standardwert: `100`

- weechat.look.search_text_not_found_alert

  - Beschreibung: Informiert den Anwender falls der gesuchte Text nicht im Buffer gefunden wurde

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.separator_horizontal

  - Beschreibung: das angegebene Zeichen wird verwendet um die horizontalen Linien zu zeichnen. Wird kein Zeichen angegeben, dann zeichnet ncurses eine durchgängige Linie. Dies kann allerdings bei einigen Terminals zu Problemen führen, falls die URL Auswahl genutzt wird. Die Schriftbreite muss exakt ein Zeichen betragen

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"-"`

- weechat.look.separator_vertical

  - Beschreibung: das angegebene Zeichen wird verwendet um die vertikale Linien zu zeichnen. Wird kein Zeichen angegeben, dann zeichnet ncurses eine durchgängige Linie. Die Schriftbreite muss exakt ein Zeichen betragen

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.tab_width

  - Beschreibung: Anzahl an Leerzeichen um Tabulatoren in Nachrichten darzustellen

  - Typ: integer

  - Werte: 1 .. 64

  - Standardwert: `1`

- weechat.look.time_format

  - Beschreibung: Format für das Datum, wenn dieses in eine Zeichenkette umgewandelt und in Nachrichten dargestellt wird (siehe man strftime, welche Platzhalter für das Datum und die Uhrzeit verwendet werden)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%a, %d %b %Y %T"`

- weechat.look.window_auto_zoom

  - Beschreibung: automatischer Zoom für aktuelles Fenster, sobald das Terminalfenster zu klein wird um alle Fenster darstellen zu können (mit der Tastenkombination alt-z kann der Zoom rückgängig gemacht werden, sobald das Terminal wieder groß genug ist)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- weechat.look.window_separator_horizontal

  - Beschreibung: ist die Einstellung aktiviert dann wird eine horizontale Trennlinie zwischen Fenstern gezeichnet

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.window_separator_vertical

  - Beschreibung: ist die Einstellung aktiviert dann wird eine vertikale Trennlinie zwischen Fenstern gezeichnet

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.look.window_title

  - Beschreibung: Fenstertitel für Fenster (Terminal in dem Curses GUI läuft), wird beim Programmstart gesetzt; ein leerer Eintrag belässt den original Fenstertitel (Hinweis: Inhalt wird evaluiert, siehe /help eval); Beispiel: "WeeChat ${info:version}"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.look.word_chars_highlight

  - Beschreibung: durch Kommata getrennte Liste von Zeichen (oder eine Auswahl von Zeichen) bei denen bei einem Highlight keine Worttrennung erfolgt; jeder Eintrag kann ein einzelnes Zeichen oder eine Auswahl von Zeichen sein (Format: a-z), eine Auswahl von Breitzeichen (wide character; zum Beispiel "alnum", siehe man wctype); beginnt das Item mit einem "!" wird die Auswahl umgekehrt (bedeutet, das Zeichen ist NICHT Bestandteil eines Wortes); das Zeichen "*" wird als Platzhalter verwendet; Unicode Zeichen müssen folgendes Format nutzen \u1234, zum Beispiel \u00A0 für geschütztes Leerzeichen (siehe /help print für unterstützte Formate)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"!\u00A0,-,_,|,alnum"`

- weechat.look.word_chars_input

  - Beschreibung: durch Kommata getrennte Liste von Zeichen (oder eine Auswahl von Zeichen) bei denen in der Eingabezeile keine Worttrennung erfolgt; jeder Eintrag kann ein einzelnes Zeichen oder eine Auswahl von Zeichen sein (Format: a-z), eine Auswahl von Breitzeichen (wide character; zum Beispiel "alnum", siehe man wctype); beginnt das Item mit einem "!" wird die Auswahl umgekehrt (bedeutet, das Zeichen ist NICHT Bestandteil eines Wortes); das Zeichen "*" wird als Platzhalter verwendet; Unicode Zeichen müssen folgendes Format nutzen \u1234, zum Beispiel \u00A0 für geschütztes Leerzeichen (siehe /help print für unterstützte Formate)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"!\u00A0,-,_,|,alnum"`

- weechat.network.connection_timeout

  - Beschreibung: Zeitüberschreitung (in Sekunden) für eine Verbindung zu einem entfernten Rechner (mittels einem Kindprozess)

  - Typ: integer

  - Werte: 1 .. 2147483647

  - Standardwert: `60`

- weechat.network.gnutls_ca_system

  - Beschreibung: lädt die standardmäßigen vertrauenswürdigen Zertifizierungsstellen des Systems beim Start; Dies kann deaktiviert werden, um Speicherplatz zu sparen, falls keine SSL-Verbindungen verwendet werden

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.network.gnutls_ca_user

  - Beschreibung: zusätzliche Datei(en) bei den Zertifizierungsstellen; mehrere Dateien müssen durch Doppelpunkte getrennt werden (jeder Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.network.gnutls_handshake_timeout

  - Beschreibung: Zeitüberschreitung für gnutls Handshake (in Sekunden)

  - Typ: integer

  - Werte: 1 .. 2147483647

  - Standardwert: `30`

- weechat.network.proxy_curl

  - Beschreibung: Name des Proxy welcher für URL Downloads mittels Curl genutzt werden soll (wird verwendet um das Inhaltsverzeichnis für Skript-Erweiterung herunterzuladen oder in Skripten, welche die Funktion hook_process nutzen); der Proxy muss mit dem Befehl /proxy eingerichtet werden

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.plugin.autoload

  - Beschreibung: durch Kommata getrennte Liste der Erweiterungen, die beim Programmstart automatisch geladen werden sollen; "*" lädt alle vorhandenen Erweiterungen. Beginnt der Name hingegen mit "!" wird die Erweiterung nicht geladen. Im Namen der Erweiterung kann der Platzhalter "*" verwendet werden (Beispiele: "*" oder "*,!lua,!tcl")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"*"`

- weechat.plugin.extension

  - Beschreibung: durch Kommata getrennte Liste von Dateinamenserweiterungen, welche für die Erweiterungen genutzt werden sollen

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `".so,.dll"`

- weechat.plugin.path

  - Beschreibung: Pfad für die Suche nach Erweiterungen (Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${weechat_data_dir}/plugins"`

- weechat.plugin.save_config_on_unload

  - Beschreibung: speichert Konfigurationen, falls Erweiterungen beendet werden

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.signal.sighup

  - Beschreibung: Befehl welcher ausgeführt werden soll, wenn das Signal empfangen wird. Mehrere Befehle können durch Semikolons getrennt werden (Hinweis: Inhalt wird ausgewertet, siehe / help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${if:${info:weechat_headless}?/reload:/quit -yes}"`

- weechat.signal.sigquit

  - Beschreibung: Befehl welcher ausgeführt werden soll, wenn das Signal empfangen wird. Mehrere Befehle können durch Semikolons getrennt werden (Hinweis: Inhalt wird ausgewertet, siehe / help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"/quit -yes"`

- weechat.signal.sigterm

  - Beschreibung: Befehl welcher ausgeführt werden soll, wenn das Signal empfangen wird. Mehrere Befehle können durch Semikolons getrennt werden (Hinweis: Inhalt wird ausgewertet, siehe / help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"/quit -yes"`

- weechat.signal.sigusr1

  - Beschreibung: Befehl welcher ausgeführt werden soll, wenn das Signal empfangen wird. Mehrere Befehle können durch Semikolons getrennt werden (Hinweis: Inhalt wird ausgewertet, siehe / help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.signal.sigusr2

  - Beschreibung: Befehl welcher ausgeführt werden soll, wenn das Signal empfangen wird. Mehrere Befehle können durch Semikolons getrennt werden (Hinweis: Inhalt wird ausgewertet, siehe / help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.startup.command_after_plugins

  - Beschreibung: Befehl wird ausgeführt, wenn WeeChat gestartet wird, nachdem die Erweiterungen geladen wurden. Mehrere Befehle können durch Semikolons getrennt werden (Hinweis: Inhalt wird ausgewertet, siehe / help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.startup.command_before_plugins

  - Beschreibung: Befehl wird ausgeführt, wenn WeeChat gestartet wird, bevor Erweiterungen geladen werden. Mehrere Befehle können durch Semikolons getrennt werden (Hinweis: Inhalt wird ausgewertet, siehe / help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.startup.display_logo

  - Beschreibung: WeeChat-Logo beim Start anzeigen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.startup.display_version

  - Beschreibung: WeeChat-Version beim Start anzeigen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.startup.sys_rlimit

  - Beschreibung: setzt Ressourcenbeschränkungen für den WeeChat Prozess. (Format: "res1:limit1,res2:limit2"; Ressourcenname ist das Ende der Konstanten (RLIMIT_XXX) in Kleinbuchstaben (siehe man setrlimit für Werte); limit -1 bedeutet "unbegrenzt"; Beispiele: für die Core-Datei wird eine unbegrenzte Dateigröße bestimmt und die virtuelle Speicherkapazität auf maximal 1GB festgelegt: "core:-1,as:1000000000"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

## 8. 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 Erweiterung).

### 8.1. 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 Channels #weechat und #weechat-fr (Standardport (6667) wird genutzt):

    $ weechat irc://alice@irc.libera.chat/#weechat,#weechat-fr

### 8.2. Server

#### 8.2.1. 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 /server angelegt werden.

Um zum Beispiel eine SSL verschlüsselte Verbindung zu libera.chat herzustellen:

    /server add libera irc.libera.chat/6697 -ssl

Um WeeChat beim Start direkt mit dem 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 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}"

| 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`.

#### 8.2.2. 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             string   "irc.libera.chat/6697"
    irc.server.libera.anti_flood_prio_high  integer  null -> 2
    irc.server.libera.anti_flood_prio_low   integer  null -> 2
    irc.server.libera.autoconnect           boolean  on
    irc.server.libera.autojoin              string   null -> ""
    irc.server.libera.autoreconnect         boolean  null -> on
    irc.server.libera.autoreconnect_delay   integer  null -> 10
    irc.server.libera.autorejoin            boolean  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          string   null -> "*"
    irc.server.libera.charset_message       integer  null -> message
    irc.server.libera.command               string   null -> ""
    irc.server.libera.command_delay         integer  null -> 0
    irc.server.libera.connection_timeout    integer  null -> 60
    irc.server.libera.default_chantypes     string   null -> "#&"
    irc.server.libera.ipv6                  boolean  null -> on
    irc.server.libera.local_hostname        string   null -> ""
    irc.server.libera.msg_kick              string   null -> ""
    irc.server.libera.msg_part              string   null -> "WeeChat ${info:version}"
    irc.server.libera.msg_quit              string   null -> "WeeChat ${info:version}"
    irc.server.libera.nicks                 string   null -> "alice,alice1,alice2,alice3,alice4"
    irc.server.libera.nicks_alternate       boolean  null -> on
    irc.server.libera.notify                string   null -> ""
    irc.server.libera.password              string   null -> ""
    irc.server.libera.proxy                 string   null -> ""
    irc.server.libera.realname              string   null -> ""
    irc.server.libera.sasl_fail             integer  null -> reconnect
    irc.server.libera.sasl_key              string   null -> ""
    irc.server.libera.sasl_mechanism        integer  null -> plain
    irc.server.libera.sasl_password         string   "${sec.data.libera}"
    irc.server.libera.sasl_timeout          integer  null -> 15
    irc.server.libera.sasl_username         string   "alice"
    irc.server.libera.split_msg_max_length  integer  null -> 512
    irc.server.libera.ssl                   boolean  on
    irc.server.libera.ssl_cert              string   null -> ""
    irc.server.libera.ssl_dhkey_size        integer  null -> 2048
    irc.server.libera.ssl_fingerprint       string   null -> ""
    irc.server.libera.ssl_password          string   null -> ""
    irc.server.libera.ssl_priorities        string   null -> "NORMAL:-VERS-SSL3.0"
    irc.server.libera.ssl_verify            boolean  null -> on
    irc.server.libera.usermode              string   null -> ""
    irc.server.libera.username              string   null -> "alice"

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

#### 8.2.3. SSL Zertifikate

Wenn eine Verbindung mittels SSL zu einem IRC Server hergestellt wird dann überprüft WeeChat immer ob dieser Verbindung sicher ist.

Einige Optionen dienen dazu eine SSL 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.ssl_cert

  Datei mit den SSL Zertifikaten die genutzt werden um automatisch Ihren Nick zu identifizieren (zum Beispiel CertFP auf oftc, siehe unten)

irc.server.xxx.ssl_dhkey_size

  Größe des Schlüssels der genutzt werden soll beim Schlüsseltausch mittels der Diffie-Hellman Methode (Standardwert: 2048)

irc.server.xxx.ssl_verify

  überprüft ob der SSL Verbindung uneingeschränkt vertraut werden kann (Standardwert: AN)

| Die Option "ssl_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.

##### erstes Beispiel: Verbindung zu oftc und Überprüfung der Zertifikate

- Importieren Sie die Zertifikate in einer Shell:

    $ mkdir -p ~/.config/weechat/ssl
    $ wget -O ~/.config/weechat/ssl/CAs.pem https://www.spi-inc.org/ca/spi-cacert.crt

| Sie müssen `~/.config/weechat` durch den Pfad zu Ihrem WeeChat-Konfigurationsverzeichnis ersetzen, das auch beispielsweise `~/.weechat` sein kann.

| 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

##### zweites Beispiel: Verbindung zu oftc mittels CertFP

- Erstellen Sie ein Zertifikat in der Shell:

    $ mkdir -p ~/.config/weechat/ssl
    $ cd ~/.config/weechat/ssl
    $ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem

| 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.ssl_cert "${weechat_config_dir}/ssl/nick.pem"
    /connect oftc
    /msg nickserv cert add

Für weiterreichende Informationen lesen Sie bitte: https://www.oftc.net/NickServ/CertFP

#### 8.2.4. 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: SSL 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)

##### 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:

    $ openssl ecparam -genkey -name prime256v1 -out ~/.config/weechat/ecdsa.pem

| 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:

    $ 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

#### 8.2.5. Verbindung zum Server

Um sich mit einem Server zu Verbinden, nutzt man den /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 `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

#### 8.2.6. Connect with TOR and SASL

Einige Server unterstützen eine Verbindungen mittels TOR (https://www.torproject.org/), 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):

    $ 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 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

### 8.3. Kanäle

Kanäle können mit dem Befehl /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"

| 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"

Um eine Hilfe über das Format zu erhalten, siehe `/help irc.server.libera.autojoin`.

### 8.4. private Nachrichten

Sie können eine private Nachricht mit dem Befehl /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

### 8.5. einfacher Filter für join/part/quit Nachrichten

Es existiert ein einfacher Filter für join/part/quit Nachrichten falls ein Nick für eine vorgegebene Zeit in einem Channel inaktiv gewesen ist.

Diese Funktion ist standardmäßig aktiviert, aber Sie müssen einen Filter erstellen damit solche Nachrichten im Buffer unterdrückt werden. Ein Beispiel:

    /filter add irc_smart * irc_smart_filter *

Dabei ist es natürlich möglich den Filter in der Form einzurichten dass er nur für einen Channel Gültigkeit besitzt oder aber für mehrere Channels die mit dem selben Namen beginnen (siehe `/help filter`):

    /filter add irc_smart_weechat irc.libera.#weechat irc_smart_filter *
    /filter add irc_smart_weechats irc.libera.#weechat* irc_smart_filter *

Sie können auch nur join oder part/quit Nachrichten unterdrücken:

    /set irc.look.smart_filter_join on
    /set irc.look.smart_filter_quit on

Zusätzlich kann auch eine Verzögerung (in Minuten) eingestellt werden:

    /set irc.look.smart_filter_delay 5

Falls ein Nick in den letzten fünf Minuten nicht aktiv gewesen ist werden seine join und/oder part/quit Nachrichten im Channel unterdrückt.

### 8.6. 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!"

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

Folgende Platzhalter können in den CTCP-Antworten genutzt werden. Diese werden dann mit dem entsprechenden Wert ersetzt:

Platzhalter | Beschreibung | Wert/Beispiel
--- | --- | ---

     $clientinfo

Liste der CTCP Antworten

`ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION`

     $version

WeeChat Version

`0.4.0-dev`

     $versiongit

WeeChat Version + Git version (1)

`0.4.0-dev (git: v0.3.9-104-g7eb5cc4)`

     $git

Git Version (1)

`v0.3.9-104-g7eb5cc4`

     $compilation

Datum der Kompilierung

`Dec 16 2012`

     $osinfo

Info über das genutzte OS

`Linux 2.6.32-5-amd64 / x86_64`

     $site

WeeChat Seite

`https://weechat.org/`

     $download

WeeChat, Download Seite

`https://weechat.org/download`

     $time

Aktuelle Uhrzeit/Datum

`Sun, 16 Dec 2012 10:40:48 +0100`

     $username

Username beim IRC Server

`Name`

     $realname

Realname beim IRC Server

`John Doe`

| (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.

Falls CTCP Optionen nicht festgelegt sind, lauten die CTCP Antworten:

CTCP | Antwortformat | Beispiel
--- | --- | ---
CLIENTINFO | `$clientinfo` | `ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION`
FINGER | `WeeChat $versiongit` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4)`
SOURCE | `$download` | `https://weechat.org/download`
TIME | `$time` | `Sun, 16 Dec 2012 10:40:48 +0100`
USERINFO | `$username ($realname)` | `Name (John Doe)`
VERSION | `WeeChat $versiongit ($compilation)` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4) (Dec 16 2012)`

### 8.7. 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:

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

### 8.8. Befehle

- `admin`: Information über den Server-Administrator abfragen

    /admin  [<target>]

    target: Servername

- `allchan`: führt einen Befehl aus der an alle Kanäle gesendet wird, die mit einem Server verbunden sind

    /allchan  [-current] [-parted] [-exclude=<channel>[,<channel>...]] <command>
              [-current] [-parted] -include=<channel>[,<channel>...] <command>

     -current: führt einen Befehl aus der an alle Kanäle des aktuellen Servers gesendet wird
      -parted: wird nur bei vom Server getrennten Kanälen ausgeführt
     -exclude: dient zum Ausschluss ausgewählter Kanäle (Platzhalter "*" kann verwendet werden)
     -include: findet Anwendung für ausgewählte Kanäle (Platzhalter "*" kann verwendet werden)\n
      command: Befehl der ausgeführt werden soll

    Argumente und Befehl werden evaluiert (siehe /help eval), folgende Variablen können genutzt werden:
      $server             Name des Servers
      $channel            Name des Kanals
      $nick               Nickname der auf dem Server genutzt wird
      ${irc_server.xxx}   Variable xxx von Server
      ${irc_channel.xxx}  Variable xxx von Kanal

    Beispiele:
      führe den Befehl '/me Ich teste gerade etwas...' für alle Kanäle aus:
        /allchan /me Ich teste gerade etwas...
      schicke 'Hallo Welt' an jeden Kanal, ausgenommen an den #weechat Kanal:
        /allchan -exclude=#weechat Hallo Welt
      schicke 'Hallo Welt' an jeden Kanal, ausgenommen an den #weechat Kanal und Kanäle die mit #linux beginnen:
        /allchan -exclude=#weechat,#linux* Hallo Welt
      schickt den Text 'Hallo' an alle Kanäle die mit #linux beginnen:
        /allchan -include=#linux* Hallo
      schließt alle, vom Server getrennte, Kanäle.:
        /allchan -parted /close

- `allpv`: führt einen Befehl aus der an alle privaten Buffer gesendet wird, die mit einem Server verbunden sind

    /allpv  [-current] [-exclude=<nick>[,<nick>...]] <command>
            [-current] -include=<nick>[,<nick>...] <command>

     -current: führt einen Befehl aus der für alle privaten Buffer, des aktuellen Servers, Anwendung findet
     -exclude: dient zum Ausschluss ausgewählter Nicks (Platzhalter "*" kann verwendet werden)
     -include: findet Anwendung für ausgewählte Nicks (Platzhalter "*" kann verwendet werden)
      command: Befehl der ausgeführt werden soll

    Argumente und Befehl werden evaluiert (siehe /help eval), folgende Variablen können genutzt werden:
      $server             Name des Servers
      $channel            Name des Kanals
      $nick               Nickname der auf dem Server genutzt wird
      ${irc_server.xxx}   Variable xxx von Server
      ${irc_channel.xxx}  Variable xxx von Kanal

    Beispiele:
      führe den Befehl '/me Ich teste gerade etwas...' für alle privaten Buffer aus:
        /allpv /me Ich teste gerade etwas...
      schicke 'Hallo' an alle, ausgenommen an Nick foo:
        /allpv -exclude=foo Hallo
      schicke den Text 'Hallo' an alle, ausgenommen für Nick foo und Nicks die mit bar beginnen:
        /allpv -exclude=foo,bar* Hallo
      schicke den Text 'Hallo' an alle Nicks die mit bar beginnen:
        /allpv -include=bar* Hallo
      schließe alle privaten Buffer:
        /allpv /close

- `allserv`: führt einen Befehl aus, der zu allen verbundenen Server gesendet wird

    /allserv  [-exclude=<server>[,<server>...]] <command>
              -include=<server>[,<server>...] <command>

     -exclude: dient zum Ausschluss ausgewählter Server (Platzhalter "*" kann verwendet werden)
     -include: findet Anwendung für ausgewählte Server (Platzhalter "*" kann verwendet werden)
      command: Befehl der ausgeführt werden soll

    Argumente und Befehl werden evaluiert (siehe /help eval), folgende Variablen können genutzt werden:
      $server             Name des Servers
      $nick               Nickname der auf dem Server genutzt wird
      ${irc_server.xxx}   Variable xxx von Server

    Beispiele:
      ändere den Nick auf allen Servern:
        /allserv /nick newnick
      setzt den Status, auf allen Servern, auf abwesend:
        /allserv /away I'm away
      führt ein whois mit meinem nick auf allen Servern aus:
        /allserv /whois $nick

- `auth`: authentifizieren mit SASL

    /auth  [<username> <password>]

    username: SASL Username (Inhalt ist evaluiert, siehe /help eval; Serveroptionen werden mit ${irc_server.xxx} evaluiert und ${server} wird durch den Servernamen ersetzt)
    password: SASL-Passwort oder Pfad zur Datei mit privatem Schlüssel (Inhalt ist evaluiert, siehe /help eval; Serveroptionen werden mit ${irc_server.xxx} evaluiert und ${server} wird durch den Servernamen ersetzt)

    Wenn Benutzername und Kennwort nicht angegeben wurden, werden die Werte aus den Serveroptionen "sasl_username" und "sasl_password" (oder "sasl_key") verwendet.

    Beispiele:
      authentifizieren Sie sich mit dem im Server definierten Benutzernamen/Passwort:
        /auth
      authentifizieren Sie sich mit einem anderen Benutzer:
        /auth user2 password2
      authentifizieren als anderer Benutzer mit Mechanismus ecdsa-nist256p-challenge:
        /auth user2 ${weechat_config_dir}/ecdsa2.pem

- `autojoin`: Konfigurieren der Serveroption "autojoin"

    /autojoin  add [<channel1> [<channel2>...]]
               addraw <channel1>[,<channel2>...] [<key1>[,<key2>...]]
               del [<channel1> [<channel2>...]]
               save
               sort

        add: Hinzufügen des aktuellen Kanals oder einer Liste von Kanälen (mit optionalen Schlüsseln) zur autojoin-Option; Wenn Sie sich in dem Kanal befinden und der Schlüssel nicht übergeben wird, wird der Schlüssel im Kanal gelesen
     addraw: das IRC Roh-Format wird genutzt (wie beim /join Befehl): alle Kanäle werden durch Kommata voneinander getrennt und optional werden die Schlüssel durch Kommata separiert
        del: Löschen des aktuellen Kanals oder eine Liste von Kanälen aus der autoJoin-Option
    channel: Kanalname
        key: Schlüssel für den Kanal
       save: Speichert die aktuell besuchten Kanäle in der autojoin-Option
       sort: sortiert die Kanäle alphabetisch in der autojoin Option

    Beispiele:
      /autojoin add
      /autojoin add #test
      /autojoin add #chan1 #chan2
      /autojoin addraw #chan1,#chan2,#chan3 key1,key2
      /autojoin del
      /autojoin del #chan1
      /autojoin save
      /autojoin sort

- `ban`: Nicknamen oder Hosts sperren/verbannen

    /ban  [<channel>] [<nick> [<nick>...]]

    channel: Name des Kanals
       nick: Nick oder Host

    Ohne Angabe von Argumenten wird die Ban-Liste für den aktuellen Kanal angezeigt.

- `cap`: Aushandlung der Clientfähigkeit

    /cap  ls
          list
          req|ack [<capability> [<capability>...]]
          end

       ls: führt alle Fähigkeiten auf die vom Server unterstützt werden
     list: führt alle Fähigkeiten auf die aktuell genutzt werden
      req: fordert eine Fähigkeit an
      ack: bestätigt eine Fähigkeit die von Serverseite eine Bestätigung erfordert
      end: beendet die Übertragung von Fähigkeiten

    Ohne Angaben von Argumenten werden "ls" und "list" gesendet.

    Fähigkeiten die von WeeChat unterstützt werden: account-notify, away-notify, cap-notify, chghost, extended-join, invite-notify, message-tags, multi-prefix, server-time, setname, userhost-in-names..

    Fähigkeiten die standardmäßig genutzt werden sollen, können mit der Option irc.server_default.capabilities gesetzt werden (oder individuell für jeden Server mit der Option irc.server.xxx.capabilities).

    Beispiele:
       /cap
       /cap req multi-prefix away-notify

- `connect`: Mit IRC-Server(n) verbinden

    /connect  [<server> [<server>...]] [-<option>[=<value>]] [-no<option>] [-nojoin] [-switch]
              -all|-auto|-open [-nojoin] [-switch]

        server: Name des Servers, folgende Möglichkeiten bestehen:
                - intern genutzter Servername, zu dem eine Verbindung aufgebaut werden soll (Server muss zuerst mittels "/server add" angelegt werden (wird empfohlen!))
                - Hostname/Port oder IP/Port, Port 6667 wird standardmäßig verwendet
                - URL mit folgendem Format: irc[6][s]://[nickname[:password]@]irc.example.org[:port][/#channel1][,#channel2[...]]
                Hinweis: bei einer Adresse/IP/URL, wird ein temporärer Server erstellt (DIESER WIRD NICHT GESPEICHERT), siehe /help irc.look.temporary_servers
        option: legt Einstellung für den Server fest (die Boolean-Einstellungen können weggelassen werden)
      nooption: deaktiviert eine Boolean Einstellung (Beispiel: -nossl)
          -all: Verbindung wird zu den Servern hergestellt, für die eine Konfiguration vorhanden ist
         -auto: Verbindung zu den Servern herstellen, für die die Einstellung "autoconnect" aktiviert ist
         -open: stellt eine Verbindung zu allen geöffneten Servern her, zu denen aktuell keine Verbindung besteht
       -nojoin: Channel(s) werden nicht betreten (auch falls die Funktion "autojoin" aktiviert sein sollte)
       -switch: wechselt zur nächsten Server-Adresse

    Um eine Verbindung zum Server, oder Verbindungsversuche, zu beenden wird der Befehl /disconnect verwendet.

    Beispiele:
      /connect libera
      /connect irc.oftc.net/6667
      /connect irc6.oftc.net/6667 -ipv6
      /connect irc6.oftc.net/6697 -ipv6 -ssl
      /connect my.server.org/6697 -ssl -password=test
      /connect irc://nick@irc.oftc.net/#channel
      /connect -switch

- `ctcp`: CTCP-Nachricht verschicken

    /ctcp  [-server <server>] <target>[,<target>...] <type> [<arguments>]

       server: an diesen Server senden (interner Servername)
       target: Nick- oder Kanalname an welchen eine CTCP-Nachricht geschickt werden soll ('*' = aktueller Kanal)
         type: CTCP-Nachricht (Beispiele: "version", "ping", usw.)
    arguments: Argumente für CTCP

    Beispiele:
      /ctcp toto time
      /ctcp toto version
      /ctcp * version

- `cycle`: Einen Kanal verlassen und wieder betreten

    /cycle  [<channel>[,<channel>...]] [<message>]

    channel: Name des Kanals
    message: Abschiedsnachricht (wird anderen Usern angezeigt)

- `dcc`: Startet DCC Verbindung (Datentransfer oder einen Direktchat)

    /dcc  chat <nick>
          send <nick> <file>

    nick: Nickname
    file: zu versendende Datei (welche lokal vorliegt)

    Beispiel:
      sendet eine Chat-Anfrage an den User "toto"
        /dcc chat toto
      sendet die Datei "/home/foo/bar.txt" an den User "toto"
        /dcc send toto /home/foo/bar.txt

- `dehalfop`: halb-Operator-Privilegien einem oder mehreren Nick(s) entziehen

    /dehalfop  <nick> [<nick>...]
               * -yes

    nick: Nick oder Maske (Platzhalter "*" kann verwendet werden)
       *: entzieht allen Nicks im Kanal den half-operator-Status, ausgenommen sich selber

- `deop`: Operator-Privilegien einem oder mehreren Nicknamen entziehen

    /deop  <nick> [<nick>...]
           * -yes

    nick: Nick oder Maske (Platzhalter "*" kann verwendet werden)
       *: entzieht allen Nicks im Kanal den Operator-Status, ausgenommen sich selber

- `devoice`: Voice-Privilegien einem oder mehreren Nicknamen entziehen

    /devoice  <nick> [<nick>...]
              * -yes

    nick: Nick oder Maske (Platzhalter "*" kann verwendet werden)
       *: entzieht allen Nicks im Kanal den voice-Status

- `die`: Server herunterfahren

    /die  [<target>]

    target: Servername

- `disconnect`: Verbindung zu einem oder mehreren IRC-Server(n) trennen

    /disconnect  [<server>|-all|-pending [<reason>]]

      server: interner Name des Servers
        -all: Verbindung zu allen Servern trennen
    -pending: bricht eine automatische Wiederverbindung zu Servern ab, zu denen gerade eine erneute Verbindung aufgebaut werden soll
      reason: Begründung für die Trennung

- `halfop`: halb-Operator Status an Nick(s) vergeben

    /halfop  <nick> [<nick>...]
             * -yes

    nick: Nick oder Maske (Platzhalter "*" kann verwendet werden)
       *: vergibt an alle Nicks im Kanal den half-operator-Status

- `ignore`: Ignoriert Nicks/Hosts von Kanälen oder Servern

    /ignore  list
             add [re:]<nick> [<server> [<channel>]]
             del <number>|-all

         list: zeigt alle Ignorierungen an
          add: fügt eine Ignorierung hinzu
         nick: Nick oder Hostname (dies kann ein erweiterter regulärer POSIX Ausdruck sein, sofern "re:" angegeben wird oder eine Maske mittels "*" genutzt wird um ein oder mehrere Zeichen zu ersetzen)
          del: entfernt eine Ignorierung
       number: Nummer der Ignorierung die entfernt werden soll (nutze "list" um den entsprechenden Eintrag zu finden)
         -all: entfernt alle Einträge
       server: interner Name des Server auf welchem die Ignorierung statt finden soll
      channel: Name des Kanals, in dem die Ignorierung statt finden soll

    Hinweis: Um zwischen Groß-und Kleinschreibung zu unterscheiden muss am Wortanfang "(?-i)" genutzt werden.

    Beispiele:
      ignoriert den Nick "toto" global:
        /ignore add toto
      ignoriert den Host "toto@domain.com" auf dem libera Server:
        /ignore add toto@domain.com libera
      ignoriert den Host "toto*@*.domain.com" im Chat libera/#weechat:
        /ignore add toto*@*.domain.com libera #weechat

- `info`: Information über den Server abfragen

    /info  [<target>]

    target: Servername

- `invite`: Eine Person in einen Kanal einladen

    /invite  <nick> [<nick>...] [<channel>]

       nick: Nickname
    channel: Name des Kanals

- `ison`: Überprüft ob ein Nick gegenwärtig auf IRC angemeldet ist

    /ison  <nick> [<nick>...]

    nick: Nickname

- `join`: einen Kanal betreten

    /join  [-noswitch] [-server <server>] [<channel1>[,<channel2>...]] [<key1>[,<key2>...]]

    -noswitch: es wird nicht zu dem angegebenen Kanal gewechselt
       server: an angegebenen Server (interner Name) senden
      channel: Name des Kanals, der betreten werden soll
          key: Zugriffsschlüssel für einen Kanal (Kanäle, die einen Zugriffsschlüssel benötigen, müssen zuerst aufgeführt werden)

    Beispiele:
      /join #weechat
      /join #geschützter_Kanal,#weechat Zugriffsschlüssel
      /join -server libera #weechat
      /join -noswitch #weechat

- `kick`: wirft einen User aus einem Kanal

    /kick  [<channel>] <nick> [<reason>]

    channel: Kanalname
       nick: Nick der rausgeworfen werden soll
     reason: Begründung für den Rauswurf (evaluiert, siehe /help eval; besondere Variablen ${nick} (eigener Nick), ${target} (betroffener Nick), ${channel} und ${server}, werden durch den entsprechenden Wert ersetzt)

- `kickban`: wirft einen User aus einem Kanal und sein Host kommt auf die Bannliste

    /kickban  [<channel>] <nick> [<reason>]

    channel: Kanalname
       nick: Nickname der rausgeworfen und gebannt werden soll
     reason: Begründung für den Rauswurf (evaluiert, siehe /help eval; besondere Variablen ${nick} (eigener Nick), ${target} (betroffener Nick), ${channel} und ${server}, werden durch den entsprechenden Wert ersetzt)

    Es ist möglich kick/ban mittels einer Maske auszuführen. Der Nick wird aus der Maske heraus gefiltert und durch "*" ersetzt.

    Beispiel:
      sperre "*!*@host.com" und kicke dann "toto":
        /kickban toto!*@host.com

- `kill`: Beende Client-Server Verbindung

    /kill  <nick> [<reason>]

      nick: Nickname
    reason: Grund der Abmeldung

- `links`: alle Servernamen auflisten, die dem antwortenden Server bekannt sind

    /links  [[<target>] <server_mask>]

         target: dieser Remote-Server soll die Anfrage beantworten
    server_mask: die aufzulistenden Server sollen diesem Muster entsprechen

- `list`: Kanäle und deren Themen auflisten

    /list  [-server <server>] [-re <regex>] [<channel>[,<channel>...]] [<target>]

     server: an diesen Server senden (interner Name)
     regexp: erweiterter regulärer POSIX Ausdruck, der auf die Ausgabe angewendet werden soll (zwischen Groß- und Kleinschreibung wird nicht unterschieden. Um zwischen Groß- und Kleinschreibung zu unterscheiden muss zu Beginn "(?-i)" genutzt werden)
    channel: aufzulistender Kanal
     target: Servername

    Beispiele:
      listet alle Kanäle des Servers auf (dies kann bei großen Netzwerken sehr lange dauern):
        /list
      listet den Kanal #weechat auf:
        /list #weechat
      listet alle Kanäle auf die mit "#weechat" beginnen (dies kann bei großen Netzwerken sehr lange dauern):
        /list -re #weechat.*

- `lusers`: Statistik über die Größe des IRC-Netzwerks abfragen

    /lusers  [<mask> [<target>]]

      mask: ausschließlich Server, die diesem Muster entsprechen
    target: Server, der die Anfrage weiterleiten soll

- `map`: Zeigt das IRC Netzwerk, in Form einer Baumstruktur, an

- `me`: eine CTCP ACTION an den aktuellen Kanal senden

    /me  <message>

    message: zu sendende Nachricht

- `mode`: Eigenschaften eines Kanals oder von einem User ändern

    /mode  [<channel>] [+|-]o|p|s|i|t|n|m|l|b|e|v|k [<arguments>]
           <nick> [+|-]i|s|w|o

    Kanal-Eigenschaften:
      channel: zu ändernder Kanal (standardmäßig der erste Kanal)
      o: vergibt/entzieht Operator Privilegien
      p: privater Kanal
      s: geheimer Kanal
      i: geschlossener Kanal (Zutritt nur mit Einladung)
      t: nur Operatoren dürfen das Thema setzen
      n: keine Nachrichten von außerhalb des Kanals zulassen
      m: moderierter Kanal (schreiben nur mit Voice)
      l: maximale Anzahl an Usern im Kanal festlegen
      b: Bannmaske für zu sperrende User (in nick!ident@host-Form)
      e: legt Ausnahmemaske fest
      v: vergibt/entzieht Schreibrechte (voice) in moderierten Kanälen
      k: legt ein Passwort für den Kanal fest
    User-Eigenschaften:
      nick: zu ändernder Nickname
      i: User als unsichtbar kennzeichnen
      s: User empfängt Server-Nachrichten
      w: User empfängt WALLOPS
      o: User ist Channel-Operator

    Die Liste der hier dargestellten Eigenschaften ist nicht vollständig. Es sollte die Dokumentation des jeweiligen Servers zu Rate gezogen werden, um alle verfügbaren Modi zu erfahren.

    Beispiele:
      schützt das Thema des Channels #weechat:
        /mode #weechat +t
      um sich auf dem Server unsichtbar machen:
        /mode nick +i

- `motd`: Die "Mitteilung des Tages" abfragen

    /motd  [<target>]

    target: Servername

- `msg`: Nachricht an Nick/Kanal verschicken

    /msg  [-server <server>] <target>[,<target>...] <text>

    server: schicke an diesen Server (interner Servername)
    target: Nick oder Kanal (darf eine Maske sein, '*' = aktueller c)
      text: zu sendender Text

- `names`: Nicknamen des Kanals auflisten

    /names  [<channel>[,<channel>...]]

    channel: Name des Kanals

- `nick`: derzeitigen Nicknamen ändern

    /nick  [-all] <nick>

    -all: Nickname auf allen verbundenen Servern ändern
    nick: neuer Nickname

- `notice`: Mitteilung (notice) an einen User verschicken

    /notice  [-server <server>] <target> <text>

    server: an diesen Server senden (interner Name)
    target: Nick- oder Kanalname
      text: zu sendender Text

- `notify`: fügt eine Benachrichtigung für An- oder Abwesenheit von Nicks auf Servern hinzu

    /notify  add <nick> [<server> [-away]]
             del <nick>|-all [<server>]

       add: fügt eine Benachrichtigung hinzu
      nick: Nickname
    server: interner Name des Servers (Standard: aktueller Server)
     -away: gibt eine Benachrichtigung aus, falls sich die Abwesenheitsnachricht ändert (der Nick wird mittels whois abgefragt)
       del: entfernt eine Benachrichtigung
      -all: entfernt alle Benachrichtigungen

    Ohne Angabe von Argumenten werden alle Benachrichtigungen für den aktuellen Server angezeigt (um alle Server abzufragen muss der Befehl im Core Buffer ausgeführt werden).

    Beispiele:
      Benachrichtigung falls sich "toto" am aktuellen Server an- oder abmeldet:
        /notify add toto
      Benachrichtigung falls sich "toto" am libera Server an- oder abmeldet:
        /notify add toto libera
      Benachrichtigung falls "toto" den Befehl away am libera Server nutzt:
        /notify add toto libera -away

- `op`: Status des Kanal-Operator an Nicknamen vergeben

    /op  <nick> [<nick>...]
         * -yes

    nick: Nick oder Maske (Platzhalter "*" kann verwendet werden)
       *: vergibt an alle Nicks im Kanal den Operator-Status

- `oper`: Operator Privilegien anfordern

    /oper  <user> <password>

        user: Username
    password: Passwort

- `part`: Einen Kanal verlassen

    /part  [<channel>[,<channel>...]] [<message>]

    channel: Name des Kanals welcher verlassen werden soll
    message: Abschiedsnachricht (wird anderen Usern angezeigt)

- `ping`: sendet einen Ping an den Server

    /ping  <target1> [<target2>]

    target1: Server
    target2: Ping an diesen Server weiterleiten

- `pong`: Auf Ping antworten

    /pong  <daemon> [<daemon2>]

     Daemon: Daemon welcher auf die Ping-Nachricht geantwortet hat
    Daemon2: Nachricht an diesen Daemon weiterleiten

- `query`: Eine private Nachricht an einen Nick schicken

    /query  [-noswitch] [-server <server>] <nick>[,<nick>...] [<text>]

    -noswitch: es wird nicht zum neuen Buffer gewechselt
    server: an diesen Server senden (interner Name)
    target: Nickname
      text: zu sendender Text

- `quiet`: Nicks oder Hosts das Wort entziehen (User können im Kanal erst schreiben, wenn sie "+v" oder höher besitzen)

    /quiet  [<channel>] [<nick> [<nick>...]]

    channel: Name des Kanals
       nick: Nick oder Host

    Ohne Angabe von Argumenten wird die Quiet-Liste für den aktuellen Kanal angezeigt.

- `quote`: Daten direkt an Server senden (siehe RFC 2812)

    /quote  [-server <server>] <data>

    server: an diesen Server senden (interner Name wird genutzt)
    data: unbearbeitete (RAW) Daten die gesendet werden sollen

- `reconnect`: Mit einem oder mehreren Server(n) erneut verbinden

    /reconnect  <server> [<server>...] [-nojoin] [-switch]
                -all [-nojoin] [-switch]

     server: Servername zu welchem neu verbunden werden soll (interner Name)
       -all: mit allen Servern neu verbinden
    -nojoin: Kanäle werden nicht betreten (auch falls autojoin für diesen Server aktiviert ist)
    -switch: wechselt zur nächsten Server-Adresse

- `rehash`: Den Server auffordern seine Konfigurationsdatei neu zu laden

    /rehash  [<option>]

    option: zusätzliche Einstellung, die von manchen Servern berücksichtigt wird

- `remove`: zwingt einen User einen Kanal zu verlassen

    /remove  [<channel>] <nick> [<reason>]

    channel: Kanalname
       nick: Nick der rausgeworfen werden soll
     reason: Begründung für den Rauswurf (Variablen die genutzt werden können: $nick, $channel und $server)

- `restart`: Server dazu bringen sich selbst neu zu starten

    /restart  [<target>]

    target: Servername

- `sajoin`: fordert einen User auf einen oder mehrere Kanäle zu betreten

    /sajoin  <nick> <channel>[,<channel>...]

       nick: Nickname
    channel: Name des Kanals

- `samode`: ändert den Modus des Kanals ohne das Operator-Privilegien vorliegen

    /samode  [<channel>] <mode>

    Channel: Name des Kanals
       Mode: neuer Modus für Kanal

- `sanick`: zwingt einen User den Nick zu ändern

    /sanick  <nick> <new_nick>

        nick: Nickname
    new_nick: neuer Nickname

- `sapart`: zwingt einen User den oder die Kanäle zu verlassen

    /sapart  <nick> <channel>[,<channel>...]

       nick: Nickname
    channel: Name des Kanals

- `saquit`: Zwingt einen User den Server mit Begründung zu verlassen

    /saquit  <nick> <reason>

      nick: Nickname
    reason: Grund der Abmeldung

- `server`: auflisten, hinzufügen oder entfernen von IRC-Servern

    /server  list|listfull [<name>]
             add <name> <hostname>[/<port>] [-temp] [-<option>[=<value>]] [-no<option>]
             copy|rename <name> <new_name>
             reorder <name> [<name>...]
             open <name>|-all [<name>...]
             del|keep <name>
             deloutq|jump
             raw [<filter>]

        list: listet Server auf (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
    listfull: listet alle Server auf, mit detaillierten Informationen zu jedem einzelnen Server
         add: erstellt einen neuen Server
        name: Servername, dient der internen Nutzung und zur Darstellung; dieser Name wird genutzt um sich mit dem Server zu verbinden (/connect name) und um die entsprechenden Optionen anzupassen: irc.server.name.xxx
    hostname: Name oder IP-Adresse des Servers. Optional kann zusätzlich der Port festgelegt werden (Standard-Port: 6667). Mehrere Adressen können durch Kommata getrennt werden
       -temp: erstellt temporären Server (wird nicht gespeichert)
      option: legt die Optionen für den Server fest (die Boolean-Optionen können weggelassen werden)
    nooption: stellt die Boolean Einstellung auf 'off' (Beispiel: -nossl)
        copy: erstellt eine Kopie des Servers
      rename: benennt den Server um
     reorder: Anordnung der Server ändern
        open: öffnet den Serverbuffer, ohne eine Verbindung herzustellen
        keep: übernimmt den Server in die Konfigurationsdatei (nur sinnvoll bei temporär angelegten Servern)
         del: entfernt einen Server
     deloutq: löscht bei allen Servern alle ausgehende Nachrichten, die in der Warteschlange stehen (dies betrifft alle Nachrichten die WeeChat gerade sendet)
        jump: springt zum Server-Buffer
         raw: öffnet Buffer mit Roh-IRC-Daten
      filter: setzt einen neuen Filter um übereinstimmende Nachrichten anzuzeigen (ein Filter kann auch in der Eingabezeile im IRC Datenbuffer angelegt werden); erlaubte Formattierungen:
                *       zeigt alle Nachrichten an (keine Filterung von Nachrichten)
                xxx     zeigt nur Nachrichten mit "xxx" an
                s:xxx   zeigt nur Nachrichten von Server "xxx" an
                f:xxx   zeigt nur Nachrichten mit dem entsprechenden Flag an: recv (erhaltene Nachricht), sent (gesendete Nachricht), modified (Nachricht welche modifiziert wurde), redirected (umgeleitete Nachricht)
                m:xxx   zeigt nur IRC Befehl "xxx" an
                c:xxx   zeigt nur Nachrichten an auf die die evaluierte Bedingung "xxx" zutrifft, folgende Variable können verwendet werden: Ausgabe der Funktion irc_message_parse (wie nick, command, channel, text, etc., siehe Funktion info_get_hashtable in der Anleitung für API Erweiterung für eine Liste aller möglichen Variablen), date (Format: "yyyy-mm-dd hh:mm:ss"), server, recv, sent, modified, redirected

    Beispiele:
      /server listfull
      /server add libera irc.libera.chat
      /server add libera irc.libera.chat/6697 -ssl -autoconnect
      /server add chatspike irc.chatspike.net/6667,irc.duckspike.net/6667
      /server copy libera libera-test
      /server rename libera-test libera2
      /server reorder libera2 libera
      /server del libera
      /server deloutq
      /server raw
      /server raw s:libera
      /server raw c:${recv} && ${command}==PRIVMSG && ${nick}==foo

- `service`: einen neuen Service eintragen

    /service  <nick> <reserved> <distribution> <type> <reserved> <info>

    distribution: Sichtbarkeit des Services
           type: für spätere Verwendung reserviert

- `servlist`: Auflistung von Services die momentan mit dem Netzwerk verbunden sind

    /servlist  [<mask> [<type>]]

    mask: nur zutreffende Services auflisten
    type: nur Services von diesem Typ auflisten

- `setname`: setze Realnamen

    /setname  <Realname>

    realname: neuer Realname

- `squery`: Nachricht an einen Service senden

    /squery  <service> <text>

    service: Name des Service
       text: zu sendender Text

- `squit`: Verbindung zum Server trennen

    /squit  <target> <comment>

     target: Name des Servers
    comment: Kommentar

- `stats`: Serverstatistik abfragen

    /stats  [<query> [<target>]]

     query: c/h/i/k/l/m/o/y/u (siehe RFC1459)
    target: Name des Servers

- `summon`: Nutzer die auf dem IRC-Server arbeiten darum bitten auf den IRC-Server zu kommen

    /summon  <user> [<target> [<channel>]]

       user: Benutzername
     target: Servername
    channel: Kanalname

- `time`: Ortszeit des Servers abfragen

    /time  [<target>]

    target: Zeit des angegebenen Servers abfragen

- `topic`: Thema des Kanals abfragen/setzen

    /topic  [<channel>] [<topic>|-delete]

    channel: Name des Kanals
      topic: neues Thema für den Kanal
    -delete: entfernt das Thema des Kanals

- `trace`: Route zum angegebenen Server ermitteln

    /trace  [<target>]

    target: Servername

- `unban`: Bann von Nicks oder Hosts aufheben

    /unban  [<channel>] <nick>|<number> [<nick>|<number>...]

    channel: Name des Kanals
       nick: Nick oder Host
     number: ban Nummer (wird beim Befehl /ban angezeigt)

- `unquiet`: Nicks oder Hosts das Wort erteilen

    /unquiet  [<channel>] <nick>|<number> [<nick>|<number>...]

    channel: Name des Kanals
       nick: Nick oder Host
     number: Quiet-Nummer (wird beim Befehl /quiet angezeigt)

- `userhost`: zeigt Informationen zu Nicknamen an

    /userhost  <nick> [<nick>...]

    nick: Nickname

- `users`: Auflistung der User die bei dem Server angemeldet sind

    /users  [<target>]

    target: Servername

- `version`: Versionsinformation des Nicknamen oder Servers ermitteln (des aktuellen oder angegebenen Nick/Server)

    /version  [<target>|<nick>]

    target: Servername
      nick: Nickname

- `voice`: Voice an Nick(s) vergeben

    /voice  <nick> [<nick>...]
            * -yes

    nick: Nick oder Maske (Platzhalter "*" kann verwendet werden)
       *: vergibt an alle Nicks im Kanal den voice-Status

- `wallchops`: Nachricht an Kanal-Operator verschicken

    /wallchops  [<channel>] <text>

    channel: Name des Kanals
       text: Text der versendet werden soll

- `wallops`: Nachricht an alle User schicken die den 'w'-Mode gesetzt haben

    /wallops  <text>

    text: Text der gesendet werden soll

- `who`: sendet eine Anfrage die eine Anzahl von Informationen zurück gibt

    /who  [<mask> [o]]

    mask: nur Information über betreffende Nicknamen abfragen
       o: nur Operatoren ausgeben, die dem Filter entsprechen

- `whois`: Information über User abfragen

    /whois  [<target>] [<nick>[,<nick>...]]

    target: Name des Servers (interner Servername)
      nick: Nick, welcher abgefragt werden soll (es kann auch eine Maske genutzt werden)

    Ohne Angabe von Argumenten, nutzt /whois folgende Regel:
    - den eigenen Nick, falls es sich um einen Server/Kanal-Buffer handelt
    - den Nick des Gesprächspartners, falls es sich um einen privaten Buffer handelt.

    Sollte die Einstellung irc.network.whois_double_nick aktiviert sein dann wird ein Nick zweimal verwendet (sofern der Nick nur einmal angegeben wurde), um die Idle-Zeit zu erhalten.

- `whowas`: Informationen über einen nicht mehr angemeldeten Nicknamen abfragen

    /whowas  <nick>[,<nick>...] [<count> [<target>]]

      nick: Nickname
     count: maximale Anzahl an Antworten (negative Zahl für eine vollständige Suche)
    target: Antwort soll auf diese Suchmaske zutreffen

### 8.9. Optionen

Sektionen in Datei irc.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set irc.look.*` | Erscheinungsbild.
`color` | `/set irc.color.*` | Farben.
`network` | `/set irc.network.*` | Netzwerkoptionen.
`msgbuffer` | `/set irc.msgbuffer.*` | Zielbuffer für IRC Nachrichten (Optionen können in Sektion hinzugefügt/entfernt werden).
`ctcp` | `/set irc.ctcp.*` | CTCP Antworten (Optionen können in Sektion hinzugefügt/entfernt werden).
`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` | `/server /set irc.server.*` | Server.

Optionen:

- irc.color.input_nick

  - Beschreibung: Farbe des eigenen Nicknamens in der Eingabezeile

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightcyan`

- irc.color.item_channel_modes

  - Beschreibung: Farbe der Kanal-Modes (neben des Kanalnamens)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- irc.color.item_lag_counting

  - Beschreibung: Farbe in der die Anzeige für die Verzögerung (Lag) dargestellt werden soll, sobald auf Antwort gewartet wird ("pong" wurde vom Server nicht empfangen und die Verzögerungszeit wird erhöht)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- irc.color.item_lag_finished

  - Beschreibung: Farbe in der die Anzeige für die Verzögerung (Lag) dargestellt werden soll, sobald ein "pong" vom Server empfangen wurde

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- irc.color.item_nick_modes

  - Beschreibung: Farbe in der der Nick-Modus in dem Bar-Item "input_prompt" angezeigt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- irc.color.item_tls_version_deprecated

  - Beschreibung: Farbe die für eine unsicherere TLS-Version im Bar-Item "tls_version" genutzt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- irc.color.item_tls_version_insecure

  - Beschreibung: Farbe die für eine unsichere TLS-Versionen im Bar-Item "tls_version" genutzt wirdFarbe für unsichere TLS-Versionen im Balkenelement "tls_version"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `red`

- irc.color.item_tls_version_ok

  - Beschreibung: Farbe die für eine sicherere TLS-Version im Bar-Item "tls_version" genutzt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- irc.color.message_account

  - Beschreibung: Textfarbe für "account" Nachrichten

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- irc.color.message_chghost

  - Beschreibung: Textfarbe in der chghost Nachrichten dargestellt werden

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- irc.color.message_join

  - Beschreibung: Textfarbe in der die Meldungen für das Betreten eines Kanals angezeigt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- irc.color.message_kick

  - Beschreibung: Textfarbe in der die Meldungen für kick/kill Nachrichten angezeigt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `red`

- irc.color.message_quit

  - Beschreibung: Textfarbe in der die Meldungen für das Verlassen/Beenden eines Kanals angezeigt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `red`

- irc.color.mirc_remap

  - Beschreibung: ersetzt mirc Farben in Nachrichten mittels einer Hashtabelle: Schlüssel sind "fg,bg" als Ganzzahl zwischen -1 (nicht näher bezeichnet) und 15. Als Wert ist der Farbname oder die Farbnummer von WeeChat möglich (Format: "1,-1:Farbe1;2,7:Farbe2"), Beispiel: "1,-1:darkgray;1,2:white,blue" ersetzt schwarz durch "darkgray" und schwarz auf blau durch "white,blue"; Tabelle der Standard-IRC-Farben von WeeChat (in Klammern der Farbname, wie er von WeeChat genutzt wird): 0=weiß (white), 1=schwarz (black), 2=blau (blue), 3=grün (green), 4=hellrot (lightred), 5=rot (red), 6=violett (magenta), 7=braun (brown), 8=gelb (yellow), 9= hell-grün (lightgreen), 10=türkis (cyan), 11=hell-türkis (lightcyan), 12=hellblau (lightblue), 13=hell-violett (lightmagenta), 14=dunkel-grau (darkgray), 15=grau (gray)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"1,-1:darkgray"`

- irc.color.nick_prefixes

  - Beschreibung: Farben für Nick Präfix für das Modus-Symbol (o=op, h=halfop, v=voice, ..), Format: "o:color1;h:color2;v:color3" (wird ein Modus nicht gefunden probiert WeeChat einen der nächsten Modi aus, die der Server sendet ("PREFIX"); wird kein Modus in der Liste gefunden, wird eine Standardfarbe verwendet die dem Zeichen "*" zugeordnet wurde)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"y:lightred;q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"`

- irc.color.notice

  - Beschreibung: Farbe des "Notice"-Textes in Notizen

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- irc.color.reason_kick

  - Beschreibung: Textfarbe in der die Begründung einer kick/kill Nachricht angezeigt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- irc.color.reason_quit

  - Beschreibung: Textfarbe in der die Begründung einer part/quit Nachricht angezeigt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- irc.color.topic_current

  - Beschreibung: Farbe in dem das aktuelle Thema des Kanals dargestellt werden soll (wenn ein Kanal betreten oder der Befehl /topic genutzt wird)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- irc.color.topic_new

  - Beschreibung: Farbe in dem das neue Thema des Kanals dargestellt werden soll, falls das Thema des Kanals geändert wurde

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- irc.color.topic_old

  - Beschreibung: Farbe in dem das alte Thema des Kanals dargestellt werden soll, falls das Thema des Kanals geändert wurde

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- irc.look.buffer_open_before_autojoin

  - Beschreibung: betritt man automatisch einen Kanal-Buffer (mittels autojoin Option) wird dieser direkt geöffnet, ohne auf die JOIN Nachricht des Servers zu warten; dies ist sinnvoll um die Kanäle immer an der selben Position bei einem Neustart zu öffnen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.buffer_open_before_join

  - Beschreibung: betritt man mittels dem /join Befehl einen Kanal wird der Buffer direkt geöffnet, ohne auf die JOIN Nachricht des Servers zu warten

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.look.buffer_switch_autojoin

  - Beschreibung: wechselt automatisch zum Kanal-Buffer falls dieser automatisch betreten wurde (mittels der Serveroption "autojoin")

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.buffer_switch_join

  - Beschreibung: wechselt automatisch zum Kanal-Buffer falls dieser manuell betreten wurde (mittels dem /join Befehl)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.color_nicks_in_names

  - Beschreibung: nutzt in der Ausgabe von /names die jeweiligen Farbe des Nick (oder bei der Auflistung der Nicks wenn man einen Kanal betritt)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.look.color_nicks_in_nicklist

  - Beschreibung: nutzt die Farbe des Nick in der Nicklist

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.look.color_nicks_in_server_messages

  - Beschreibung: nutzt die Farbe des Nick bei Nachrichten vom Server

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.color_pv_nick_like_channel

  - Beschreibung: nutzt die selbe Farbe für die Darstellung des Nicks im Kanal wie auch im privaten Buffer

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.ctcp_time_format

  - Beschreibung: Format für die Zeitanzeige die bei einer CTCP TIME Anfrage zurückgesendet wird (siehe man strftime, welche Platzhalter für das Datum und die Uhrzeit verwendet werden)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%a, %d %b %Y %T %z"`

- irc.look.display_account_message

  - Beschreibung: ACCOUNT Nachrichten anzeigen, die empfangen wurden, wenn die Funktion account-notify aktiviert ist

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_away

  - Beschreibung: zeigt eine Nachricht an, sobald der Abwesenheitsstatus ein- bzw. ausgeschaltet wird (off: zeigt/sendet keine Nachricht, local: eine Nachricht wird lokal angezeigt, channel: sendet eine Nachricht an die Kanäle)

  - Typ: integer

  - Werte: off, local, channel

  - Standardwert: `local`

- irc.look.display_ctcp_blocked

  - Beschreibung: CTCP Nachrichten werden angezeigt, obwohl sie unterdrückt werden

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_ctcp_reply

  - Beschreibung: CTCP Antworten, die durch WeeChat versendet wurden, werden angezeigt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_ctcp_unknown

  - Beschreibung: unbekannte CTCP Nachrichten werden angezeigt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_extended_join

  - Beschreibung: zusätzliche Informationen in den JOIN-Nachrichten anzeigen: Kontoname und richtiger Name (Funktion extended-join muss aktiviert sein)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_host_join

  - Beschreibung: zeigt den Host innerhalb einer join Nachricht an

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_host_join_local

  - Beschreibung: zeigt den Host innerhalb einer join Nachrichten des lokalen Client an

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_host_quit

  - Beschreibung: zeigt den Host innerhalb einer part/quit Nachricht an

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_join_message

  - Beschreibung: durch Kommata getrennte Liste von Nachrichten die beim Betreten eines Kanals angezeigt werden sollen: 324 = Channel-Modi, 329 = Erstellungsdatum des Kanals, 332 = Topic, 333 = Nick/Datum für Topic, 353 = genutzte Namen im Kanal, 366 = Anzahl der Nicks im Kanal

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"329,332,333,366"`

- irc.look.display_old_topic

  - Beschreibung: zeige das alte Thema an, falls das Thema des Kanals geändert wurde

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_pv_away_once

  - Beschreibung: in einer privaten Unterhaltung nur einmal eine Abwesenheitsnachricht anzeigen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_pv_back

  - Beschreibung: es wird bei einer privaten Unterhaltung eine Mitteilung ausgegeben falls der User wieder zurück ist (falls der User sich beim Server abgemeldet hat)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.display_pv_warning_address

  - Beschreibung: zeigt eine Warnung in einem privaten Buffer an, sobald sich die Adresse eines Remote-Nick geändert hat; diese Option ist standardmäßig ausgeschaltet, da Server wie bitlbee eine solche Warnung unvermittelt auslösen (die Adresse des Remote-Nick ändert sich während eines Login mehrfach)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.look.highlight_channel

  - Beschreibung: durch Kommata getrennte Liste von Wörtern die im Kanal-Buffern als Highlight erscheinen sollen (zwischen Groß- und Kleinschreibung wird nicht unterschieden. Um zwischen Groß- und Kleinschreibung zu unterscheiden muss zu Beginn "(?-i)" genutzt werden; des Weiteren können folgende Variablen genutzt werden: $nick, $channel und $server). Wird ein Buffer geöffnet, dann werden die angegeben Wörter dem Buffer-Merkmal "highlight_words" hinzugefügt. Dies bedeutet, dass diese Einstellung keinen direkten Einfluss auf schon geöffnete Buffer hat. Eine leere Zeichenkette deaktiviert ein Highlight für den Nick. Beispiel: "$nick", "(?-i)$nick"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"$nick"`

- irc.look.highlight_pv

  - Beschreibung: durch Kommata getrennte Liste von Wörtern die in einem privaten Buffer als Highlight erscheinen sollen (zwischen Groß- und Kleinschreibung wird nicht unterschieden. Um zwischen Groß- und Kleinschreibung zu unterscheiden muss zu Beginn "(?-i)" genutzt werden; des Weiteren können folgende Variablen genutzt werden: $nick, $channel und $server). Wird ein Buffer geöffnet, dann werden die angegeben Wörter dem Buffer-Merkmal "highlight_words" hinzugefügt. Dies bedeutet, dass diese Einstellung keinen direkten Einfluss auf schon geöffnete Buffer hat. Eine leere Zeichenkette deaktiviert ein Highlight für den Nick. Beispiel: "$nick", "(?-i)$nick"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"$nick"`

- irc.look.highlight_server

  - Beschreibung: durch Kommata getrennte Liste von Wörtern die in Server-Buffern als Highlight erscheinen sollen (zwischen Groß- und Kleinschreibung wird nicht unterschieden. Um zwischen Groß- und Kleinschreibung zu unterscheiden muss zu Beginn "(?-i)" genutzt werden; des Weiteren können folgende Variablen genutzt werden: $nick, $channel und $server). Wird ein Buffer geöffnet, dann werden die angegeben Wörter dem Buffer-Merkmal "highlight_words" hinzugefügt. Dies bedeutet, dass diese Einstellung keinen direkten Einfluss auf schon geöffnete Buffer hat. Eine leere Zeichenkette deaktiviert ein Highlight für den Nick. Beispiel: "$nick", "(?-i)$nick"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"$nick"`

- irc.look.highlight_tags_restrict

  - Beschreibung: beschränkt Highlights für IRC Buffer auf bestimmte Tags (um Highlights durch User- aber nicht durch Servernachrichten zu erhalten); Tags müssen durch Kommata getrennt werden; um eine logische "und" Verknüpfung zu verwenden, können mehrere Tags durch "+" zusammengefügt werden; der Platzhalter "*" kann verwendet werden um mehr als ein Tag zu markieren; wird kein Wert angegeben, erzeugt jedes Tag ein Highlight

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"irc_privmsg,irc_notice"`

- irc.look.item_channel_modes_hide_args

  - Beschreibung: unterdrückt die Ausgabe von Argumenten die die Kanalmodi betreffen, sofern der entsprechende Modus für den Kanal gesetzt ist ("*" unterdrückt jedwede Ausgabe von Argumenten; wird kein Wert angegeben, dann werden alle Argumente angezeigt); Beispiele: "kf" unterdrückt die Argumente, falls "k" oder "f" für den Kanal gesetzt sind

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"k"`

- irc.look.item_display_server

  - Beschreibung: Name der Bar-Item in dem der IRC Server angezeigt wird (für Status-Bar)

  - Typ: integer

  - Werte: buffer_plugin, buffer_name

  - Standardwert: `buffer_plugin`

- irc.look.item_nick_modes

  - Beschreibung: der Nick-Modus wird in dem Bar-Item "input_prompt" angezeigt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.item_nick_prefix

  - Beschreibung: der Nick-Präfix wird im Bar-Item "input_prompt" angezeigt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.join_auto_add_chantype

  - Beschreibung: es wird dem Kanalnamen automatisch der Kanal-Typ vorangestellt, falls bei der Benutzung des /join Befehls der angegebene Kanalname keinen gültigen Typ besitzt; Beispiel: "/join weechat" wird als: "/join #weechat" versendet

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.look.msgbuffer_fallback

  - Beschreibung: Standardbuffer der für Ausgaben genutzt werden soll, falls ein privater Buffer nicht gefunden wird

  - Typ: integer

  - Werte: current, server

  - Standardwert: `current`

- irc.look.new_channel_position

  - Beschreibung: ein neu geöffneter Kanal wird auf eine Position gezwungen (none = standardmäßige Position (sollte der letzte Buffer in der Liste sein), next = aktueller Buffer + 1, near_server = nach dem letztem Kanal/privaten Buffer des jeweiligen Servers)

  - Typ: integer

  - Werte: none, next, near_server

  - Standardwert: `none`

- irc.look.new_pv_position

  - Beschreibung: ein neuer privater Buffer wird auf eine Position gezwungen (none = standardmäßige Position (sollte der letzte Buffer in der Liste sein), next = aktueller Buffer + 1, near_server = nach dem letztem Kanal/privaten Buffer des jeweiligen Servers)

  - Typ: integer

  - Werte: none, next, near_server

  - Standardwert: `none`

- irc.look.nick_completion_smart

  - Beschreibung: intelligente Vervollständigung für Nicks (es wird zuerst mit den letzten Rednern vervollständigt): speakers = alle Redner (einschließlich Highlights), speakers_highlight = nur Redner die eine Highlight Nachricht geschrieben haben

  - Typ: integer

  - Werte: off, speakers, speakers_highlights

  - Standardwert: `speakers`

- irc.look.nick_mode

  - Beschreibung: vor dem Nick wird der entsprechende Nickmodus (op, voice,...) angezeigt (none = Funktion ist deaktiviert, prefix = wird nur im Präfix angezeigt (Standardeinstellung), action = wird nur in action Nachrichten angezeigt, both = im Präfix und in action Nachrichten)

  - Typ: integer

  - Werte: none, prefix, action, both

  - Standardwert: `prefix`

- irc.look.nick_mode_empty

  - Beschreibung: es wird ein Leerzeichen anstelle eines Nickmodus verwendet, falls kein Nickmodus ((half)op/voice [@%+]) vorhanden ist

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.look.nicks_hide_password

  - Beschreibung: durch Kommata getrennte Liste von Nicks bei denen das Passwort in einer Nachricht unterdrückt werden soll. Zum Beispiel bei einer Nachricht die durch "/msg nickserv identify password" generiert wird. Beispiel: "nickserv,nickbot"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"nickserv"`

- irc.look.notice_as_pv

  - Beschreibung: zeigt Notizen als private Nachricht an (wird die "auto" Einstellung verwendet dann wird ein privater Buffer genutzt, falls vorhanden)

  - Typ: integer

  - Werte: auto, never, always

  - Standardwert: `auto`

- irc.look.notice_welcome_redirect

  - Beschreibung: automatische Weiterleitung von Willkommen Nachrichten in den entsprechenden Kanal-Buffer. Solche Nachrichten haben als Empfänger den entsprechenden Nick. Der Kanalname wird aber der Nachricht vorangestellt. Eine solche ENTRYMSG Nachricht sieht auf dem Atheme IRC Server wie folgt aus: "[#channel] Herzlich Willkommen in diesem Kanal ..."

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.notice_welcome_tags

  - Beschreibung: durch Kommata getrennte Liste von Schlagwörtern für Willkommen-Nachrichten die in einen Kanal umgeleitet werden. Zum Beispiel: "notify_private"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.look.notify_tags_ison

  - Beschreibung: durch Kommata getrennte Liste von Schlagwörtern die in notify-Nachrichten genutzt werden sollen, falls ein Nick einen Server betritt oder verlässt (Rückgabewert des Befehls ison oder monitor), zum Beispiel: "notify_message", "notify_private" oder "notify_highlight"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"notify_message"`

- irc.look.notify_tags_whois

  - Beschreibung: durch Kommata getrennte Liste von Schlagwörtern die in notify-Nachrichten genutzt werden sollen, falls sich der away-Status eines Nick ändert (Rückgabe durch Befehl whois), zum Beispiel: "notify_message", "notify_private" oder "notify_highlight"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"notify_message"`

- irc.look.part_closes_buffer

  - Beschreibung: schließt den Buffer wenn "/part" im Kanal ausgeführt wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.look.pv_buffer

  - Beschreibung: private Buffer zusammenfügen

  - Typ: integer

  - Werte: independent, merge_by_server, merge_all

  - Standardwert: `independent`

- irc.look.pv_tags

  - Beschreibung: durch Kommata getrennte Liste von Schlagwörtern die für private Nachrichten genutzt werden sollen. Zum Beispiel: "notify_message", "notify_private" oder "notify_highlight"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"notify_private"`

- irc.look.raw_messages

  - Beschreibung: Anzahl der IRC-RAW-Nachrichten die im Speicher gehalten werden sollen falls der RAW-Daten-Buffer geschlossen ist (die Nachrichten werden umgehend angezeigt sobald der RAW-Daten-Buffer geöffnet wird)

  - Typ: integer

  - Werte: 0 .. 65535

  - Standardwert: `256`

- irc.look.server_buffer

  - Beschreibung: fügt Serverbuffer zusammen; diese Option hat keine Auswirkung wenn ein Layout genutzt wird und mit dieser Option im Widerspruch steht (siehe /help layout)

  - Typ: integer

  - Werte: merge_with_core, merge_without_core, independent

  - Standardwert: `merge_with_core`

- irc.look.smart_filter

  - Beschreibung: filtert join/part/quit/nick Nachrichten für einen Nick der einige Minuten im Kanal inaktiv gewesen ist (dazu muss ein Filter mit dem Schlagwort "irc_smart_filter" erstellt werden, siehe /help filter)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.smart_filter_account

  - Beschreibung: aktiviert einen intelligenten Filter für "account" Nachrichten

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.smart_filter_chghost

  - Beschreibung: aktiviert einen intelligenten Filter für "chghost" Nachrichten

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.smart_filter_delay

  - Beschreibung: Verzögerung, in Minuten, für eine Filterung von join/part/quit Mitteilungen. Falls ein Nick in der angegebenen Zeit keine Nachricht schreibt, wird seinejoin/part/quit Mitteilung gefiltert

  - Typ: integer

  - Werte: 1 .. 10080

  - Standardwert: `5`

- irc.look.smart_filter_join

  - Beschreibung: aktiviert einen intelligenten Filter für "join" Nachrichten

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.smart_filter_join_unmask

  - Beschreibung: Verzögerung (in Minuten) um Join Mitteilungen rückwirkend anzuzeigen, falls diese mittels "irc_smart_filter" unterdrückt wurden. Sollte ein Nick während der vorgegeben Zeit etwas im Kanal schreiben, dann wird seine Join Mitteilung angezeigt. Dies bezieht sich auf Nachrichten, eine Notice, Änderungen am Topic oder falls der Nick gewechselt wird (0 = deaktiviert: join-Mitteilungen bleiben verborgen)

  - Typ: integer

  - Werte: 0 .. 10080

  - Standardwert: `30`

- irc.look.smart_filter_mode

  - Beschreibung: aktiviert einen intelligenten Filter für "mode" Nachrichten: "*" filtert alle Modi-Nachrichten, "+" um alle Modi im Server-Präfix zu filtern (zum Beispiel "ovh"), "xyz" um die Modi x/y/z zu filtern, "-xyz" um alle Modi, außer x/y/z, zu filtern; Beispiele: "ovh": filtert die Modi o/v/h, "-bkl": filtert alle Modi, ausgenommen b/k/l

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"+"`

- irc.look.smart_filter_nick

  - Beschreibung: aktiviert einen intelligenten Filter für "nick" Nachrichten (Änderungen des Nick)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.smart_filter_quit

  - Beschreibung: aktiviert einen intelligenten Filter für "part" und "quit" Nachrichten

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.look.temporary_servers

  - Beschreibung: aktiviert die Erstellung von temporären Servern mit dem Befehl /connect

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.look.topic_strip_colors

  - Beschreibung: Farben werden im Kanalthema entfernt (wird nur genutzt wenn der Buffer-Titel angezeigt wird)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.look.typing_status_nicks

  - Beschreibung: Nicks in der Bar-Item "typing" anzeigen, die in dem Kanal tippen (Option typing.look.enabled_nicks muss aktiviert sein und die Fähigkeit "message-tags" muss auf dem Server aktiviert sein)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.look.typing_status_self

  - Beschreibung: sendet den eigenen Tippstatus an Kanäle, damit andere Benutzer sehen, wenn Sie eine Nachricht schreiben (Option typing.look.enabled_self muss aktiviert sein und die Fähigkeit "message-tags" muss auf dem Server aktiviert sein)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.network.autoreconnect_delay_growing

  - Beschreibung: Multiplikator für die Verzögerung bei der automatischen Wiederverbindung zum Server (1 = immer die selbe Verzögerung nutzen, 2 = Verzögerung*2 für jeden weiteren Versuch, usw.)

  - Typ: integer

  - Werte: 1 .. 100

  - Standardwert: `2`

- irc.network.autoreconnect_delay_max

  - Beschreibung: maximale Verzögerung bei der automatischen Wiederverbindung zum Server (in Sekunden, 0 = keine Begrenzung)

  - Typ: integer

  - Werte: 0 .. 604800

  - Standardwert: `600`

- irc.network.ban_mask_default

  - Beschreibung: Vorgabewert für Befehle /ban, /unban und /kickban; Variablen $nick, $user, $ident und $host werden durch den jeweiligen Wert ersetzt (extrahiert aus "nick!user@host"); $ident ist identisch mit $user, sofern $user nicht mit "~" beginnt. Andernfalls wird daraus "*"; diese Vorgabemaske wird nur angewendet, sofern WeeChat den Host des Nicks ermitteln kann

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"*!$ident@$host"`

- irc.network.colors_receive

  - Beschreibung: wenn deaktiviert, werden Farben-Codes von eingehenden Nachrichten ignoriert

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.network.colors_send

  - Beschreibung: erlaubt Benutzern, spezielle Farbcodes zu versenden (ctrl-c + Code und optional Farbe: b=fett, cxx=Farbe, cxx,yy=Schrift-/Hintergrundfarbe, i=kursiv, o=schaltet Farbe/Attribute aus, r=invertiert, u=unterstrichen)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.network.lag_check

  - Beschreibung: Intervall zwischen zwei Überprüfungen auf Verfügbarkeit des Servers (in Sekunden, 0 = keine Überprüfung)

  - Typ: integer

  - Werte: 0 .. 604800

  - Standardwert: `60`

- irc.network.lag_max

  - Beschreibung: maximale Verzögerung (in Sekunden): sollte die maximale Verzögerung erreicht werden geht WeeChat davon aus, dass die Antwort (pong) des Servers nicht mehr empfangen wird. Die Verzögerung wird dann nicht weiter gezählt (0 = es wird ewig gewartet)

  - Typ: integer

  - Werte: 0 .. 604800

  - Standardwert: `1800`

- irc.network.lag_min_show

  - Beschreibung: geringste Verzögerungszeit (Lag) die angezeigt werden soll (in Millisekunden)

  - Typ: integer

  - Werte: 0 .. 86400000

  - Standardwert: `500`

- irc.network.lag_reconnect

  - Beschreibung: erneut mit Server verbinden, falls die maximal Verzögerung (Lag) erreicht wurde (Zeit in Sekunden, 0 = keine automatische Neuverbindung, zum Server); dieser Wert muss geringer oder gleich dem Wert in irc.network.lag_max sein

  - Typ: integer

  - Werte: 0 .. 604800

  - Standardwert: `300`

- irc.network.lag_refresh_interval

  - Beschreibung: Intervall zwischen zwei Aktualisierungen für die Anzeige der Verzögerung (Lag-Item), wenn die Verzögerungszeit sich erhöht (in Sekunden)

  - Typ: integer

  - Werte: 1 .. 3600

  - Standardwert: `1`

- irc.network.notify_check_ison

  - Beschreibung: Intervall zwischen zwei notify Überprüfungen mit dem IRC Befehl "ison" (in Minuten)

  - Typ: integer

  - Werte: 1 .. 10080

  - Standardwert: `1`

- irc.network.notify_check_whois

  - Beschreibung: Intervall zwischen zwei notify Überprüfungen mit dem IRC Befehl "whois" (in Minuten)

  - Typ: integer

  - Werte: 1 .. 10080

  - Standardwert: `5`

- irc.network.sasl_fail_unavailable

  - Beschreibung: erzeugt einen Fehler bei der SASL Authentifizierung, falls SASL angefragt aber vom Server nicht zur Verfügung gestellt wird; falls diese Option aktiviert ist hat sie nur dann Einfluss sofern bei der Option "sasl_fail" die Einstellung "reconnect" oder "disconnect" genutzt wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.network.send_unknown_commands

  - Beschreibung: sendet unbekannte Befehle an den Server

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.network.whois_double_nick

  - Beschreibung: dupliziert den Nick, für den /whois Befehl (falls nur ein Nick angegeben wird), um die Idle-Zeit zu erhalten. Zum Beispiel: "/whois nick" wird als "whois nick nick" verschickt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.server_default.addresses

  - Beschreibung: Liste von Hostname/Port oder IP/Port für Server (durch Komma getrennt) (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.anti_flood_prio_high

  - Beschreibung: Anti-Flood für dringliche Inhalte: Zeit in Sekunden zwischen zwei Benutzernachrichten oder Befehlen die zum IRC Server versendet wurden (0 = Anti-Flood deaktivieren)

  - Typ: integer

  - Werte: 0 .. 60

  - Standardwert: `2`

- irc.server_default.anti_flood_prio_low

  - Beschreibung: Anti-Flood für weniger dringliche Inhalte: Zeit in Sekunden zwischen zwei Benutzernachrichten die zum IRC Server versendet wurden. Beispiel: automatische CTCP Antworten (0 = Anti-Flood deaktivieren)

  - Typ: integer

  - Werte: 0 .. 60

  - Standardwert: `2`

- irc.server_default.autoconnect

  - Beschreibung: Beim Programmstart von WeeChat automatisch mit dem Server verbinden

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.server_default.autojoin

  - Beschreibung: durch Kommata getrennte Liste von Kanälen, die beim Verbinden mit dem Server automatisch betreten werden (nachdem die Einstellungen command + delay ausgeführt wurden). Kanäle, die einen Schlüssel benötigen, müssen in der Auflistung als erstes aufgeführt werden. Die Schlüssel, zu den jeweiligen Kanälen, werden nach den Kanälen aufgeführt (eine Trennung von Kanälen und Schlüssel erfolgt mittels eines Leerzeichens. Schlüssel werden hintereinander auch durch Kommata voneinander getrennt) (Beispiel: "#channel1,#channel2,#channnel3 key1,key2", #channel1 und #channel2 sind durch jeweils einen Schlüssel, key1 und key2, geschützt) (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.autojoin_dynamic

  - Beschreibung: Setze automatisch die "autojoin"-Option entsprechend den Kanälen, die du manuell beitrittst bzw. verlässt, mit den Befehlen /join und /part

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.server_default.autoreconnect

  - Beschreibung: Nach einer Trennung vom Server die Verbindung automatisch wiederherstellen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.server_default.autoreconnect_delay

  - Beschreibung: Zeit (in Sekunden) die gewartet werden soll bevor ein neuer Verbindungsaufbau durchgeführt werden soll

  - Typ: integer

  - Werte: 1 .. 65535

  - Standardwert: `10`

- irc.server_default.autorejoin

  - Beschreibung: Kanäle automatisch betreten, falls man rausgeworfen wurde. Es kann eine lokale Buffer Variable für einen Kanal erstellt werden, diese lokale Variable wird vorrangig behandelt (Name der lokalen Variable: "autorejoin", Wert: "on" oder "off")

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.server_default.autorejoin_delay

  - Beschreibung: Wartezeit, in Sekunden, die verstreichen soll bevor man den Kanal automatisch erneut betritt (nachdem man rausgeworfen wurde)

  - Typ: integer

  - Werte: 0 .. 86400

  - Standardwert: `30`

- irc.server_default.away_check

  - Beschreibung: überprüft die Abwesenheit (/away) der Nutzer, in dem angegebenen Intervall (in Minuten, 0 = nicht überprüfen)

  - Typ: integer

  - Werte: 0 .. 10080

  - Standardwert: `0`

- irc.server_default.away_check_max_nicks

  - Beschreibung: Die Abwesenheit von Nutzern in Kanälen wird nicht überprüft wenn die Anzahl der Nutzer höher ist, als der angegebene Wert (0 = unbegrenzte Anzahl an Nutzern im Kanal)

  - Typ: integer

  - Werte: 0 .. 1000000

  - Standardwert: `25`

- irc.server_default.capabilities

  - Beschreibung: durch Kommata getrennte Liste von erweiterten Client-Fähigkeiten ("client capabilities"), welche vom Server angeboten und genutzt werden sollen (siehe /help cap um eine Liste von Fähigkeiten zu erhalten die von WeeChat unterstützt werden); "*" aktiviert standardmäßig alle Funktionen (die sowohl vom Server als auch von WeeChat unterstützt werden); Platzhalter "*" ist erlaubt; eine Fähigkeit, die mit "!" beginnt, wird ignoriert (Beispiel: "*,!account-*,!extended-join")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"*"`

- irc.server_default.charset_message

  - Beschreibung: Teil der IRC Nachricht (empfangen oder gesendet) die zum Zielzeichensatz dekodiert/kodiert werden soll; message = die komplette IRC Nachricht (Standard), channel = beginnend mit dem Kanalnamen (sofern dieser gefunden wird, ansonsten Fallback auf text), text = beginnend mit dem Nachrichtentext (dieser Wert sollte ausprobiert werden, falls es Probleme bei der Kodierung des Kanalnamens geben sollte)

  - Typ: integer

  - Werte: message, channel, text

  - Standardwert: `message`

- irc.server_default.command

  - Beschreibung: Befehl(e) welche nach einem Verbindungsaufbau zum Server und vor dem automatischem Betreten von Kanälen ausgeführt werden sollen (mehrere Befehle können durch ";" getrennt werden, will man ein Semikolon nutzen, schreibt man "\;", die Platzhalter $nick,$channel und $server werden durch den entsprechenden Wert ersetzt) (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.command_delay

  - Beschreibung: Wartezeit (in Sekunden) nach Ausführung des Befehls und bevor Kanäle automatisch betreten werden (Beispiel: es wird eine gewisse Zeit gewartet, um eine Authentifizierung zu ermöglichen)

  - Typ: integer

  - Werte: 0 .. 3600

  - Standardwert: `0`

- irc.server_default.connection_timeout

  - Beschreibung: Wartezeit (in Sekunden) zwischen einer TCP Verbindung mit dem Server und des Empfanges der "message 001" Nachricht. Falls die Wartezeit verstreichen sollte bevor die "message 001" Nachricht empfangen wurde dann wird WeeChat die Verbindung zum Server trennen

  - Typ: integer

  - Werte: 1 .. 3600

  - Standardwert: `60`

- irc.server_default.default_chantypes

  - Beschreibung: Kanal-Typ-Präfix, die verwendet werden sollen, wenn der Server diese nicht in Nachricht 005 sendet (Standard ist "#&")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"#&"`

- irc.server_default.ipv6

  - Beschreibung: bei der Kommunikation mit dem Server wird das IPv6 Protokoll genutzt (sollte IPv6 nicht verfügbar sein dann wird automatisch auf IPv4 umgeschaltet); wird die Funktion deaktiviert, dann wird ausschließlich IPv4 genutzt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.server_default.local_hostname

  - Beschreibung: benutzerdefinierter lokaler Hostname bzw. IP-Adresse für den entsprechenden Server (optional). Falls kein Eintrag vorhanden sein sollte wird der lokale Hostname verwendet

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.msg_kick

  - Beschreibung: Standardmitteilung einer kick-Nachricht, für die Befehle "/kick" und "/kickban" (Hinweis: Inhalt wird evaluiert, siehe /help eval; besondere Variablen ${nick} (eigener Nick), ${target} (betroffener Nick), ${channel} und ${server}, werden durch den entsprechenden Wert ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.msg_part

  - Beschreibung: Standardmitteilung einer part-Nachricht (/part) (Hinweis: Inhalt wird evaluiert, siehe /help eval; Variablen die genutzt werden können: ${nick}, ${channel} und ${server}; "%v" wird durch die genutzte WeeChat-Version ersetzt, sofern keine Variable vom Typ ${...} verwendet wird)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"WeeChat ${info:version}"`

- irc.server_default.msg_quit

  - Beschreibung: Standardmitteilung einer quit-Nachricht (Trennung vom Server) (Hinweis: Inhalt wird evaluiert, siehe /help eval; Variablen die genutzt werden können: ${nick}, ${channel} und ${server}; "%v" wird durch die genutzte WeeChat-Version ersetzt, sofern keine Variable vom Typ ${...} verwendet wird)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"WeeChat ${info:version}"`

- irc.server_default.nicks

  - Beschreibung: Nicknamen, die auf dem IRC-Server benutzt werden sollen (durch Kommatagetrennt) (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.nicks_alternate

  - Beschreibung: nutzt einen alternativen Nick, sofern alle voreingestellten Nicks am Server schon genutzt werden. Dazu wird das Zeichen "_" an den Nick angehangen, sofern der Nick nicht mehr als neun Zeichen besitzt. Andernfalls werden die beiden letzten Zeichen durch eine Zahl zwischen 1 und 99 ersetzt, bis ein freier Nick auf dem Server gefunden wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.server_default.notify

  - Beschreibung: Liste mit Benachrichtigung für Server (diese Einstellung sollte nicht direkt verändert werden. Dazu sollte der Befehl /notify genutzt werden)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.password

  - Beschreibung: Passwort welches für den Server genutzt werden soll (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.proxy

  - Beschreibung: Name des Proxy für diesen Server (optional, Proxy muss mit dem Befehl /proxy angelegt werden)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.realname

  - Beschreibung: Realname welcher für den Server genutzt werden soll (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.sasl_fail

  - Beschreibung: auszuführende Aktion falls die SASL Authentifizierung fehlschlägt: "continue" ignoriert das Problem welches bei der Authentifizierung aufgetreten ist, "reconnect" versucht erneut eine Verbindung herzustellen, "disconnect" trennt die Verbindung zum Server (siehe Option irc.network.sasl_fail_unavailable)

  - Typ: integer

  - Werte: continue, reconnect, disconnect

  - Standardwert: `reconnect`

- irc.server_default.sasl_key

  - Beschreibung: Datei mit privatem ECC-Schlüssel für den Mechanismus "ecdsa-nist256p-challenge" (Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.sasl_mechanism

  - Beschreibung: Verfahren welches bei einer SASL Authentifizierung angewandt werden soll: "plain" Passwort wird im Klartext gesendet, "scram-sha-1" für SCRAM-Authentifizierung mit SHA-1-Digest-Algorithmus, "scram-sha-256" für SCRAM-Authenrifizierung mit SHA-256 Digest-Algorithmus, "scram-sha-512" für SCRAM-Authentifizierung mit SHA-512 Digest-Algorithmus, "ecdsa-nist256p-challenge" für öffentlich/private Schlüsselmethode, "external" ein SSL Zertifikat welches auf Client Seite vorliegt wird verwendet

  - Typ: integer

  - Werte: plain, scram-sha-1, scram-sha-256, scram-sha-512, ecdsa-nist256p-challenge, external

  - Standardwert: `plain`

- irc.server_default.sasl_password

  - Beschreibung: Passwort für SASL Authentifikation; diese Option findet keine Anwendung falls der Mechanismus "ecdsa-nist256p-challenge" und "external" verwendet wird (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.sasl_timeout

  - Beschreibung: Zeitüberschreitung bis zum Abbruch der SASL Authentifizierung (in Sekunden)

  - Typ: integer

  - Werte: 1 .. 3600

  - Standardwert: `15`

- irc.server_default.sasl_username

  - Beschreibung: Username für SASL Authentifikation; diese Option wird nicht für den Mechanismus "external" verwendet (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.split_msg_max_length

  - Beschreibung: ausgehende IRC Nachrichten werden bei der angegebene Anzahl an Zeichen getrennt; der Standardwert beträgt 512, dabei handelt es sich um einen empfohlenen Wert; ein Wert von 0 deaktiviert eine Trennung von Nachrichten (dies wird nicht empfohlen, außer Du weißt was Du tust); erlaubte Werte sind 0 oder jeder Wert zwischen 128 und 4096; diese Option sollte nur bei nicht-Standard IRC Servern verändert werden, zum Beispiel ein bitlbee Gateway

  - Typ: integer

  - Werte: 0 .. 4096

  - Standardwert: `512`

- irc.server_default.ssl

  - Beschreibung: Server über SSL ansprechen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.server_default.ssl_cert

  - Beschreibung: SSL-Zertifikatdatei zur automatischen Identifizierung Ihres Nick (Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.ssl_dhkey_size

  - Beschreibung: Größe des Schlüssels der während des Diffie-Hellman-Schlüsselaustausches genutzt wurde

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `2048`

- irc.server_default.ssl_fingerprint

  - Beschreibung: Fingerprint des Zertifikates welches als vertrauenswürdig eingestuft und für diesen Server akzeptiert wird; es sind nur hexadezimale Zeichen erlaubt (0-9, a-f): bei SHA-512 ist das Zertifikat 128 Zeichen lang, bei SHA-256 sind es 64 Zeichen, bei SHA-1 sind es 40 Zeichen (nicht empfohlen, da unsicher); mehrere Fingerprints können durch Kommata voneinander getrennt werden; wird diese Option genutzt, findet KEINE weitere Überprüfung der Zertifikate statt (Option "ssl_verify") (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.ssl_password

  - Beschreibung: Passwort für SSL Zertifikat des privaten Schlüssels, nur unter gnutls Version >= 3.1.0 (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.ssl_priorities

  - Beschreibung: Zeichenkette mit Prioritäten für gnutls (für die korrekte Syntax siehe gnutls Dokumentation unter Funktion gnutls_priority_init. Gebräuchliche Zeichenketten sind: "PERFORMANCE", "NORMAL", "SECURE128", "SECURE256", "EXPORT", "NONE")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"NORMAL:-VERS-SSL3.0"`

- irc.server_default.ssl_verify

  - Beschreibung: überprüft ob die SSL-Verbindung vertrauenswürdig ist

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- irc.server_default.usermode

  - Beschreibung: Usermode(s) der direkt nach der Verbindung zum Server gesetzt werden soll. Dies geschieht bevor Befehle für den Server ausgeführt und bevor Kanäle automatisch betreten werden; Beispiele: "+R" (um den Modus "R" zu setzen), "+R-i" (setzt den Modus "R" und entfernt den Modus "i"); siehe /help mode um den Befehlssatz angezeigt zu bekommen (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.username

  - Beschreibung: Username welcher für den Server genutzt werden soll (Hinweis: Inhalt wird evaluiert, siehe /help eval; Serveroptionen sind mittels ${irc_server.xxx} evaluiert und ${server} wird durch den eigentlichen Servernamen ersetzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

## 9. 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

### 9.1. Befehle

- `me`: sendet CTCP Aktion an entfernten Host

    /me  <message>

    message: zu sendende Nachricht

- `xfer`: Kontrolle der Übertragung(en)

    /xfer  [list|listfull]

        list: zeigt Liste der Übertragungen
    listfull: zeigt eine ausführliche Liste der Übertragungen

    Ohne Angabe von Argumenten wird der Buffer mit der Übertragungsliste geöffnet.

### 9.2. Optionen

Sektionen in Datei xfer.conf:

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:

- xfer.color.status_aborted

  - Beschreibung: Textfarbe für Status: "abgebrochen"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightred`

- xfer.color.status_active

  - Beschreibung: Textfarbe für Status: "aktiv"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightblue`

- xfer.color.status_connecting

  - Beschreibung: Textfarbe für Status: "verbinde"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- xfer.color.status_done

  - Beschreibung: Textfarbe für Status: "fertig"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightgreen`

- xfer.color.status_failed

  - Beschreibung: Textfarbe für Status: "fehlgeschlagen"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightred`

- xfer.color.status_waiting

  - Beschreibung: Textfarbe für Status: "wartend"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightcyan`

- xfer.color.text

  - Beschreibung: Textfarbe in xfer Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- xfer.color.text_bg

  - Beschreibung: Hintergrundfarbe des xfer Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- xfer.color.text_selected

  - Beschreibung: Textfarbe für selektierte Zeile in xfer Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- xfer.file.auto_accept_chats

  - Beschreibung: eine Chat-Anfrage wird automatisch akzeptiert (Vorsicht!)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- xfer.file.auto_accept_files

  - Beschreibung: eine Datenübertragung wird automatisch angenommen (Vorsicht!)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- xfer.file.auto_accept_nicks

  - Beschreibung: durch Kommata getrennte Liste von Nicks deren Chat- und Transferanfragen automatisch akzeptiert werden. Format : "server.nick" (für einen speziellen Server) oder "nick" (global, für alle Server); Beispiel: "libera.FlashCode,andrew"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- xfer.file.auto_check_crc32

  - Beschreibung: automatische Überprüfung der CRC32 Prüfsumme, sofern eine Prüfsumme im Dateinamen angegeben wird (mittels acht hexadezimalen Zeichen)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- xfer.file.auto_rename

  - Beschreibung: eingehende Dateien werden automatisch umbenannt um ein Überschreiben zu vermeiden (dabei wird dem Dateinamen '.1', '.2', ... hinzugefügt)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- xfer.file.auto_resume

  - Beschreibung: falls eine Verbindung getrennt wurde, dann wird eine abgebrochene Übertragungen automatisch fortsetzt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- xfer.file.convert_spaces

  - Beschreibung: beim Versenden und Empfangen von Dateien werden Leerzeichen im Dateinamen durch einen Unterstrich ersetzt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- xfer.file.download_path

  - Beschreibung: Pfad zum Schreiben eingehender Dateien (Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${weechat_data_dir}/xfer"`

- xfer.file.download_temporary_suffix

  - Beschreibung: Dateiendung der temporären Datei, die während eines eingehenden Datei-Transfers genutzt wird und die gelöscht wird, sobald die Übertragung erfolgreich beendet wurde; wenn -leer-, dann wird keine temporäre Dateiendung während des Transfers genutzt

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `".part"`

- xfer.file.upload_path

  - Beschreibung: Pfad zum Lesen von Dateien beim Senden (Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"~"`

- xfer.file.use_nick_in_filename

  - Beschreibung: beim Empfang von Dateien wird der Nickname des Versenders dem Dateinamen vorangestellt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- xfer.look.auto_open_buffer

  - Beschreibung: öffnet automatisch den Buffer für Übertragungen, falls eine neue Übertragung hinzugefügt wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- xfer.look.progress_bar_size

  - Beschreibung: Größe des Fortschrittsbalkens, in Zeichen (0, falls Fortschrittsbalken deaktiviert sein soll)

  - Typ: integer

  - Werte: 0 .. 256

  - Standardwert: `20`

- xfer.look.pv_tags

  - Beschreibung: durch Kommata getrennte Liste von Schlagwörtern die für private Nachrichten genutzt werden sollen. Zum Beispiel: "notify_message", "notify_private" oder "notify_highlight"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"notify_private"`

- xfer.network.blocksize

  - Beschreibung: Blockgröße für versendete Pakete (in Bytes)

  - Typ: integer

  - Werte: 1024 .. 102400

  - Standardwert: `65536`

- xfer.network.fast_send

  - Beschreibung: beim Versenden von Daten wird nicht auf ein Bestätigungssignal (ACK) gewartet

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- xfer.network.own_ip

  - Beschreibung: IP- oder DNS-Adresse für ausgehenden Datentransfer/Chat (falls kein Wert angegeben ist, wird die IP des lokalen Interfaces benutzt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- xfer.network.port_range

  - Beschreibung: schränkt den ausgehenden Datenversand/Chats auf die ausschließliche Nutzung von Ports in einem vorgegebenen Bereich ein (hilfreich bei NAT) (Syntax: ein einzelner Port, z.B. 5000 oder ein Port-Bereich, z.B. 5000-5015. Ohne Angabe eines Wertes wird ein beliebiger Port genutzt. Es wird empfohlen nur Ports zu nutzen die über 1024 liegen. Denn nur der User "root" kann auf den Port-Bereich unter 1024 zugreifen)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- xfer.network.send_ack

  - Beschreibung: sendet ACK-Nachrichten wenn Dateien empfangen wurden; wenn deaktiviert kann der Transfer einfrieren, wenn der Absender auf eine ACK-Nachrichtet wartet (zum Beispiel wenn WeeChat eine Datei sendet und die Option xfer.network.fast_send aktiviert ist); andererseits kann die Deaktivierung ein Einfrieren verhindern da die ACK-Nachricht nicht umgehend an den Sender verschickt wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- xfer.network.speed_limit_recv

  - Beschreibung: Begrenzt die Übertragungsgeschwindigkeit beim Empfang, in Kilobytes pro Sekunde (0 = keine Begrenzung)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `0`

- xfer.network.speed_limit_send

  - Beschreibung: Begrenzt die Übertragungsgeschwindigkeit beim Versenden, in Kilobytes pro Sekunde (0 = keine Begrenzung)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `0`

- xfer.network.timeout

  - Beschreibung: Zeitüberschreitung bei Transferanfrage (in Sekunden)

  - Typ: integer

  - Werte: 5 .. 2147483647

  - Standardwert: `300`

## 10. 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 /cap).

Unter der Haube wird die Eingabe des Client-Tags gemäß dieser Spezifikation verwendet: https://ircv3.net/specs/client-tags/typing.html.

### 10.1. 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] █                                                                      │
    └─────────────────────────────────────────────────────────────────────────────────┘

### 10.2. 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:

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.

### 10.3. 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:

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.

### 10.4. Optionen

Sektionen in Datei typing.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set typing.look.*` | Erscheinungsbild.

Optionen:

- typing.look.delay_purge_paused

  - Beschreibung: Anzahl der Sekunden, nachdem der Pausenstatus gesetzt wurde: wenn erreicht, wird der Tippstatus entfernt

  - Typ: integer

  - Werte: 1 .. 2147483647

  - Standardwert: `30`

- typing.look.delay_purge_typing

  - Beschreibung: Anzahl der Sekunden nach Setzen des Tippstatuses: wenn erreicht, wird der Tipptatus entfernt

  - Typ: integer

  - Werte: 1 .. 2147483647

  - Standardwert: `6`

- typing.look.delay_set_paused

  - Beschreibung: Anzahl der Sekunden nach Eingabe des letzten Zeichens: wenn erreicht, wird der Schreibstatus "pausiert" und es werden keine Schreibsignale mehr gesendet

  - Typ: integer

  - Werte: 1 .. 2147483647

  - Standardwert: `10`

- typing.look.enabled_nicks

  - Beschreibung: Tippfunktion für andere Nicks aktiviert (Anzeige von Tippinfos für Nicks, die im aktuellen Buffer schreiben)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- typing.look.enabled_self

  - Beschreibung: Tippfunktion für eigene Nachrichten aktiviert (Schreibinformationen an andere Benutzer senden)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- typing.look.input_min_chars

  - Beschreibung: Mindestanzahl von Zeichen in der Nachricht, um das Senden von Tippsignalen auszulösen

  - Typ: integer

  - Werte: 1 .. 2147483647

  - Standardwert: `4`

- typing.look.item_max_length

  - Beschreibung: maximale Anzahl von Zeichen, die im Bar-Item "typing" angezeigt werden (0 = Inhalt nicht abschneiden)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `0`

## 11. 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.

- weechat: protocol used by remote interfaces to display and interact with WeeChat, see: https://weechat.org/about/interfaces

### 11.1. 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 sowohl für das irc als auch für das weechat Protokoll verwendet.

### 11.2. TOTP

TOTP (Time-based One-Time Passwort) ist eine Zwei-Faktor-Authentifizierung für das weechat Protokoll, als Ergänzung zum eigentlichen Passwort.

Diese Funktion is optional und erhöht den Sicherheitsgrad.

Ein Einmal-Passwort kann mit folgenden Anwendungen erstellt werden, zum Beispiel:

- FreeOTP: Android, iOS (website)

- Google Authenticator: Android, 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}"

### 11.3. SSL

Man kann SSL mittels eines selbst erstellten Zertifikates und eines privaten Schlüssels nutzen. Um SSL für die Verbindung zu aktivieren stellt man dem Protokollnamen ein "ssl" voran.

Der Standardpfad zum Zertifikat/Schlüssel wird durch die Option definiert relay.network.ssl_cert_key.

Ein Zertifikat und einen privaten Schlüssel kann man mit folgenden Befehlen erstellen:

    $ mkdir -p ~/.config/weechat/ssl
    $ cd ~/.config/weechat/ssl
    $ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem

| 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 sslcertkey

### 11.4. 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 SSL für einen beliebigen Server (Client wählt aus):

    /relay add ssl.irc 8000

Beispiel: IRC Proxy ohne SSL 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}"

### 11.5. 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

| Eine WeeChat Instanz kann sich NICHT mit einer anderen WeeChat Instanz über dieses Protokoll verbinden.

Zum Beispiel:

    /relay add weechat 9000

Nun kann man über den Port 9000 mittels einer Oberfläche und dem Passwort "meinPasswort" eine Verbindung zu WeeChat herstellen.

### 11.6. WebSocket

Das WebSocket Protokoll (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 relay.network.websocket_allowed_origins).

Ein WebSocket kann in HTML5, mit einer JavaScript Zeile, geöffnet werden:

    websocket = new WebSocket("ws://server.com:9000/weechat");

Der Port (im Beispiel: 9000) ist der Port der in der Relay Erweiterung angegeben wurde. Die URI muss immer auf "/weechat" enden (irc und weechat Protokoll).

### 11.7. 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:

    $ 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.

### 11.8. Befehle

- `relay`: Relay-Kontrolle

    /relay  list|listfull|listrelay
            add <name> <port>|<path>
            del|start|restart|stop <name>
            raw
            sslcertkey

             list: Auflistung der Relay-Clients (nur aktive Relays)
         listfull: detaillierte Auflistung der Relay-Clients (alle Relays)
        listrelay: Auflistung der Relays (Name und Port)
              add: fügt ein Relay, für ein Protokoll + Name, hinzu
              del: entfernt Relay für ein Protokoll + Name
            start: lausche am Port
          restart: beendet den Server Socket und lauscht erneut am Port (Clients bleiben verbunden)
             stop: schließt den Server Socket (Clients bleiben verbunden)
             name: Name des Relays (siehe Format weiter unten)
             port: Port der für Relay genutzt werden soll
             path: Pfad der für Relay genutzt werden soll (ausschließlich für UNIX Domain Socket); Pfad ist evaluiert (siehe Funktion string_eval_path_home in Erweiterung API Referenz)/n
              raw: öffnet einen Buffer mit Relay-Rohdaten
       sslcertkey: setzt SSL Zertifikat/Schlüssel mittels Pfad in Einstellung relay.network.ssl_cert_key

    Aufbau des Relay-Namens: [ipv4.][ipv6.][ssl.]<Protokoll.Name> oder unix.[ssl.]<Protokoll.Name>
             ipv4: erzwingt die Nutzung von IPv4
             ipv6: erzwingt die Nutzung von IPv6
              ssl: aktiviert SSL
             unix: nutzt UNIX Domain Socket
    protocol.name: Protokoll und Name des Relay:
                     - Protokoll "irc": Name des Servers welcher geteilt werden soll (optional. Falls kein Name angegeben wird, muss der Client einen Namen mit dem Befehl "PASS" übermitteln, das Format ist wie folgt: "PASS Server:Passwort")
                     - Protokoll "weechat" (es wird kein Name verwendet)

    Das "irc" Protokoll dient dazu eine Verbindung zu einem anderen IRC Client (oder zu einem zweiten WeeChat) herzustellen.
    Das "weechat" Protokoll wird von einem Remote-Interface genutzt um eine Verbindung auf dem Port herzustellen. Siehe https://weechat.org/about/interfaces

    Ohne Angabe von Argumenten werden alle Relay-Clients in einem neuen Buffer dargestellt.

    Beispiele:
      IRC Proxy für Server "libera":
        /relay add irc.libera 8000
      IRC Proxy, für Server "libera", mit SSL:
        /relay add ssl.irc.libera 8001
      IRC Proxy für alle Server (Client wählt aus), mit SSL:
        /relay add ssl.irc 8002
      WeeChat Protokoll:
        /relay add weechat 9000
      WeeChat Protokoll, mit SSL:
        /relay add ssl.weechat 9001
      WeeChat Protokoll, mit SSL, nur IPv4 nutzen:
        /relay add ipv4.ssl.weechat 9001
      WeeChat Protokoll, mit SSL, nur IPv6 nutzen:
        /relay add ipv6.ssl.weechat 9001
      WeeChat Protokoll, mit SSL, mit IPv4 + IPv6:
        /relay add ipv4.ipv6.ssl.weechat 9001
      Weechat Protokoll über UNIX Domain Socket:
        /relay add unix.weechat ${weechat_runtime_dir}/relay_socket

### 11.9. Optionen

Sektionen in Datei relay.conf:

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` | `/relay add /set relay.port.*` | Ports zur Nutzung der Relay-Erweiterung (IRC und weechat Protokolle) (Optionen können in Sektion hinzugefügt/entfernt werden).

Optionen:

- relay.color.client

  - Beschreibung: Textfarbe für Client-Beschreibung

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- relay.color.status_active

  - Beschreibung: Textfarbe für Status: "Verbindung hergestellt"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- relay.color.status_auth_failed

  - Beschreibung: Textfarbe für Status: "Authentifizierung gescheitert"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightmagenta`

- relay.color.status_connecting

  - Beschreibung: Textfarbe für Status: "verbinde"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- relay.color.status_disconnected

  - Beschreibung: Textfarbe für Status: "Verbindung getrennt"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightred`

- relay.color.status_waiting_auth

  - Beschreibung: Textfarbe für Status: "warte auf Authentifizierung"

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- relay.color.text

  - Beschreibung: Textfarbe in Relay-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- relay.color.text_bg

  - Beschreibung: Hintergrundfarbe in Relay-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- relay.color.text_selected

  - Beschreibung: Textfarbe für selektierte Zeile in Relay-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- relay.irc.backlog_max_minutes

  - Beschreibung: Zeitangabe, in Minuten, wie lange die Zeilen im Verlaufsspeicher für jeden IRC Kanal gehalten werden sollen (0 = unbegrenzt, Beispiele: 1440 = einen Tag, 10080 = eine Woche, 43200 = einen Monat, 525600 = ein Jahr)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `0`

- relay.irc.backlog_max_number

  - Beschreibung: maximale Anzahl an Zeilen im Verlaufsspeicher. Dies gilt für jeden IRC Kanal (0: keine Zeilenbegrenzung)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `1024`

- relay.irc.backlog_since_last_disconnect

  - Beschreibung: Verlaufsspeicher anzeigen, beginnend mit dem Client der zuletzt beendet wurde

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- relay.irc.backlog_since_last_message

  - Beschreibung: Verlaufsspeicher anzeigen, beginnend mit Ihrer zuletzt geschriebenen Nachricht

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- relay.irc.backlog_tags

  - Beschreibung: durch Kommata getrennte Liste von Nachrichten-Tags welche im Verlaufsspeicher von IRC Kanälen angezeigt werden (unterstützte Tags: "irc_join", "irc_part", "irc_quit", "irc_nick", "irc_privmsg"), "*" = alle unterstützten Tags

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"irc_privmsg"`

- relay.irc.backlog_time_format

  - Beschreibung: Format für die Zeitanzeige im Verlaufsspeicher (siehe man strftime für gültige Formate) (findet keine Anwendung wenn die Serverfunktion, "server-time", durch den Client aktiviert wurde, da die Zeitanzeige als irc-Tag gesendet wird); keine Zeichenkette = deaktiviert die Zeitanzeige im Verlaufsspeicher

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"[%H:%M] "`

- relay.look.auto_open_buffer

  - Beschreibung: öffnet automatisch einen Relay-Buffer, falls eine Verbindung zu einem neuen Client hergestellt wird

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- relay.look.raw_messages

  - Beschreibung: Anzahl der IRC-RAW-Nachrichten die im Speicher gehalten werden sollen falls der RAW-Daten-Buffer geschlossen ist (die Nachrichten werden umgehend angezeigt sobald der RAW-Daten-Buffer geöffnet wird)

  - Typ: integer

  - Werte: 0 .. 65535

  - Standardwert: `256`

- relay.network.allow_empty_password

  - Beschreibung: erlaubt das kein Passwort für Relay genutzt wird (sollte ausschließlich für Testzwecke oder auf einem lokalen System genutzt werden)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- relay.network.allowed_ips

  - Beschreibung: Erweiterter regulärer POSIX Ausdruck für IPs die von relay akzeptiert werden (Groß- und Kleinschreibung wird ignoriert. Um zwischen Groß- und Kleinschreibung zu unterscheiden muss die Zeichenkette mit "(?-i)" eingeleitet werden), Beispiele: "^(123\.45\.67\.89|192\.160\..*)$"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- relay.network.auth_timeout

  - Beschreibung: Zeitüberschreitung (in Sekunden) für die Clientauthentifizierung: Die Verbindung wird geschlossen, falls der Client nach dieser Verzögerung immer noch nicht authentifiziert ist und der Clientstatus auf "Authentifizierung fehlgeschlagen" gesetzt ist (0 = ewig warten)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `60`

- relay.network.bind_address

  - Beschreibung: Adresse für Bind (falls nicht gesetzt ist eine Verbindung zu allen Interfaces möglich. Wird die Adresse "127.0.0.1" genutzt kann nur eine Verbindung mit dem lokalen Rechner hergestellt werden)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- relay.network.clients_purge_delay

  - Beschreibung: Wartezeit bis nicht verbundene Clients gelöscht werden (in Minuten, 0 = lösche Clients unmittelbar, -1 = niemals löschen)

  - Typ: integer

  - Werte: -1 .. 43200

  - Standardwert: `0`

- relay.network.compression

  - Beschreibung: Komprimierung von Nachrichten, die mittels "weechat" Protokoll an Clients gesendet werden: 0 = Komprimierung deaktivieren, 1 = geringe Komprimierung / schnell ... 100 = beste Komprimierung / langsam; dieser Wert ist eine Prozentangabe, welcher für zlib nach 1-9 und für zstd nach 1-19 umgewandelt wird; der Standardwert wird empfohlen, denn er bietet einen guten Kompromiss zwischen Kompression und Geschwindigkeit

  - Typ: integer

  - Werte: 0 .. 100

  - Standardwert: `20`

- relay.network.ipv6

  - Beschreibung: lauscht standardmäßig am IPv6 Socket (zusätzlich zu IPv4, welches als Standardprotokoll genutzt wird); mittels des Protokollnamens kann das IPv4 und IPv6 Protokoll, einzeln oder gemeinsam, erzwungen werden (siehe /help relay)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- relay.network.max_clients

  - Beschreibung: maximale Anzahl an Clients die mit einem Port verbunden sein dürfen (0 = keine Begrenzung)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `5`

- relay.network.nonce_size

  - Beschreibung: Größe der Nonce (in Bytes), die generiert wird, wenn ein Client eine Verbindung herstellt; Der Client muss diese Nonce verwenden, die mit der Client-Nonce und dem Kennwort verknüpft ist, wenn das Kennwort im Befehl "init" des Weechat-Protokolls gehasht wird

  - Typ: integer

  - Werte: 8 .. 128

  - Standardwert: `16`

- relay.network.password

  - Beschreibung: Passwort wird von Clients benötigt um Zugriff auf dieses Relay zu erhalten (kein Eintrag bedeutet, dass kein Passwort benötigt wird, siehe Option relay.network.allow_empty_password) (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- relay.network.password_hash_algo

  - Beschreibung: durch Kommata getrennte Liste der Hash-Algorithmen, die für die Kennwortauthentifizierung im Weechat-Protokoll verwendet werden, unter diesen Werten: "plain" (Kennwort im Klartext, nicht gehasht), "sha256", "sha512", "pbkdf2 + sha256", "pbkdf2 + sha512" ), "*" bedeutet alle Algorithmen, ein Name, der mit "!" beginnt ist ein negativer Wert, um die Verwendung eines Algorithmus zu vermeiden. Ein Platzhalter "*" im Namen ist zulässig (Beispiele: "*", "pbkdf2 *", "*,! plain")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"*"`

- relay.network.password_hash_iterations

  - Beschreibung: Anzahl der Iterationen, die im Weechat-Protokoll an den Client gesendet werden, wenn ein Hash-Passwort mit dem Algorithmus PBKDF2 zur Authentifizierung verwendet wird; Mehr Iterationen sind aus Sicherheitsgründen besser, aber langsamer zu berechnen. Diese Zahl sollte nicht zu hoch sein, wenn Ihre CPU langsam ist

  - Typ: integer

  - Werte: 1 .. 1000000

  - Standardwert: `100000`

- relay.network.ssl_cert_key

  - Beschreibung: Datei mit SSL-Zertifikat und privatem Schlüssel (zum Bedienen von Clients mit SSL) (Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${weechat_config_dir}/ssl/relay.pem"`

- relay.network.ssl_priorities

  - Beschreibung: Zeichenkette mit Prioritäten für gnutls (für die korrekte Syntax siehe gnutls Dokumentation unter Funktion gnutls_priority_init. Gebräuchliche Zeichenketten sind: "PERFORMANCE", "NORMAL", "SECURE128", "SECURE256", "EXPORT", "NONE")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"NORMAL:-VERS-SSL3.0"`

- relay.network.totp_secret

  - Beschreibung: geheime Zeichenkette für die Erstellung des Time-based One-Time Passwort (TOTP), base32 enkodiert (ausschließlich Buchstaben und Zahlen zwischen 2 und 7); dient im WeeChat-Protokoll zur Zwei-Faktor-Authentifizierung, ergänzend zum eigentlichen Passwort (eine nicht gesetzte Option bedeutet, das TOTP nicht benötigt wird) (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- relay.network.totp_window

  - Beschreibung: Anzahl der Time-based One-Time Passwörter die vor und nach dem aktuellen Passwort akzeptiert werden: 0 = nur das aktuelle Passwort wird akzeptiert, 1 = akzeptiert ein Passwort vorher, das aktuelle und ein Passwort danach, 2 = akzeptiert zwei Passwörter vorher, das aktuelle und zwei Passwörter danach, ...; umso höher die genutzte Zahl umso unsicherer das Verfahren (0 oder 1 sind empfohlene Werte)

  - Typ: integer

  - Werte: 0 .. 256

  - Standardwert: `0`

- relay.network.websocket_allowed_origins

  - Beschreibung: Erweiterter regulärer POSIX Ausdruck für Origins in WebSockets (Groß- und Kleinschreibung wird ignoriert. Um Groß- und Kleinschreibung zu unterscheiden kann "(?-i)" vorangestellt werden), Beispiel: ^https?://(www\.)?example\.(com|org)"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- relay.weechat.commands

  - Beschreibung: durch Kommata getrennte Liste von Befehlen die erlaubt bzw. verboten sind, wenn Daten (Text oder Befehl) vom Client empfangen werden; "*" bedeutet alle Befehle sind erlaubt, beginnt ein Befehl hingegen mit "!" wird die Auswahl umgekehrt und der Befehl wird nicht ausgeführt, ein Platzhalter "*" ist bei den Befehlen erlaubt; diese Option sollte verwendet werden, falls man befürchtet, dass der relay client kompromittiert werden kann (darüber können Befehle ausgeführt werden); Beispiel: "*,!exec,!quit" es sind alle Befehle erlaubt, außer /exec und /quit

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

## 12. 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.

### 12.1. Befehle

- `exec`: führe externe Befehle aus

    /exec  -list
           [-sh|-nosh] [-bg|-nobg] [-stdin|-nostdin] [-buffer <name>] [-l|-o|-oc|-n|-nf] [-oerr] [-cl|-nocl] [-sw|-nosw] [-ln|-noln] [-flush|-noflush] [-color ansi|auto|irc|weechat|strip] [-rc|-norc] [-timeout <timeout>] [-name <name>] [-pipe <command>] [-hsignal <name>] <command>
           -in <id> <text>
           -inclose <id> [<text>]
           -signal <id> <signal>
           -kill <id>
           -killall
           -set <id> <property> <value>
           -del <id>|-all [<id>...]

       -list: zeigt laufende Befehle an
         -sh: es wird die shell verwendet um Befehle auszuführen, mehrere Befehle können dabei gepiped werden (WARNUNG: Dieses Argument sollte nur verwendet werden, falls alle Argumente unbedenklich sind, siehe Argument -nosh)
       -nosh: die shell wird nicht verwendet um Befehle auszuführen (wird benötigt, falls der Befehl mit sensiblen Daten hantiert. Zum Beispiel der Inhalt einer Nachricht eines anderen Users)(Standardverhalten)
         -bg: führt Prozess im Hintergrund aus: es wird weder eine Prozessausgabe noch ein Rückgabewert ausgegeben (nicht kompatibel mit Argumenten -o/-oc/-n/-nf/-pipe/-hsignal)
       -nobg: gibt Prozessausgabe und Rückgabewert aus (Standardverhalten)
      -stdin: erstellt eine PIPE um Daten zu dem Prozess zu senden (mittels /exec -in/-inclose)
    -nostdin: es wird keine PIPE für stdin erstellt (Standardverhalten)
     -buffer: zeigt/sendet Ausgabe des Befehls an diesen Buffer (wird der angegebene Buffer nicht gefunden wird ein neuer Buffer mit dem Namen "exec.exec.xxx" erstellt)
          -l: gibt die Ausgabe des Befehls lokal im Buffer aus (Standardverhalten)
          -o: gibt die Ausgabe des Befehls im Buffer aus (nicht kompatibel mit Argumenten -bg/-pipe/-hsignal)
         -oc: gibt die Ausgabe des Befehls im Buffer aus und führt diesen dann aus (betrifft Zeilen die mit "/" beginnen bzw. das benutzerdefinierte Befehlszeichen verwenden) (nicht kompatibel mit Argumenten -bg/-pipe/-hsignal)
          -n: gibt die Ausgabe des Befehls in einem neuen Buffer aus (nicht kompatibel mit Argumenten -bg/-pipe/-hsignal)
         -nf: gibt die Ausgabe des Befehls in einem neuen Buffer, mit einem freien Inhalt, aus (kein Zeilenumbruch, keine Limitierung in der Anzahl der Zeilen), aus (nicht kompatibel mit Argument -bg/-pipe/-hsignal)
       -oerr: sendet stderr (Fehlerausgabe) an den Buffer (kann nur mit den Optionen -o und -oc verwendet werden)
         -cl: der neue Buffer wird vor einer Ausgabe gelöscht
       -nocl: Ausgabe wird an neuen Buffer angehangen, ohne diesen vorher zu löschen (Standardverhalten)
         -sw: es wird zum Ausgabebuffer gewechselt (Standardverhalten)
       -nosw: es wird nicht zum Ausgabebuffer gewechselt
         -ln: legt eine Zeilennummerierung an (Standardverhalten, nur für neue Buffer)
       -noln: es wird keine Zeilennummerierung angezeigt
      -flush: die Ausgabe des Befehls findet in Echtzeit statt (Standardwert)
    -noflush: die Ausgabe des Befehls wird am Ende der Ausführung ausgegeben
      -color: es wird eine der folgenden Aktionen bei ANSI Zeichenkodierungen in der Ausgabe durchgeführt:
                 ansi: ANSI-Kodierung wird beibehalten
                 auto: konvertiert ANSI-Farben nach WeeChat/IRC (Standardverhalten)
                  irc: konvertiert ANSI-Farben nach IRC Farben
              weechat: konvertiert ANSI-Farben nach WeeChat-Farben
                strip: ANSI-Farben werden entfernt
         -rc: der Rückgabewert wird ausgegeben (Standardverhalten)
       -norc: der Rückgabewert wird unterdrückt
    -timeout: gibt eine Zeitbeschränkung für den auszuführenden Befehl an (in Sekunden)
       -name: dem Befehl wird ein Name zugewiesen (um den Befehl später mittels /exec zu nutzen)
       -pipe: sendet die Ausgabe an einen Befehl von WeeChat/Erweiterung (Zeile für Zeile); sollen Leerzeichen im Befehl/Argument verwendet werden, müssen diese mit Anführungszeichen eingeschlossen werden; Variable $line wird durch die entsprechende Zeile ersetzt (standardmäßig wird die Zeile, getrennt durch ein Leerzeichen, dem Befehl nachgestellt (nicht kompatibel mit den Argumenten -bg/-o/-oc/-n/-nf)
     -hsignal: sendet die Ausgabe als hsignal (um es z.B. mittels /trigger zu verwenden) (nicht kompatibel mit den Argumenten -bg/-o/-oc/-n/-nf)
     command: Befehl der ausgeführt werden soll; beginnt der Befehl mit "url:", wird die shell deaktiviert und der Inhalt der URL wird heruntergeladen und im Buffer ausgegeben
          id: identifiziert eindeutig einen Befehl: entweder durch eine Nummer oder einen Namen (sofern ein Name mittels "-name xxx" zugewiesen wurde)
         -in: sendet Text an die Standardeingabe des Prozesses
    -inclose: wie -in aber stdin wird danach geschlossen (und der Text ist optional: ohne Text wird stdin umgehend geschlossen
     -signal: schickt ein Signal an den Prozess; das Signal kann entweder ein Integerwert oder eines der folgenden Schlüsselworte sein: hup, int, quit, kill, term, usr1, usr2
       -kill: Alias für "-signal <id> kill"
    -killall: beendet alle laufenden Prozesse
        -set: nutzt eine Hook-Fähigkeit (siehe Funktion hook_set in Anleitung für API Erweiterung)
    property: Hook-Fähigkeit
       value: neuer Wert für Hook-Fähigkeit
        -del: entfernt einen beendeten Befehl
        -all: entfernt alle beendeten Befehle

    Standardoptionen können in der Einstellung exec.command.default_options bestimmt werden.

    Beispiele:
      /exec -n ls -l /tmp
      /exec -sh -n ps xu | grep weechat
      /exec -n -norc url:https://pastebin.com/raw.php?i=xxxxxxxx
      /exec -nf -noln links -dump https://weechat.org/files/doc/devel/weechat_user.en.html
      /exec -o uptime
      /exec -pipe "/print Machine uptime:" uptime
      /exec -n tail -f /var/log/messages
      /exec -kill 0

### 12.2. Optionen

Sektionen in Datei exec.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`command` | `/set exec.command.*` | Optionen für Befehle.
`color` | `/set exec.color.*` | Farben.

Options:

- exec.color.flag_finished

  - Beschreibung: Textfarbe des Statusindikator (in der Auflistung der Befehle) für beendete Befehle

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightred`

- exec.color.flag_running

  - Beschreibung: Textfarbe des Statusindikator (in der Auflistung der Befehle) für Befehle die zur Zeit ausgeführt werden

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightgreen`

- exec.command.default_options

  - Beschreibung: Standardoptionen für den Befehl /exec (siehe /help exec); Beispiele: "-nosh -bg" führt alle Befehle im Hintergrund aus (keine Textausgabe) und ohne das die shell genutzt wird

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- exec.command.purge_delay

  - Beschreibung: Wartezeit bis nicht mehr ausgeführte Befehle gelöscht werden (in Sekunden, 0 = lösche Befehle unmittelbar, -1 = niemals löschen)

  - Typ: integer

  - Werte: -1 .. 25920000

  - Standardwert: `0`

- exec.command.shell

  - Beschreibung: shell welche für den Befehl "/exec -sh" genutzt werden soll; hierbei kann es sich um den Namen der shell handeln der über PATH gefunden wird (zum Beispiel "bash") oder man nutzt eine absolute Pfadangabe zur Binärdatei (zum Beispiel "/bin/bash"); wenn kein Wert angegeben ist, wird "sh" genutzt (Hinweis: Inhalt ist evaluiert, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${env:SHELL}"`

## 13. 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

einige Beispiele:

- Ändert den eigenen Nick auf dem IRC Server libera in "newnick":

    $ echo 'irc.server.libera */nick newnick' >/run/user/1000/weechat/weechat_fifo_12345

- Schickt eine Nachrich in den IRC #weechat Channel:

    $ echo 'irc.libera.#weechat *hello!' >/run/user/1000/weechat/weechat_fifo_12345

- Schickt eine Nachricht in den aktuellen Buffer:

    $ 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):

    $ printf '%b' '*/python unload\n*/python autoload\n' >/run/user/1000/weechat/weechat_fifo_12345

### 13.1. Befehle

- `fifo`: Konfiguration für "fifo" Erweiterung

    /fifo  enable|disable|toggle

     enable: aktivieren der FIFO pipe
    disable: deaktivieren der FIFO pipe
     toggle: Status der FIFO pipe umschalten

    Die FIFO-Pipe wird als Fernbedienung genutzt, es können Befehle oder Text von der Shell an die FIFO-Pipe geschickt werden
    Standardmäßig heißt die FIFO-Pipe weechat_fifo_xxx (wobei xxx die WeeChat-Prozess-ID ist) und befindet sich im WeeChat-Laufzeitverzeichnis (siehe /debug dirs).

    Folgendes Format wird erwartet:
      plugin.buffer *Text oder Befehl an dieser Stelle
      *Text oder Befehl an dieser Stelle

    Beispiel um den eigenen Nick auf dem Server libera zu ändern:
      echo 'irc.server.libera */nick newnick' >/run/user/1000/weechat/weechat_fifo_12345

    Bitte lese die Benutzeranleitung für weitere Informationen und Beispiele.

    Beispiele:
      /fifo toggle

### 13.2. Optionen

Sektionen in Datei fifo.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`file` | `/set fifo.file.*` | FIFO Pipe Optionen.

Optionen:

- fifo.file.enabled

  - Beschreibung: FIFO-Pipe aktivieren

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- fifo.file.path

  - Beschreibung: Pfad für FIFO-Datei; WeeChat PID kann im Pfad mit ${info:pid} verwendet werden (Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${weechat_runtime_dir}/weechat_fifo_${info:pid}"`

## 14. 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 Anleitung für API Erweiterung / Hooks (Englisch).

### 14.1. 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:

Name | Hook | Beschreibung
--- | --- | ---
`beep` | print | Beep bei Highlight/privaten Nachrichten.
`cmd_pass` | modifier | unterdrückt Passwörter in den Befehlen: `/msg nickserv id|identify|set password|ghost|release|regain|recover`, `/oper`, `/quote pass`, `/secure passphrase|decrypt|set`.
`cmd_pass_register` | modifier | unterdrückt Passwort im Befehl `/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`.

### 14.2. Aufbau eines Triggers

Ein Trigger hat folgende Optionen (Benennung ist `trigger.trigger.<name>.<option>`):

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 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 /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 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 /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

### 14.3. Ausführung

Wenn ein Trigger-Callback aufgerufen wird, dann wird folgende Befehlskette abgearbeitet:

1. Überprüfung von Bedingungen; falls unwahr, beenden

2. ersetze Text mittels erweitertem regulärer POSIX Ausdruck (sofern im Trigger definiert)

3. ein oder mehrere Befehle werden ausgeführt (sofern im Trigger definiert)

4. Beendigung mit einem Rückgabewert (ausgenommen sind die Hooks modifier, line, focus, info und info_hashtable)

5. Aktion welche nach der Abarbeitung des Triggers ausgeführt werden soll (falls der Wert abweichend von `none` sein sollte).

### 14.4. Hook Argumente

Die Argumente sind abhängig von dem genutzten Hook und werden durch ein Semikolon getrennt.

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` | hook_signal (Englisch)
hsignal | 1. Signalname (Priorität erlaubt) (erforderlich) 2. Signalname (Priorität erlaubt) 3. …​ | `nicklist_nick_added` | 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` | hook_modifier (Englisch)
line | 1. Buffertyp 2. Buffername 3. Tags | `formatted` `free` `*;irc.libera.*` `*;irc.libera.#weechat` `formatted;irc.libera.#weechat;irc_notice` | hook_line
print | 1. Buffername 2. Tags 3. Nachricht 4. entferne Farben (0/1) | `irc.libera.*` `irc.libera.#weechat` `irc.libera.#weechat;irc_notice` `*;;;1` | hook_print (Englisch)
command | 1. Befehlsname (Priorität erlaubt) (erforderlich) 2. Beschreibung (evaluiert, siehe Befehl /eval) 3. Argumente (evaluiert, siehe Befehl /eval) 4. Beschreibung der Argumente (evaluiert, siehe Befehl /eval) 5. Vervollständigung (evaluiert, siehe Befehl /eval) | `test` `5000|test` `test;test command;arg1 arg2;arg1: description 1${\n}arg2: description 2` | hook_command (Englisch)
command_run | 1. Befehl (Priorität erlaubt) (erforderlich) 2. Befehl (Priorität erlaubt) 3. …​ | `/cmd arguments` | 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` | hook_timer (Englisch)
config | 1. Name der Option (Priorität erlaubt) (erforderlich) 2. Name der Option (Priorität erlaubt) 3. …​ | `weechat.look.*` | hook_config (Englisch)
focus | 1. area Name (Priorität erlaubt) (erforderlich) 2. area Name (Priorität erlaubt) 3. …​ | `buffer_nicklist` | hook_focus (Englisch)
info | 1. info name (Priorität erlaubt) (erforderlich) 2. info name (Priorität erlaubt) 3. …​ | `my_info` | hook_info (Englisch)
info_hashtable | 1. info name (Priorität erlaubt) (erforderlich) 2. info name (Priorität erlaubt) 3. …​ | `my_info` | hook_info_hashtable (Englisch)

### 14.5. 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 Daten in Callbacks und Befehl /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})

### 14.6. reguläre Ausdrücke

Reguläre Ausdrücke werden verwendet um Variablen in einem Callback Hashtable zu ändern.

Das Format ist: "/regex/replace" oder "/regex/replace/var" (wobei var eine Variable eines Hashtable darstellt).

Falls var in der Hashtabelle nicht existieren sollte, wird diese automatisch mit einem leeren Wert angelegt. Damit kann man temporär benutzerspezifische Variablen erstellen.

Sollte var nicht näher spezifiziert sein, wird die Standard-Variable genutzt, welche abhängig von dem genutzten Hook ist:

Hook | Standard-Variable | Update allowed (1)
--- | --- | ---
signal | tg_signal_data |
hsignal |  |
modifier | tg_string | tg_string
line | message | buffer, buffer_name, y, date, date_printed, str_time, tags, notify_level, highlight, prefix, message
print | tg_message |
command | tg_argv_eol1 |
command_run | tg_command |
timer | tg_remaining_calls |
config | tg_value |
focus |  |
info | tg_info | tg_info
info_hashtable |  | alle Variablen die in der hashtable empfangen wurden

| (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.

Mehrere reguläre Ausdrücke können durch ein Leerzeichen voneinander getrennt werden, zum Beispiel: "/regex1/replace1/var1 /regex2/replace2/var2".

Das Zeichen "/" kann durch jedes andere Zeichen ersetzt werden (ein oder mehrere identische Zeichen).

Matching groups können in "replace" genutzt werden:

- `${re:0}` bis `${re:99}`: `${re:0}` um alles zu matchen, `${re:1}` bis `${re:99}` um Gruppen zu fangen

- `${re:+}`: der letzte match (mit der höchsten Nummer)

- `${hide:c,${re:N}}`: match "N" mit allen Zeichen die durch "c" ersetzt wurden (Beispiel: `${hide:*,${re:2}}` ist die group #2 mit allen Zeichen die durch `*` ersetzt wurden).

Beispiel: nutzte Fettschrift zwischen dem Zeichen `*`:

    /\*([^ ]+)\*/*${color:bold}${re:1}${color:-bold}*/

Beispiel: der Standard-Trigger server_pass nutzt folgenden regulären Ausdruck um ein Passwort in den Befehlen `/server` und `/connect` zu verbergen (die einzelnen Zeichen des Passwortes werden durch `*` ersetzt):

    ==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}

| In diesem Beispiel wird "==" als Trennzeichen verwendet, da ein "/" in dem regulären Ausdruck genutzt wird.

### 14.7. 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 /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

### 14.8. 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:

Variable | Typ | Beschreibung
--- | --- | ---
`tg_trigger_name` | string | Name des Trigger.

#### 14.8.1. Signale

Der Callback von "signal" legt folgende Variablen in der Hashtable an:

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:

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.
`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).

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}

#### 14.8.2. Hsignal

Der Callback von "hsignal" legt folgende Variablen in der Hashtable an:

Variable | Typ | Beschreibung
--- | --- | ---
`tg_signal` | string | Name des Signals.

Das Hashtable enthält alle Schlüssel/Werte (Typ: string/string).

#### 14.8.3. Modifier

Der Callback von "modifier" legt folgende Variablen in der Hashtable an:

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 hook print weiter unten), und nachfolgende Variablen:

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 hook signal).

#### 14.8.4. Line

Der Callback von "line" legt folgende Variablen in der Hashtable an:

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_printed` | string | Datum wann die Zeile dargestellt wurde (Zeitstempel).
`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:

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".

(1) Sonderzeichen werden im IRC Tag ersetzt:

- key: `_` → `-` and `,` → `;`

- value: `,` → `;`

#### 14.8.5. Print

Der Callback von "print" legt folgende Variablen in der Hashtable an:

Variable | Typ | Beschreibung
--- | --- | ---
`buffer` | pointer | Buffer.
`tg_date` | string | Datum/Uhrzeit der Nachricht (Format: `YYYY-MM-DD hh:mm:ss`).
`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:

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".

(1) Sonderzeichen werden im IRC Tag ersetzt:

- key: `_` → `-` and `,` → `;`

- value: `,` → `;`

#### 14.8.6. Command

Der Callback von "command" legt folgende Variablen in der Hashtable an:

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).

#### 14.8.7. Command_run

Der Callback von "command_run" legt folgende Variablen in der Hashtable an:

Variable | Typ | Beschreibung
--- | --- | ---
`buffer` | pointer | Buffer.
`tg_command` | string | auszuführender Befehl.

#### 14.8.8. Timer

Der Callback von "timer" legt folgende Variablen in der Hashtable an:

Variable | Typ | Beschreibung
--- | --- | ---
`tg_remaining_calls` | string | Anzahl der noch ausstehenden Aufrufe.
`tg_date` | string | aktuelles Datum und Uhrzeit (Format: `YYYY-MM-DD hh:mm:ss`).

#### 14.8.9. Config

Der Callback von "config" legt folgende Variablen in der Hashtable an:

Variable | Typ | Beschreibung
--- | --- | ---
`tg_option` | string | Option.
`tg_value` | string | Wert.

#### 14.8.10. Focus

Der Callback von "focus" legt folgende Variablen in der Hashtable an:

Variable | Typ | Beschreibung
--- | --- | ---
`window` | pointer | Fenster.
`buffer` | pointer | Buffer.

Das Hashtable enthält alle Schlüssel/Werte (Typ: string/string).

#### 14.8.11. Info

Der Callback von "info" legt folgende Variablen in der Hashtable an:

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).

#### 14.8.12. Info_hashtable

Der Callback von "info_hashtable" legt folgende Variablen in der Hashtable an:

Variable | Typ | Beschreibung
--- | --- | ---
`tg_info_name` | string | Name der Information.

Das Hashtable enthält alle Schlüssel/Werte (Typ: string/string).

### 14.9. Beispiele

#### 14.9.1. 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}=="

| 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.

#### 14.9.2. 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"

#### 14.9.3. 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.

#### 14.9.4. 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).

### 14.10. Befehle

- `trigger`: verwaltet Trigger, das Schweizer Armeemesser für WeeChat

    /trigger  list|listfull|listdefault
              add|addoff|addreplace <name> <hook> ["<arguments>" ["<conditions>" ["<regex>" ["<command>" ["<return_code>" ["<post_action>"]]]]]]
              addinput [<hook>]
              input|output|recreate <name>
              set <name> <option> <value>
              rename|copy <name> <new_name>
              enable|disable|toggle [<name>|-all [<name>...]]
              restart <name>|-all [<name>...]
              show <name>
              del <name>|-all [<name>...]
              restore <name> [<name>...]
              default -yes
              monitor [<filter>]

           list: zeigt eine Liste aller Trigger (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
       listfull: zeigt eine detaillierte Liste, mit zusätzlichen Informationen, aller Trigger an
    listdefault: zeigt die standardmäßig genutzten Trigger an
            add: fügt einen Trigger hinzu
         addoff: fügt einen Trigger hinzu (deaktiviert)
     addreplace: erzeugt neuen Trigger oder ersetzt einen schon existierenden Trigger
           name: Name des Trigger
           hook: signal, hsignal, modifier, line, print, command, command_run, timer, config, focus, info, info_hashtable
      arguments: Argumente für den Hook, abhängig vom genutzten Hook (getrennt durch Semikolon):
                 signal: Name(en) des signals (erforderlich)
                 hsignal: Name(en) des hsignal (erforderlich)
                 modifier: Name(en) des modifier (erforderlich)
                 line: Buffertyp ("formatted", "free" oder "*"), Liste von Buffermasken, Tags
                 print: Buffer, Tags, Nachricht, Farben entfernen
                 command: Befehl (erforderlich), Beschreibung, Argumente, Beschreibung der Argumente, Vervollständigung (alle Argumente, außer dem Befehl werden ausgewertet, "${tg_trigger_name}" wird durch den Triggernamen ersetzt, siehe /help eval)
                 command_run: Befehl(e) (erforderlich)
                 timer: Intervall (erforderlich), Anpassung an Sekunden (erforderlich), maximale Anzahl an Aufrufen
                 config: Name der Einstellung (erforderlich)
                 focus: Name(n) für sichtbaren Bereich (erforderlich) (z.B. "chat" für Chatbereich)
                 info: Name(n) der Information (erforderlich)
                 info_hashtable: Name(n) der Information (erforderlich)
     conditions: evaluierte Bedingungen für den Trigger
          regex: einer oder mehrere reguläre Ausdrücke um Zeichenketten in Variablen zu ersetzen
        command: Befehl welcher ausgeführt werden soll (mehrere Befehle müssen durch ";" voneinander getrennt werden)
    return_code: Rückgabewert für Callback (ok (standard), ok_eat, error)
    post_action: Aktion welche nach der Abarbeitung des Triggers ausgeführt werden soll (none (Standardwert), disable, delete)
       addinput: erstellt einen Trigger mit einer standardmäßigen Mustervorlage
          input: kopiert den kompletten Trigger-Befehl in die Eingabezeile
         output: schickt den Trigger-Befehl als Text in den Buffer
       recreate: wie "input", allerdings wird die Einstellung "addreplace" anstelle von "add" genutzt
            set: definiert, innerhalb eines Triggers, eine Einstellung neu
         option: Name einer Einstellung: name, hook, arguments, conditions, regex, command, return_code
                 (um Hilfe über eine Einstellung zu erhalten: /help trigger.trigger.<name>.<option>)
          value: neuer Wert für Einstellung
         rename: benennt einen Trigger um
           copy: kopiert einen Trigger
         enable: aktiviert Trigger (ohne Angabe von Argumenten: aktiviert alle Trigger)
        disable: deaktiviert Trigger (ohne Angabe von Argumenten: deaktiviert alle Trigger)
         toggle: de-/aktiviert Trigger (ohne Angabe von Argumenten: de-/aktiviert alle Trigger)
        restart: startet Trigger neu (Hook(s) werden neu erstellt)
           show: zeigt detaillierte Informationen zu einem Trigger (inklusive einer kleinen Statistik)
            del: entfernt einen Trigger
           -all: führt eine Aktion aus, die alle Trigger beinhaltet
        restore: stellt Trigger mit Standardwerten wieder her (funktioniert nur bei vorgegebenen Triggern)
        default: stellt die standardmäßigen Trigger wieder her
        monitor: öffnet den Trigger Monitor-Buffer, mit optionaler Filterfunktion:
         filter: filtert Hooks/Trigger zum Anzeigen (ein Hook muss mit "@" beginnen, zum Beispiel "@signal"), mehrere Filter können durch Kommata voneinander getrennt werden; Platzhalter "*" kann im Namen des Trigger verwendet werden

    Wenn ein Trigger-Callback aufgerufen wird, dann wird folgende Befehlskette ausgeführt:
      1. Überprüfung von Bedingungen; falls unwahr, beenden
      2. ersetze Text mittels einem oder mehreren erweiterten regulären POSIX Ausdrücken (sofern im Trigger definiert)
      3. ein oder mehrere Befehle werden ausgeführt (sofern im Trigger definiert)
      4. Beendigung mit einem Rückgabewert (ausgenommen sind modifiers, line, focus, info und info_hashtable)
      5. Aktion welche nach der Abarbeitung des Triggers ausgeführt werden soll

    Beispiele (die standardmäßig verfügbaren Trigger kann man sich mit "/trigger listdefault" anzeigen lassen):
      fügt einer Nachricht die Textattribute *fett*, _unterstrichen_ und /kursiv/ hinzu:
        /trigger add effects modifier weechat_print "${tg_tag_nick}" "==\*([^ ]+)\*==*${color:bold}${re:1}${color:-bold}*== ==_([^ ]+)_==_${color:underline}${re:1}${color:-underline}_== ==/([^ ]+)/==/${color:italic}${re:1}${color:-italic}/"
      verbirgt die Nicklist auf kleineren Terminals:
        /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"
      speichert die Konfiguration jede Stunde ab:
        /trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
      öffnet den Trigger Monitor und zeigt ausschließlich modifier und Trigger an, die mit "resize" im Namen beginnen:
        /trigger monitor @modifier,resize*

### 14.11. Optionen

Sektionen in Datei trigger.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set trigger.look.*` | Erscheinungsbild.
`color` | `/set trigger.color.*` | Farben.
`trigger` | `/trigger add /trigger set /set trigger.trigger.*` | Trigger Optionen.

Optionen:

- trigger.color.flag_command

  - Beschreibung: Textfarbe für Befehls-Flag (in /trigger list)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightgreen`

- trigger.color.flag_conditions

  - Beschreibung: Textfarbe für Bedingungen-Flag (in /trigger list)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- trigger.color.flag_post_action

  - Beschreibung: Textfarbe für das Flag welches anzeigt welche nachfolgende Aktion ausgeführt werden soll (in /trigger list)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightblue`

- trigger.color.flag_regex

  - Beschreibung: Textfarbe für Regex-Flag (in /trigger list)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightcyan`

- trigger.color.flag_return_code

  - Beschreibung: Textfarbe für Rückgabewert-Flag (in /trigger list)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightmagenta`

- trigger.color.regex

  - Beschreibung: Textfarbe für reguläre Ausdrücke

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- trigger.color.replace

  - Beschreibung: Textfarbe für ausgetauschten Text (bei regulären Ausdrücken)

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- trigger.color.trigger

  - Beschreibung: Textfarbe für den Namen des Triggers

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `green`

- trigger.color.trigger_disabled

  - Beschreibung: Textfarbe für den Namen des Triggers, wenn dieser deaktiviert ist

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `red`

- trigger.look.enabled

  - Beschreibung: Triggerunterstützung einschalten

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- trigger.look.monitor_strip_colors

  - Beschreibung: entfernt Farben von Hashtablewerten die im Monitor-Buffer angezeigt werden

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

## 15. 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.

### 15.1. 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:

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 Anleitung für API Erweiterung (Englisch) oder WeeChat scripting guide lesen.

### 15.2. 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 WeeChat scripting Guide.

#### 15.2.1. Skriptmanager

Der Skriptmanager (Befehl /script) wird verwendet, um Skripte zu laden/stoppen. Dies ist unabhängig von der Skriptsprache. Ausserdem können Skripte installiert und wieder entfernt werden, dazu wird das Skript-Repository verwendet, welches man unter folgender URL findet: https://weechat.org/scripts

Aus Datenschutzgründen ist das Herunterladen von Skripten standardmäßig deaktiviert.
Um es zu aktivieren, geben Sie diesen Befehl ein:

    /set script.scripts.download_enabled on

Dann können Sie die Liste der Skripte herunterladen und in einem separaten Buffer, mit dem Befehl /script, anzeigen lassen:

    ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
    │1.weechat│368/368 scripts (filter: *) | Sort: i,p,n | Alt+key/input: i=install, r=remove, l=load, L=reload, u=│
    │2.scripts│*      autosort.py                 3.9     2020-10-11 | Automatically keep buffers grouped by server│
    │         │*      multiline.pl                0.6.3   2016-01-02 | Multi-line edit box, also supports editing o│
    │         │*      highmon.pl                  2.7     2020-06-21 | Adds a highlight monitor buffer.            │
    │         │*ia r  grep.py               0.8.5 0.8.5   2021-05-11 | Search regular expression in buffers or log │
    │         │*      autojoin.py                 0.3.1   2019-10-06 | Configure autojoin for all servers according│
    │         │*      colorize_nicks.py           28      2021-03-06 | Use the weechat nick colors in the chat area│
    │         │*ia r  go.py                 2.7   2.7     2021-05-26 | Quick jump to buffers.                      │
    │         │*      text_item.py                0.9     2019-05-25 | Add bar items with plain text.              │
    │         │       aesthetic.py                1.0.6   2020-10-25 | Make messages more A E S T H E T I C A L L Y│
    │         │       aformat.py                  0.2     2018-06-21 | Alternate text formatting, useful for relays│
    │         │       alternatetz.py              0.3     2018-11-11 | Add an alternate timezone item.             │
    │         │       amarok2.pl                  0.7     2012-05-08 | Amarok 2 control and now playing script.    │
    │         │       amqp_notify.rb              0.1     2011-01-12 | Send private messages and highlights to an A│
    │         │       announce_url_title.py       19      2021-06-05 | Announce URL title to user or to channel.   │
    │         │       anotify.py                  1.0.2   2020-05-16 | Notifications of private messages, highlight│
    │         │       anti_password.py            1.2.1   2021-03-13 | Prevent a password from being accidentally s│
    │         │       apply_corrections.py        1.3     2018-06-21 | Display corrected text when user sends s/typ│
    │         │       arespond.py                 0.1.1   2020-10-11 | Simple autoresponder.                       │
    │         │       atcomplete.pl               0.001   2016-10-29 | Tab complete nicks when prefixed with "@".  │
    │         │       audacious.pl                0.3     2009-05-03 | Display which song Audacious is currently pl│
    │         │       auth.rb                     0.3     2014-05-30 | Automatically authenticate with NickServ usi│
    │         │       auto_away.py                0.4     2018-11-11 | A simple auto-away script.                  │
    │         │       autoauth.py                 1.3     2021-11-07 | Permits to auto-authenticate when changing n│
    │         │       autobump.py                 0.1.0   2019-06-14 | Bump buffers upon activity.                 │
    │         │       autoconf.py                 0.4     2021-05-11 | Auto save/load changed options in a .weerc f│
    │         │       autoconnect.py              0.3.3   2019-10-06 | Reopen servers and channels opened last time│
    │         │[12:55] [2] [script] 2:scripts                                                                      │
    │         │█                                                                                                   │
    └──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

##### Skript Befehle

- `script`: WeeChat Skriptmanager

    /script  list [-o|-ol|-i|-il]
             search <text>
             show <script>
             load|unload|reload <script> [<script>...]
             autoload|noautoload|toggleautoload <script> [<script>...]
             install|remove|installremove|hold [-q] <script> [<script>...]
             upgrade
             update

              list: gibt alle geladenen Skripten im Buffer aus (unabhängig der Programmiersprache)
                -o: gibt eine Liste der laufenden Skripten im Buffer aus (Ausgabe in englisch)
               -ol: gibt eine Liste der laufenden Skripten im Buffer aus (Ausgabe ist übersetzt)
                -i: eine Liste der laufenden Skripten wird in die Eingabezeile kopiert (um sie dann manuell in einen Buffer zu senden)(Ausgabe in englisch)
               -il: eine Liste der laufenden Skripten wird in die Eingabezeile kopiert (um sie dann manuell in einen Buffer zu senden)(Ausgabe ist übersetzt)
            search: sucht Skripten nach Schlagwörtern, Skriptsprache (python, perl, ...), Dateierweiterung (py, pl, ...) oder beliebigem Text. Das Ergebnis wird im Skripten-Buffer dargestellt
              show: zeigt detailliert Informationen zu einem Skript an
              load: startet Skript(en)
            unload: beendet Skript(en)
            reload: Skript(en) werden neu geladen
          autoload: das Skript wird in das autoload-Verzeichnis eingebunden
        noautoload: das Skript wird aus dem autoload-Verzeichnis entfernt
    toggleautoload: autoload für das Skript umschalten
           install: installiert/aktualisiert Skript(en) (physikalisch, auf dem Datenträger)
            remove: deinstalliert Skript(en) (physikalisch, vom Datenträger)
     installremove: installiert oder deinstalliert Skript(en), abhängig davon welcher Status vorliegt
              hold: halten/freigeben von Skript(en) (ein Skript welches gehalten wird, kann weder aktualisiert noch entfernt werden)
                -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben
           upgrade: aktualisiert alle veralteten, installierten Skripten (sofern eine neue Version verfügbar ist)
            update: aktualisiert den lokalen Cache für die Skripten

    Ohne Angaben von Argumenten öffnet dieser Befehl einen Buffer, in welchem eine Liste der Skripten dargestellt wird.

    Im Skript-Buffer, werden folgende Statusangaben für ein Skript angezeigt:
      * i a H r N
      | | | | | |
      | | | | | obsolete (neue Version verfügbar)
      | | | | Skript wird ausgeführt (geladen)
      | | | gehalten
      | | Skript wird beim Start, von WeeChat, automatisch geladen
      | Skript ist installiert (wird aber nicht ausgeführt)
      beliebtes Skript

    In der Ausgabe von /script list, wird der Status für ein Skript angegeben:
      * ? i a H N
      | | | | | |
      | | | | | obsolete (neue Version verfügbar)
      | | | | gehalten
      | | | Skript wird beim Start, von WeeChat, automatisch geladen
      | | Skript ist installiert (wird aber nicht ausgeführt)
      | unbekanntes Skript (dieses Skript kann nicht heruntergeladen/aktualisiert werden)
      beliebtes Skript

    Tastenbefehle die im Skript-Buffer genutzt werden können:
      alt+i  installiert Skript (physikalisch)
      alt+r  deinstalliert Skript (physikalisch
      alt+l  startet ein Skript (Skript wird ausgeführt)
      alt+L  Skript wird neu gestartet
      alt+u  beendet ein Skript
      alt+A  das Skript wird in das autoload-Verzeichnis eingebunden
      alt+h  Skript wird gehalten bzw. freigegeben
      alt+v  Skript anzeigen

    Befehle die in der Eingabezeile des Skript-Buffers eingegeben werden können:
      i/r/l/L/u/A/h/v  Aktionen die für ein Skript ausgeführt werden können (siehe Tastenbefehle, weiter oben)
      q                schließt den Buffer
      $                Buffer wird aktualisiert
      s:x,y            Buffer wird nach den Vorgaben x und y sortiert (siehe /help script.look.sort)
      s:               die Sortierung des Buffers wird zurückgesetzt (Standardwerte werden genutzt)
      word(s)          Skripten werden gefiltert: sucht nach einem oder mehreren Wörtern in den Skripten (der Beschreibung, in den Schlagwörtern, ...)
      *                Filter wird zurückgesetzt

    Mausbefehle innerhalb des Skripten-Buffer:
      Mausrad            in der Liste scrollen
      linke Maustaste    Skript anwählen
      rechte Maustaste   Skript installieren/entfernen

    Beispiele:
      /script search url
      /script install go.py urlserver.py
      /script remove go.py
      /script hold urlserver.py
      /script reload urlserver
      /script upgrade

##### Script Optionen

Sektionen in Datei script.conf:

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:

- script.color.status_autoloaded

  - Beschreibung: Farbe in der der Status "autoloaded" ("a") dargestellt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- script.color.status_held

  - Beschreibung: Farbe in der der Status "halten" ("H") dargestellt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- script.color.status_installed

  - Beschreibung: Farbe in der der Status "installiert" ("i") dargestellt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightcyan`

- script.color.status_obsolete

  - Beschreibung: Farbe in der der Status "obsolete" ("N") dargestellt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightmagenta`

- script.color.status_popular

  - Beschreibung: Farbe in der der Status "empfohlen" ("*") dargestellt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- script.color.status_running

  - Beschreibung: Farbe in der der Status "laufend" ("r") dargestellt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightgreen`

- script.color.status_unknown

  - Beschreibung: Farbe in der der Status "unbekannt" ("?") dargestellt werden soll

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightred`

- script.color.text

  - Beschreibung: Textfarbe im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- script.color.text_bg

  - Beschreibung: Hintergrundfarbe im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- script.color.text_bg_selected

  - Beschreibung: Hintergrundfarbe

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `red`

- script.color.text_date

  - Beschreibung: Textfarbe für das Datum im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- script.color.text_date_selected

  - Beschreibung: Textfarbe für das Datum, im Skript Buffer, wenn die Zeile angewählt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- script.color.text_delimiters

  - Beschreibung: Textfarbe für das Trennzeichen im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- script.color.text_description

  - Beschreibung: Textfarbe für die Beschreibung im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- script.color.text_description_selected

  - Beschreibung: Textfarbe für die Beschreibung des Skriptes, im Skript Buffer, wenn die Zeile angewählt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- script.color.text_extension

  - Beschreibung: Textfarbe für die Erweiterung im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- script.color.text_extension_selected

  - Beschreibung: Textfarbe für die Dateierweiterung, im Skript Buffer, wenn die Zeile angewählt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- script.color.text_name

  - Beschreibung: Textfarbe für den Namen des Skriptes im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `cyan`

- script.color.text_name_selected

  - Beschreibung: Textfarbe für den Namen des Skriptes, im Skript Buffer, wenn die Zeile angewählt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightcyan`

- script.color.text_selected

  - Beschreibung: Textfarbe für den Auswahlbalken im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- script.color.text_tags

  - Beschreibung: Textfarbe für die Schlagwörter im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `brown`

- script.color.text_tags_selected

  - Beschreibung: Textfarbe für die Schlagwörter, im Skript Buffer, wenn die Zeile angewählt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `yellow`

- script.color.text_version

  - Beschreibung: Textfarbe für die Version im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `magenta`

- script.color.text_version_loaded

  - Beschreibung: Textfarbe für die geladene Version im Skript-Buffer

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `default`

- script.color.text_version_loaded_selected

  - Beschreibung: Textfarbe für die Versionsanzeige des geladenen Skriptes, im Skript Buffer, wenn die Zeile angewählt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `white`

- script.color.text_version_selected

  - Beschreibung: Textfarbe für die Version des Skriptes, im Skript Buffer, wenn die Zeile angewählt wird

  - Typ: Farbe

  - Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "/" für kursiv, "_" für unterstrichen

  - Standardwert: `lightmagenta`

- script.look.columns

  - Beschreibung: Format in welchem die Spalten im Skript-Buffer dargestellt werden sollen. Es können folgende Spaltenbezeichnungen genutzt werden: %a=Autor, %d=Beschreibung, %D=Skript hinzugefügt, %e=Dateierweiterung, %l=Programmiersprache, %L=Lizenz, %n=Skriptname, mit Dateierweiterung, %N=Skriptname, %r=Voraussetzungen, %s=Status, %t=Schlagwörter, %u=Datum der letzten Überarbeitung, %v=Version, %V=installierte Version, %w=min_WeeChat_Version, %W=max_WeeChat_Version)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%s %n %V %v %u | %d | %t"`

- script.look.diff_color

  - Beschreibung: Unterschiede in den zwei Skripten werden farblich hervorgehoben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- script.look.diff_command

  - Beschreibung: Befehl der genutzt werden soll um die Unterschiede zwischen dem installierten Skript und dem Skript, welches im offiziellem Bereich der Homepage bereitgestellt wird, darzustellen ("auto" = automatische Erkennung des Diff-Befehls (git oder diff), leerer Wert = Diff ist deaktiviert, externer Befehl = Name des Befehls, zum Beispiel "diff")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"auto"`

- script.look.display_source

  - Beschreibung: Zeigt den Quellcode des Skriptes, mit weiteren Informationen zu dem Skript, im Buffer an (Skript wird dazu temporär in eine Datei gesichert)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- script.look.quiet_actions

  - Beschreibung: diese Einstellung stellt einen stummen Modus für den Skripten-Buffer zu Verfügung: Es werden keine Nachrichten im Core-Buffer ausgegeben, wenn Skripten installiert/entfernt/gestartet/beendet werden (lediglich Fehler werden ausgegeben)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- script.look.sort

  - Beschreibung: Standardsortierung für Skripten im Skript Buffer: durch Kommata getrennte Liste von Bezeichnern: a=Autor, A=automatisch geladen, d=Datum wann das Skript hinzugefügt wurde, e=Dateierweiterung, i=installiert, l=Programmiersprache, n=Skriptname, o=obsolete, p=empfohlen, r=Skript wird ausgeführt, u=Datum der letzten Überarbeitung; mit Hilfe des Zeichens "-", vor dem entsprechenden Bezeichner, kann die Darstellung umgekehrt werden. Beispiel: "i,u": installierte Skripten werden zuerst dargestellt, sortiert nach dem Datum ihrer letzten Überarbeitung

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"i,p,n"`

- script.look.translate_description

  - Beschreibung: für die Beschreibung der Skripten wird die Muttersprache verwendet (sollte keine Übersetzung in der eigenen Sprache verfügbar sein, wird auf die englische Beschreibung zurückgegriffen)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- script.look.use_keys

  - Beschreibung: Um Tastenkurzbefehle im Skript-Buffer direkt nutzen zu können (zum Beispiel: alt+i = installieren, alt+r = entfernen, ...), muss diese Einstellung aktiviert werden. Andernfalls können Aktionen nur über die Eingabezeile durchgeführt werden: i,r...

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- script.scripts.autoload

  - Beschreibung: autoload Skripten installiert (erstellt einen Link im "autoload" Verzeichnis zum Skript im übergeordneten Verzeichnis)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- script.scripts.cache_expire

  - Beschreibung: Ablaufdatum des lokalen Caches, in Minuten (-1 = ohne Ablaufdatum, 0 = umgehend)

  - Typ: integer

  - Werte: -1 .. 525600

  - Standardwert: `1440`

- script.scripts.download_enabled

  - Beschreibung: Aktivieren Sie den Download von Dateien aus dem Skript-Repository, wenn der Befehl /script verwendet wird (Liste der Skripten und Skripten selbst). Die Liste der Skripten wird von der in der Option script.scripts.url angegebenen URL heruntergeladen. WeeChat lädt manchmal die Liste der Skripten erneut herunter, wenn Sie den Befehl /script verwenden, auch wenn Sie kein Skript installieren

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- script.scripts.download_timeout

  - Beschreibung: Zeitüberschreitung (in Sekunden) beim herunterladen von Skripten und der Skriptliste

  - Typ: integer

  - Werte: 1 .. 3600

  - Standardwert: `30`

- script.scripts.hold

  - Beschreibung: Skripten welche "gehalten" werden sollen. Dies ist eine durch Kommata getrennte Liste von Skripten die weder aktualisiert noch entfernt werden können. Zum Beispiel: "go.py, urlserver.py"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- script.scripts.path

  - Beschreibung: lokales Cache-Verzeichnis für Skripten (Pfad ist evaluiert, siehe Funktion string_eval_path_home in der Plugin-API-Referenz)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${weechat_cache_dir}/script"`

- script.scripts.url

  - Beschreibung: URL für Datei mit der Auflistung aller Skripten

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"https://weechat.org/files/plugins.xml.gz"`

#### 15.2.2. Skripterweiterung

##### Python Befehle

- `python`: auflisten/installieren/beenden von Skripten

    /python  list|listfull [<name>]
             load [-q] <filename>
             autoload
             reload|unload [-q] [<name>]
             eval [-o|-oc] <code>
             version

        list: installierte Skripten werden aufgelistet
    listfull: detaillierte Auflistung aller installierten Skripten
        load: installiert ein Skript
    autoload: startet automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut gestartet (wird kein Name angegeben, dann werden alle Skripten beendet und erneut gestartet)
      unload: beendet ein Skript (wird kein Name angegeben, dann werden alle Skripten beendet)
    filename: Skript (Datei) welches geladen werden soll
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
        eval: evaluiert einen Quelltext und das Ergebnis wird im aktuellen Buffer ausgegeben
          -o: evaluierter Ergebnis wird im Buffer ausgegeben ohne das Befehle ausgeführt werden
         -oc: evaluierter Ergebnis wird im Buffer ausgegeben und Befehle werden ausgeführt
        code: Quelltext welcher evaluiert werden soll
     version: zeigt die Version des verwendeten Interpreters an

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

##### Perl Befehle

- `perl`: auflisten/installieren/beenden von Skripten

    /perl  list|listfull [<name>]
           load [-q] <filename>
           autoload
           reload|unload [-q] [<name>]
           eval [-o|-oc] <code>
           version

        list: installierte Skripten werden aufgelistet
    listfull: detaillierte Auflistung aller installierten Skripten
        load: installiert ein Skript
    autoload: startet automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut gestartet (wird kein Name angegeben, dann werden alle Skripten beendet und erneut gestartet)
      unload: beendet ein Skript (wird kein Name angegeben, dann werden alle Skripten beendet)
    filename: Skript (Datei) welches geladen werden soll
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
        eval: evaluiert einen Quelltext und das Ergebnis wird im aktuellen Buffer ausgegeben
          -o: evaluierter Ergebnis wird im Buffer ausgegeben ohne das Befehle ausgeführt werden
         -oc: evaluierter Ergebnis wird im Buffer ausgegeben und Befehle werden ausgeführt
        code: Quelltext welcher evaluiert werden soll
     version: zeigt die Version des verwendeten Interpreters an

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

##### Ruby Befehle

- `ruby`: auflisten/installieren/beenden von Skripten

    /ruby  list|listfull [<name>]
           load [-q] <filename>
           autoload
           reload|unload [-q] [<name>]
           eval [-o|-oc] <code>
           version

        list: installierte Skripten werden aufgelistet
    listfull: detaillierte Auflistung aller installierten Skripten
        load: installiert ein Skript
    autoload: startet automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut gestartet (wird kein Name angegeben, dann werden alle Skripten beendet und erneut gestartet)
      unload: beendet ein Skript (wird kein Name angegeben, dann werden alle Skripten beendet)
    filename: Skript (Datei) welches geladen werden soll
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
        eval: evaluiert einen Quelltext und das Ergebnis wird im aktuellen Buffer ausgegeben
          -o: evaluierter Ergebnis wird im Buffer ausgegeben ohne das Befehle ausgeführt werden
         -oc: evaluierter Ergebnis wird im Buffer ausgegeben und Befehle werden ausgeführt
        code: Quelltext welcher evaluiert werden soll
     version: zeigt die Version des verwendeten Interpreters an

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

##### Lua Befehle

- `lua`: auflisten/installieren/beenden von Skripten

    /lua  list|listfull [<name>]
          load [-q] <filename>
          autoload
          reload|unload [-q] [<name>]
          eval [-o|-oc] <code>
          version

        list: installierte Skripten werden aufgelistet
    listfull: detaillierte Auflistung aller installierten Skripten
        load: installiert ein Skript
    autoload: startet automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut gestartet (wird kein Name angegeben, dann werden alle Skripten beendet und erneut gestartet)
      unload: beendet ein Skript (wird kein Name angegeben, dann werden alle Skripten beendet)
    filename: Skript (Datei) welches geladen werden soll
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
        eval: evaluiert einen Quelltext und das Ergebnis wird im aktuellen Buffer ausgegeben
          -o: evaluierter Ergebnis wird im Buffer ausgegeben ohne das Befehle ausgeführt werden
         -oc: evaluierter Ergebnis wird im Buffer ausgegeben und Befehle werden ausgeführt
        code: Quelltext welcher evaluiert werden soll
     version: zeigt die Version des verwendeten Interpreters an

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

##### Tcl Befehle

- `tcl`: auflisten/installieren/beenden von Skripten

    /tcl  list|listfull [<name>]
          load [-q] <filename>
          autoload
          reload|unload [-q] [<name>]
          eval [-o|-oc] <code>
          version

        list: installierte Skripten werden aufgelistet
    listfull: detaillierte Auflistung aller installierten Skripten
        load: installiert ein Skript
    autoload: startet automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut gestartet (wird kein Name angegeben, dann werden alle Skripten beendet und erneut gestartet)
      unload: beendet ein Skript (wird kein Name angegeben, dann werden alle Skripten beendet)
    filename: Skript (Datei) welches geladen werden soll
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
        eval: evaluiert einen Quelltext und das Ergebnis wird im aktuellen Buffer ausgegeben
          -o: evaluierter Ergebnis wird im Buffer ausgegeben ohne das Befehle ausgeführt werden
         -oc: evaluierter Ergebnis wird im Buffer ausgegeben und Befehle werden ausgeführt
        code: Quelltext welcher evaluiert werden soll
     version: zeigt die Version des verwendeten Interpreters an

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

##### Guile Befehle

- `guile`: auflisten/installieren/beenden von Skripten

    /guile  list|listfull [<name>]
            load [-q] <filename>
            autoload
            reload|unload [-q] [<name>]
            eval [-o|-oc] <code>
            version

        list: installierte Skripten werden aufgelistet
    listfull: detaillierte Auflistung aller installierten Skripten
        load: installiert ein Skript
    autoload: startet automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut gestartet (wird kein Name angegeben, dann werden alle Skripten beendet und erneut gestartet)
      unload: beendet ein Skript (wird kein Name angegeben, dann werden alle Skripten beendet)
    filename: Skript (Datei) welches geladen werden soll
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
        eval: evaluiert einen Quelltext und das Ergebnis wird im aktuellen Buffer ausgegeben
          -o: evaluierter Ergebnis wird im Buffer ausgegeben ohne das Befehle ausgeführt werden
         -oc: evaluierter Ergebnis wird im Buffer ausgegeben und Befehle werden ausgeführt
        code: Quelltext welcher evaluiert werden soll
     version: zeigt die Version des verwendeten Interpreters an

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

##### JavaScript Befehle

- `javascript`: auflisten/installieren/beenden von Skripten

    /javascript  list|listfull [<name>]
                 load [-q] <filename>
                 autoload
                 reload|unload [-q] [<name>]
                 eval [-o|-oc] <code>
                 version

        list: installierte Skripten werden aufgelistet
    listfull: detaillierte Auflistung aller installierten Skripten
        load: installiert ein Skript
    autoload: startet automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut gestartet (wird kein Name angegeben, dann werden alle Skripten beendet und erneut gestartet)
      unload: beendet ein Skript (wird kein Name angegeben, dann werden alle Skripten beendet)
    filename: Skript (Datei) welches geladen werden soll
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
        eval: evaluiert einen Quelltext und das Ergebnis wird im aktuellen Buffer ausgegeben
          -o: evaluierter Ergebnis wird im Buffer ausgegeben ohne das Befehle ausgeführt werden
         -oc: evaluierter Ergebnis wird im Buffer ausgegeben und Befehle werden ausgeführt
        code: Quelltext welcher evaluiert werden soll
     version: zeigt die Version des verwendeten Interpreters an

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

##### PHP Befehle

- `php`: auflisten/installieren/beenden von Skripten

    /php  list|listfull [<name>]
          load [-q] <filename>
          autoload
          reload|unload [-q] [<name>]
          eval [-o|-oc] <code>
          version

        list: installierte Skripten werden aufgelistet
    listfull: detaillierte Auflistung aller installierten Skripten
        load: installiert ein Skript
    autoload: startet automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut gestartet (wird kein Name angegeben, dann werden alle Skripten beendet und erneut gestartet)
      unload: beendet ein Skript (wird kein Name angegeben, dann werden alle Skripten beendet)
    filename: Skript (Datei) welches geladen werden soll
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
        eval: evaluiert einen Quelltext und das Ergebnis wird im aktuellen Buffer ausgegeben
          -o: evaluierter Ergebnis wird im Buffer ausgegeben ohne das Befehle ausgeführt werden
         -oc: evaluierter Ergebnis wird im Buffer ausgegeben und Befehle werden ausgeführt
        code: Quelltext welcher evaluiert werden soll
     version: zeigt die Version des verwendeten Interpreters an

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

##### Python Optionen

Sektionen in Datei python.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set python.look.*` | Erscheinungsbild.

Optionen:

- python.look.check_license

  - Beschreibung: Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- python.look.eval_keep_context

  - Beschreibung: behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

##### Perl Optionen

Sektionen in Datei perl.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set perl.look.*` | Erscheinungsbild.

Optionen:

- perl.look.check_license

  - Beschreibung: Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- perl.look.eval_keep_context

  - Beschreibung: behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

##### Ruby Optionen

Sektionen in Datei ruby.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set ruby.look.*` | Erscheinungsbild.

Optionen:

- ruby.look.check_license

  - Beschreibung: Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- ruby.look.eval_keep_context

  - Beschreibung: behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

##### Lua Optionen

Sektionen in Datei lua.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set lua.look.*` | Erscheinungsbild.

Optionen:

- lua.look.check_license

  - Beschreibung: Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- lua.look.eval_keep_context

  - Beschreibung: behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

##### Tcl Optionen

Sektionen in Datei tcl.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set tcl.look.*` | Erscheinungsbild.

Optionen:

- tcl.look.check_license

  - Beschreibung: Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- tcl.look.eval_keep_context

  - Beschreibung: behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

##### Guile Optionen

Sektionen in Datei guile.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set guile.look.*` | Erscheinungsbild.

Optionen:

- guile.look.check_license

  - Beschreibung: Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- guile.look.eval_keep_context

  - Beschreibung: behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

##### Javascript Optionen

Sektionen in Datei javascript.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set javascript.look.*` | Erscheinungsbild.

Optionen:

- javascript.look.check_license

  - Beschreibung: Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- javascript.look.eval_keep_context

  - Beschreibung: behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

##### PHP Optionen

Sektionen in Datei php.conf:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`look` | `/set php.look.*` | Erscheinungsbild.

Optionen:

- php.look.check_license

  - Beschreibung: Überprüft die Lizenz von Skripten, wenn sie geladen werden: Sollte die Lizenz abweichend von der Erweiterungslizenz sein, wird eine Warnung ausgegeben

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- php.look.eval_keep_context

  - Beschreibung: behält den Inhalt zwischen zwei Aufrufen bei Quellcode Evaluierung (Option "eval" des Skript-Befehls oder Info "%s_eval"); ein Hintergrundskript wird für die Evaluierung verwendet; wird diese Option deaktiviert, dann wird das Hintergrundskript nach jeder Evaluierung entfernt: das bedeutet weniger Speicherbedarf, ist aber langsamer

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

## 16. 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 Channel (Entwickler vertreten):

  - #weechat (englisch)

  - #weechat-fr (französisch)

- kein offizieller Channel:

  - #weechat-de (deutsch)

  - #weechat-fi (finnisch)

Weitere Möglichkeiten, um mit den Entwicklern in Kontakt zu treten, siehe: https://weechat.org/about/support