# WeeChat Benutzerhandbuch

Sébastien Helleu
flashcode@flashtux.org
version 1.9.1

Übersetzer:

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

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

- Fedora Core: `dnf 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 andere Distributionen schauen Sie bitte in die jeweilige Anleitung, wie man Pakete installiert.

### 2.2. Quellpakete

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

Note | Unter OS X kann Homebrew verwendet werden: `brew install weechat --with-python --with-perl` (für Hilfe: `brew info weechat`).

#### 2.2.1. Abhängigkeiten

folgende Tabelle beschreibt, welche Pakete zwingend notwendig sind um WeeChat zu kompilieren und welche Pakete optional genutzt werden können.

Paket (1) | Version | benötigt | Funktion
--- | --- | --- | ---
C compiler (gcc, clang, …​) |  | ja | zum Erstellen der Binärdatei.
C++ compiler |  |  | zum Erstellen der Binärdatei und um Test auszuführen, javascript Erweiterung.
cmake |  | ja | zum kompilieren (autotools ist möglich. cmake wird aber empfohlen).
pkg-config |  | ja | entdeckt installierte Bibliotheken.
libncursesw5-dev (2) |  | ja | Ncurses Oberfläche.
libcurl4-gnutls-dev |  | ja | URL Transfer.
zlib1g-dev |  | ja | Kompression für Pakete, die mittels Relay- (WeeChat Protokoll), Script-Erweiterung übertragen werden.
libgcrypt20-dev |  | ja | Geschützte Daten, IRC SASL Authentifikation (DH-BLOWFISH/DH-AES), Skript-Erweiterung.
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).
gettext |  |  | Internationalisierung (Übersetzung der Mitteilungen; Hauptsprache ist englisch).
ca-certificates |  |  | Zertifikate für SSL Verbindungen.
libaspell-dev ∥ libenchant-dev |  |  | Aspell Erweiterung.
python-dev | ≥ 2.5 (4) |  | Python Erweiterung.
libperl-dev |  |  | Perl Erweiterung.
ruby-2.3, ruby2.3-dev | ≥ 1.8 |  | Ruby Erweiterung.
liblua5.3-dev |  |  | Lua Erweiterung.
tcl-dev | ≥ 8.5 |  | Tcl Erweiterung.
guile-2.0-dev | ≥ 2.0 |  | Guile (scheme) Erweiterung.
libv8-dev | ≤ 3.24.3 |  | Javascript Erweiterung.
asciidoctor | ≥ 1.5.4 |  | zum Erstellen der man page und der Dokumentation.
libcpputest-dev | ≥ 3.4 |  | zum Erstellen und um Test auszuführen.

Note

(1) Paketnamen wurden von der Debian GNU/Linux Distribution übernommen. Versionen und Paketnamen können für andere Distributionen abweichend sein.
(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.
(4) Die empfohlene Version ist 2.7 (alle Skripten laufen mit der Version 2.7, aber nicht mit Version ≤ 2.6 oder ≥ 3.0).

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
    % make install    (als root)

- Installation in ein benutzerdefiniertes Verzeichnis:

    $ 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 | `~/.weechat` | Standard-Verzeichnis in welchem die Daten liegen.
`CA_FILE` | Datei | `/etc/ssl/certs/ca-certificates.crt` | Datei enthält die Zertifizierungen. This is the default value of option weechat.network.gnutls_ca_file.
`ENABLE_ALIAS` | `ON`, `OFF` | `ON` | kompiliert Alias Erweiterung.
`ENABLE_ASPELL` | `ON`, `OFF` | `ON` | kompiliert Aspell Erweiterung.
`ENABLE_BUFLIST` | `ON`, `OFF` | `ON` | kompiliert Buflist Erweiterung.
`ENABLE_CHARSET` | `ON`, `OFF` | `ON` | kompiliert Charset Erweiterung.
`ENABLE_MAN` | `ON`, `OFF` | `OFF` | kompiliert man page.
`ENABLE_DOC` | `ON`, `OFF` | `OFF` | kompiliert Dokumentation (dies ist sehr zeitintensiv und wird nur empfohlen falls Binärpakete erstellt werden, die die Dokumentation beinhalten sollen, oder man die Dokumentation nicht auf der Homepage abrufen kann).
`ENABLE_ENCHANT` | `ON`, `OFF` | `OFF` | kompiliert Aspell plugin mittels Enchant.
`ENABLE_EXEC` | `ON`, `OFF` | `ON` | kompiliert Exec Erweiterung.
`ENABLE_FIFO` | `ON`, `OFF` | `ON` | kompiliert Fifo Erweiterung.
`ENABLE_GNUTLS` | `ON`, `OFF` | `ON` | kompiliert Gnutls (für SSL).
`ENABLE_GUILE` | `ON`, `OFF` | `ON` | kompiliert Guile Erweiterung (Scheme).
`ENABLE_IRC` | `ON`, `OFF` | `ON` | kompiliert IRC Erweiterung.
`ENABLE_JAVASCRIPT` | `ON`, `OFF` | `ON` | 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_PYTHON` | `ON`, `OFF` | `ON` | kompiliert Python Erweiterung.
`ENABLE_PYTHON3` | `ON`, `OFF` | `OFF` | kompiliert Python Erweiterung mittels Python 3 (dies wird NICHT empfohlen, da viele Skripten nicht kompatible mit Python 3 sind).
`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).
`ENABLE_TCL` | `ON`, `OFF` | `ON` | kompiliert Tcl Erweiterung.
`ENABLE_TRIGGER` | `ON`, `OFF` | `ON` | kompiliert Trigger Erweiterung.
`ENABLE_XFER` | `ON`, `OFF` | `ON` | kompiliert Xfer Erweiterung.
`ENABLE_TESTS` | `ON`, `OFF` | `OFF` | kompiliert Testumgebung.

Weitere Optionen können mit folgendem Befehl angezeigt werden:

    $ cmake -LA

oder mittels der Curses-Oberfläche:

    $ ccmake ..

#### 2.2.3. Kompilieren mit autotools

Warning | 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
    % make install    (als root)

- Installation in ein benutzerdefiniertes Verzeichnis:

    $ ./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.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 WeeChat mit Debug-Information (oder installieren Sie das Binärpaket mit Debug-Information)

- aktivieren Sie core Dateien auf Ihrem System

- installieren Sie gdb

#### 2.4.1. Debug info

Bei der Kompilierung mit cmake muss folgende Option gesetzt werden:

    $ cmake .. -DCMAKE_BUILD_TYPE=Debug

Bei der Kompilierung mit autotools ist debug standardmäßig aktiviert (`--with-debug=1`).

Wird ein Binärpaket genutzt dann muss zusätzlich das Paket weechat-dbg installiert werden.

#### 2.4.2. 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.3. Rückverfolgung mit gdb

Falls WeeChat abstürzen sollte, dann wird auf Ihrem System eine core bzw. core.12345 Datei (12345 ist die Prozess-Id) erzeugt. Diese Datei wird in dem Verzeichnis erzeugt aus welchem Sie WeeChat gestartet haben (dies ist nicht das Verzeichnis in welchem sich WeeChat befindet!).

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

    gdb /usr/bin/weechat /home/xxx/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 und beschreiben was den Fehler ausgelöst hat.

Danke für Ihre Mithilfe!

#### 2.4.4. Eine laufende Session von WeeChat debuggen

Um eine laufende Session 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. Nutzung

### 3.1. WeeChat starten

Befehlszeile:

-a, --no-connect

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

-c, --colors

  zeigt die Standardfarben im Terminal an.

-d, --dir <path>

  legt den Konfigurationsordner für WeeChat fest in welchem die Erweiterungen, Skripten, Protokolldateien etc.pp. gesichert werden (Voreinstellung: "~/.weechat"). Sollte das Verzeichnis nicht existieren wird es beim Start angelegt. Wird diese Option nicht genutzt, wird die Umgebungsvariable WEECHAT_HOME genutzt (sofern diese vorhanden ist).

-h, --help

  zeigt einen Hilfstext an.

-l, --license

  zeigt die Lizenz von WeeChat an.

-p, --no-plugin

  unterbindet das Laden der Erweiterungen beim Programmstart.

-r, --run-command <command>

  führt einen oder mehrere Befehle aus, nachdem WeeChat gestartet wurde (mehrere Befehle müssen durch Kommata voneinander getrennt 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.

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

    $ weechat

Wird WeeChat zum ersten mal gestartet wird eine Konfigurationsdatei mit Standardparametern erstellt. Die Konfigurationsdatei heißt: ~/.weechat/weechat.conf.

Die Einstellungen für WeeChat können an die eigenen Bedürfnisse angepasst werden. Dazu sollten Veränderungen an der Konfigurationsdatei mit dem internen Befehl `/set` durchführt werden. (siehe WeeChat Befehle).

### 3.2. Dateien und Verzeichnisse

WeeChat schreibt standardmäßig seine Konfiguration und andere Daten in folgendes Verzeichnis: `~/.weechat`

Verzeichnisse:

Pfad/Datei | Beschreibung
--- | ---
`~/.weechat/` | WeeChat Heimatverzeichnis (kann angepasst werden, siehe Running WeeChat).
`logs/` | Logdateien (eine Datei pro Buffer).
`python/` | Python-Skripten.
`autoload/` | Python-Skripten die beim Start automatisch ausgeführt werden (1).
`perl/` | Perl-Skripten.
`autoload/` | Perl-Skripten die beim Start automatisch ausgeführt werden (1).
`ruby/` | Ruby-Skripten.
`autoload/` | Ruby-Skripten die beim Start automatisch ausgeführt werden (1).
`lua/` | Lua-Skripten.
`autoload/` | Lua-Skripten die beim Start automatisch ausgeführt werden (1).
`tcl/` | Tcl-Skripten.
`autoload/` | Tcl-Skripten die beim Start automatisch ausgeführt werden (1).
`guile/` | Guile-Skripten.
`autoload/` | Guile-Skripten die beim Start automatisch ausgeführt werden (1).
`javascript/` | Javascript-Skripten.
`autoload/` | Javascript-Skripten die beim Start automatisch ausgeführt werden (1).

Note | (1) Das Verzeichnis besteht meistens aus symbolischen Links welche auf das eigentliche Skript zeigen.

Folgende Dateien findet man im 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.
`aspell.conf` | Konfiguration für aspell-Erweiterung | Nein.
`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.
`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).
`logger.conf` | Konfiguration für logger-Erweiterung | Nein.
`relay.conf` | Konfiguration für relay-Erweiterung | Nein.
`script.conf` | Konfiguration für script-Erweiterung | Nein.
`trigger.conf` | Konfiguration für trigger-Erweiterung | möglich, hängt von den Triggern ab.
`xfer.conf` | Konfiguration für xfer-Erweiterung | Nein.
`weechat.log` | WeeChat Logdateien | Nein.

Important

Es wird nicht empfohlen die Konfigurationsdateien manuell zu editieren, da WeeChat diese Dateien zu jeder Zeit überschreiben kann (zum Beispiel: /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.

### 3.3. Screen layout

Beispiel des WeeChat-Terminals:

     ▼ Bar "title"
    ┌───────────────────────────────────────────────────────────────────────────┐
    │Welcome to #test, this is a test channel                                   │
    │12:52:27   --> | Flashy (flashcode@weechat.org) has joined #test   │@Flashy│
    │12:52:27    -- | Nicks #test: [@Flashy @joe +weebot peter]         │@joe   │
    │12:52:27    -- | Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│
    │12:52:27    -- | Channel created on Tue Jan 27 06:30:17 2009       │peter  │
    │12:54:15 peter | hey!                                              │       │
    │12:55:01  @joe | hello                                             │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │[12:55] [6] [irc/freenode] 3:#test(+n){4}* [H: 4:#abc(2,5), 6]             │
    │[@Flashy(i)] hi peter!█                                                    │
    └───────────────────────────────────────────────────────────────────────────┘
     ▲ Bars "status" und "input"                               Bar "nicklist" ▲

Der Bildschirm setzt sich aus folgenden Bereichen zusammen:

- 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. Standard-Bars sind:

  - 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 status-Bar besitzt als Standardeinträge:

Item | Beispiel | Beschreibung
--- | --- | ---
time | `[12:55]` | Uhrzeit.
buffer_last_number | `[6]` | Nummer des letzten Buffers.
buffer_plugin | `[irc/freenode]` | Erweiterung des aktuellen Buffers (IRC Erweiterung setzt den IRC Servername für den Buffer).
buffer_number | `3` | Aktuelle Nummer des Buffers.
buffer_name | `#test` | Name des aktuellen Buffers.
buffer_modes | `+n` | IRC Channel-Modi.
buffer_nicklist_count | `{4}` | Anzahl der Nicks in Benutzerliste.
buffer_zoom | ! | `!` bedeutet, dass ein zusammengefügter Buffer gezoomed (nur dieser Buffer wird angezeigt) wird.
buffer_filter | `*` | Filteranzeige: `*` bedeutet das Zeilen gefiltert (unterdrückt) wurden. 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: 4:#abc(2,5), 6]` | 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 #6).
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 freenode, 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.

andere Items die man nutzen kann (die aber nicht standardmäßig in einer Bar aktiviert sind):

Item | Beispiel | Beschreibung
--- | --- | ---
aspell_dict | `de,en` | zeigt an welche Wörterbücher für die Rechtschreibung im aktuellen Buffer genutzt werden.
aspell_suggest | `Glück,Glocke,Block` | Vorschläge für ein falsch geschriebenes Wort.
buffer_count | `10` | absolute Anzahl an geöffneten Buffern.
buffer_short_name | `#test` | Kurzname des aktuellen Buffers.
irc_channel | `#test` | aktueller IRC Channelname.
irc_nick_modes | `@` | IRC Modi für den eigenen Nick.
mouse_status | `M` | Status der Maus (keine Anzeige, falls Maus deaktiviert).
window_number | `2` | Nummer des aktuellen Fensters.

### 3.4. Befehlszeile

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

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

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

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

Note | 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 an alle!" ausgegeben. Dabei wird "Hallo" in Fettschrift und hellblau und "an alle" rot und unterstrichen dargestellt.

    ^Cc12^CbHallo ^Cb^Cc04^C_an alle^C_^Cc!

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

### 3.5. Farben

WeeChat kann bis zu 256 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 | 256
"rxvt-256color", "xterm-256color", …​ | 256 | 256
"screen" | 8 | 64
"screen-256color" | 256 | 256
"tmux" | 8 | 64
"tmux-256color" | 256 | 256

Mittels `weechat --colors` oder dem internen WeeChat-Befehl `/color` kann man sich die Einschränkungen für die jeweilige Umgebungsvariable anzeigen lassen.

Folgende Werte sind für die TERM-Umgebungsvariable zu empfehlen, sofern man 256 Farben nutzen möchte:

- falls screen genutzt wird: screen-256color

- für tmux: screen-256color oder tmux-256color

- ausserhalb screen/tmux: xterm-256color, rxvt-256color, putty-256color, …​

Note | Es sollte das Paket "ncurses-term" installiert werden um die Werte der TERM Variable nutzen zu können.

Sollte screen genutzt werden, fügt man folgende Zeile an das Ende der Datei ~/.screenrc:

    term screen-256color

Sollte die Umgebungsvariable TERM falsch gesetzt worden sein und WeeChat wird derweil schon ausgeführt, kann die Variable mit folgenden zwei Befehlen geändert werden:

    /set env TERM screen-256color
    /upgrade

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

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

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

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

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

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.

Beispiele für eine horizontal Fensteraufteilung (`/window splith`):

                              ▼ Fenster #2 (Buffer #4)
    ┌───────────────────────────────────────────────────────────────────────────┐
    │Welcome to #abc                                                            │
    │12:55:12     Max | hi                                              │@Flashy│
    │12:55:20 @Flashy | hi Max!                                         │Max    │
    │12:55:32     Max | how are you?                                    │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │[12:55] [6] [irc/freenode] 4:#abc(+n){2}                                   │
    │[@Flashy]                                                                  │
    │───────────────────────────────────────────────────────────────────────────│
    │Welcome to #test                                                           │
    │12:54:15 peter | hey!                                              │@Flashy│
    │12:55:01  @joe | hello                                             │@joe   │
    │                                                                   │+weebot│
    │                                                                   │peter  │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │[12:55] [6] [irc/freenode] 3:#test(+n){4}                                  │
    │[@Flashy] hi peter!█                                                       │
    └───────────────────────────────────────────────────────────────────────────┘
                              ▲ Fenster #1 (Buffer #3)

Beispiele für eine vertikale Fensteraufteilung (`/window splitv`):

    ┌───────────────────────────────────────────────────────────────────────────┐
    │Welcome to #test                     │Welcome to #abc                      │
    │12:54:15 peter | hey!        │@Flashy│12:55:12     Max | hi        │@Flashy│
    │12:55:01  @joe | hello       │@joe   │12:55:20 @Flashy | hi Max!   │Max    │
    │                             │+weebot│                             │       │
    │                             │peter  │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │[12:55] [irc/oftc] 3:#test(+n){4}    │[12:55] [irc/oftc] 4:#abc(+n){2}     │
    │[@Flashy] hi peter!█                 │[@Flashy]                            │
    └───────────────────────────────────────────────────────────────────────────┘
          ▲ Fenster #1 (Buffer #3)              ▲ Fenster #2 (Buffer #4)

Beispiele für eine vertikale und horizontale Fensteraufteilung:

                                                ▼ Fenster #3 (Buffer #5)
    ┌───────────────────────────────────────────────────────────────────────────┐
    │Welcome to #test                     │Welcome to #def                      │
    │12:54:15 peter | hey!        │@Flashy│12:55:42 @Flashy | hi        │@Flashy│
    │12:55:01  @joe | hello       │@joe   │12:55:56    alex | hi Flashy │alex   │
    │                             │+weebot│                             │       │
    │                             │peter  │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │[12:55] [irc/oftc] 5:#def(+n){2}     │
    │                             │       │[@Flashy]                            │
    │                             │       │─────────────────────────────────────│
    │                             │       │Welcome to #abc                      │
    │                             │       │12:55:12     Max | hi        │@Flashy│
    │                             │       │12:55:20 @Flashy | hi Max!   │Max    │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │                             │       │                             │       │
    │[12:55] [irc/oftc] 3:#test(+n){4}    │[12:55] [irc/oftc] 4:#abc(+n){2}     │
    │[@Flashy] hi peter!█                 │[@Flashy]                            │
    └───────────────────────────────────────────────────────────────────────────┘
          ▲ Fenster #1 (Buffer #3)              ▲ Fenster #2 (Buffer #4)

### 3.7. Zeilen in Buffern

#### 3.7.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_*).

#### 3.7.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` | Buffer welche die Zeile enthält wird nicht zur Hotlist hinzufügt.
`notify_message` | Buffer welche die Zeile enthält wird mit der Stufe "message" zur Hotlist hinzugefügt.
`notify_private` | Buffer welche die Zeile enthält wird mit der Stufe "private" zur Hotlist hinzugefügt.
`notify_highlight` | Buffer welche die Zeile enthält wird mit der Stufe "highlight" zur Hotlist hinzugefügt.
`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.

### 3.8. 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 für diese Bar.

Aufzählung von Bar-Optionen:

Option | Wert | Beschreibung
--- | --- | ---

`type`

`root`, `window`

Eine Bar, vom Typ `root`, kann nur einmal, außerhalb von Fenstern, auf dem Bildschirm dargestellt werden. Standardmäßig existiert keine `root` Bar. Eine solche Bar, mit Namen buffers, wird zum Beispiel durch das Skript buffers.pl eingerichtet in welcher alle geöffneten Buffer aufgeführt werden.
Eine Bar, vom Typ `window`, wird in jedem einzelnen Fenster dargestellt, beispielsweise wenn man das Fenster teilt (mit `/window splith` oder `/window splitv`). Die vier standardmäßigen Bars (title, status, input, 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).

#### 3.8.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/freenode.#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"

#### 3.8.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/freenode] 3:#test(+n){24}                             │
    │[@carl] █                                                              │
    └───────────────────────────────────────────────────────────────────────┘
                                         filling_left_right = vertical ▲

    ┌───────────────────────────────────────────────────────────────────────┐
    │Welcome to #test, this is a test channel                               │
    │12:54:15 peter | hey!                                │@carl     lee    │
    │12:55:01  +Max | hello                               │@jessika  louise │
    │                                                     │@maddy    mario  │
    │                                                     │%Diego    mark   │
    │                                                     │%Melody   peter  │
    │                                                     │+Max      Rachel │
    │                                                     │ celia    richard│
    │                                                     │ Eva      sheryl │
    │                                                     │ freddy   Vince  │
    │                                                     │ Harold^  warren │
    │                                                     │ henry4   zack   │
    │                                                     │ jimmy17         │
    │                                                     │ jodie           │
    │[12:55] [6] [irc/freenode] 3:#test(+n){24}                             │
    │[@carl] █                                                              │
    └───────────────────────────────────────────────────────────────────────┘
                                 filling_left_right = columns_vertical ▲

    ┌───────────────────────────────────────────────────────────────────────┐
    │@carl    %Diego    celia    Harold^  jodie    mario    Rachel   Vince  │
    │@jessika %Melody   Eva      henry4   lee      mark     richard  warren │
    │@maddy   +Max      freddy   jimmy17  louise   peter    sheryl   zack   │
    │───────────────────────────────────────────────────────────────────────│
    │                                                                       │
            filling_top_bottom = columns_vertical ▲

    ┌───────────────────────────────────────────────────────────────────────┐
    │@carl    @jessika @maddy   %Diego   %Melody  +Max      celia    Eva    │
    │ freddy   Harold^  henry4   jimmy17  jodie    lee      louise   mario  │
    │ mark     peter    Rachel   richard  sheryl   Vince    warren   zack   │
    │───────────────────────────────────────────────────────────────────────│
    │                                                                       │
          filling_top_bottom = columns_horizontal ▲

#### 3.8.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 das inaktive 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 wie man die Bar-Nicklist in allen Buffer, die eine Nicklist besitzen, darstellt, aber nur wenn das Fenster eine Mindestbreite von > 100 Pixeln aufweist:

    /set weechat.bar.nicklist.conditions "${nicklist} && ${window.win_width} > 100"

Gleiche Bedingungen, aber die Benutzerliste wird im Buffer &bitlbee immer angezeigt (auch wenn das Fenster kleiner als 100 Pixel ist):

    /set weechat.bar.nicklist.conditions "${nicklist} && (${window.win_width} > 100 || ${buffer.full_name} == irc.bitlbee.&bitlbee)"

### 3.9. 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`, 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:

    ┌───────────────────────────────────────────────────────────────────────────┐
    │Welcome to #test, this is a test channel                                   │
    │12:52:27   --> | Flashy (flashcode@weechat.org) has joined #test   │@Flashy│
    │12:52:27    -- | Nicks #test: [@Flashy @joe +weebot peter]         │@joe   │
    │12:52:27    -- | Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│
    │12:52:27    -- | Channel created on Tue Jan 27 06:30:17 2009       │peter  │
    │12:54:15 peter | hey!                                              │       │
    │12:55:01  @joe | peter: hook_process: https://weechat.org/files/do │       │
    │               | c/devel/weechat_plugin_api.en.html#_weechat_hook_ │       │
    │               | process                                           │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │                                                                   │       │
    │[12:55] [6] [irc/freenode] 3:#test(+n){4}* [H: 4:#abc(2,5), 6]             │
    │[@Flashy(i)] hi peter!█                                                    │
    └───────────────────────────────────────────────────────────────────────────┘

Der selbe Bildschirm sieht im vereinfachten Anzeigemodus wie folgt aus:

    ┌───────────────────────────────────────────────────────────────────────────┐
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │                                                                           │
    │12:52 --> Flashy (flashcode@weechat.org) has joined #test                  │
    │12:52 -- Nicks #test: [@Flashy @joe +weebot peter]                         │
    │12:52 -- Channel #test: 4 nicks (2 ops, 1 voice, 1 normal)                 │
    │12:52 -- Channel created on Tue Jan 27 06:30:17 2009                       │
    │12:54 <peter> hey!                                                         │
    │12:55 <@joe> peter: hook_process: https://weechat.org/files/doc/devel/weech│
    │at_plugin_api.en.html#_weechat_hook_process                                │
    └───────────────────────────────────────────────────────────────────────────┘

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

### 3.10. Benachrichtigungsstufen

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

    /set weechat.notify.irc.freenode message

Setzt die Benachrichtigungsstufe ausschließlich für den Channel "#weechat", auf die Stufe highlight:

    /set weechat.notify.irc.freenode.#weechat highlight

Die Benachrichtigungsstufe für einen Buffer kann mittels dem `/buffer` Befehl festgelegt werden:

    /buffer notify highlight

#### 3.10.2. Maximaler Hotlist-Level für Nicks

Es ist möglich den sogeannten 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ötigt, da es standardmäßig die höchste Stufe für alle Nachrichten ist)

Um zum Bespiel Highlights von "joe" und "mike" im aktuellen Buffer zu deaktivieren:

    /buffer set hotlist_max_level_nicks_add joe:2,mike:2

Note | 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 autosetbuffer`.

### 3.11. Highlights

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

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

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

Note | 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 autosetbuffer`.

### 3.12. Standard Tastenbelegung

#### 3.12.1. Tastenbefehle für die Befehlszeile

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`
`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`
`Del` `Ctrl`+`d` | entfernt in der Befehlszeile das nächste Zeichen. | `/input delete_next_char`
`Backsp.` `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`+`r` | Textsuche im Verlaufsspeicher des Buffers (siehe Tasten für Such-Kontext). | `/input search_text_here`
`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`
`↑` | 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`
`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`
`Alt`+`s` | schaltet die Aspell Funktion an/aus. | `/mute aspell toggle`

#### 3.12.2. Tastenbefehle für Buffer / Fenster

Taste | Beschreibung | Befehl
--- | --- | ---
`Ctrl`+`l` | Fenster wird neu gezeichnet. | `/window refresh`
`Ctrl`+`s`, `Ctrl`+`u` | setzt für alle Buffer die Markierung für ungelesene Nachrichten. | `/input set_unread`
`Ctrl`+`x` | sind mehrere Buffer zu einem Buffer zusammen gefügt wechselt man diese durch. | `/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`
`F1` | blättert eine Seite in der buflist hoch. | `/bar scroll buflist * -100%`
`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`
`Alt`+`←` `Alt`+`↑` `Ctrl`+`p` `F5` | zum vorherigen Buffer springen. | `/buffer -1`
`Alt`+`→` `Alt`+`↓` `Ctrl`+`n` `F6` | zum nächsten Buffer springen. | `/buffer +1`
`F7` | zum vorherigen Fenster wechseln. | `/window -1`
`F8` | zum nächsten Fenster wechseln. | `/window +1`
`F9` | Titel des Buffers nach links verschieben. | `/bar scroll title * -30%`
`F10` | Titel des Buffers nach rechts verschieben. | `/bar scroll title * +30%`
`F11` | Benutzerliste um eine Seite nach oben blättern. | `/bar scroll nicklist * -100%`
`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`+`a` | wechselt zum nächsten Buffer mit Aktivität (nach Priorität: highlight, Nachricht, …​). | `/input jump_smart`
`Alt`+`h` | löscht Hotliste (Aktivitätsanzeige für die Buffer). | `/input hotlist_clear`
`Alt`+`j`, `Alt`+`f` | wechselt zum ersten Buffer. | `/buffer -`
`Alt`+`j`, `Alt`+`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`+`l` | schaltet einfachen Anzeigemodus an/aus. | `/window bare`
`Alt`+`m` | schaltet Mausfunktion ein/aus. | `/mouse toggle`
`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`+`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`
`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`
`Alt`+`=` | schaltet Filterfunktion an/aus. | `/filter toggle`
`Alt`+`-` | schaltet, für den aktuellen Buffer, Filterfunktion an/aus. | `/filter toggle @`

#### 3.12.3. Tasten für "Suchen"-Kontext

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`

#### 3.12.4. Tasten für "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`

#### 3.12.5. Tasten für "mouse"-Kontext

Diese Tasten werden im Kontext "mouse" verwendet, wenn eine Mausfunktion genutzt worden ist.

Maustaste (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 (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}`
⇑ | - | 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}`
⇑ | - | 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`
`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%`
◾◽◽ | 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}`

Note | (1) "⇑" und "⇓" sind Symbole für Mausrad hoch/runter.

### 3.13. Mausunterstützung

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

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

Important

Ist die Maus in Weechat aktiviert werden alle Mausereignisse duch WeeChat gefangen. Dadurch werden Aktionen wie Kopieren+Einfügen oder Klicks auf URLs nicht an das Terminal weitergereicht. + Mittels der `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).

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

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

Es gibt eine Anzahl von Maus-Ereignissen, die standardmäßig durch WeeChat definiert sind (siehe Tasten für "mouse"-Kontext).

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`

Tip | Wird eine Funktion im "mouse"-Kontext hinzufügt ist es möglich, mehrere Mausereignisse mittels `*` abzufangen. Zum Beispiel fängt `button1-gesture-*` alle Mausgesten ab, die mit der linken Maustaste eingeleitet werden.

Tip | Den Namen eines Mausereignisses kann man mittels des Befehls `/input grab_mouse` erfragen. Man führt den Befehl in der Eingabezeile aus und startet das Ereignis. Als Ergebnis erhält man in der Eingabezeile den Namen des ausgeführten Mausereignisses.

### 3.14. sensible Daten

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

Wenn eine Passphrase genutzt wird fragt WeeChat diese beim Programmstart ab (bei einem `/upgrade` ist dies nicht der Fall).

Die Passphrase kann auch in einer Datei gesichert werden (siehe Option sec.crypt.passphrase_file).

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

Note | Der Cipher Block Modus ist CFB.

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

    [data]
    __passphrase__ = on
    freenode = "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.

#### 3.14.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 freenode schützt:

    /secure set freenode 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 freenode Passwort für eine SASL Authentifizierung zu nutzen:

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

### 3.15. Optionen und Befehle

#### 3.15.1. Optionen für schutzwürdige Daten (sec.conf)

Sektionen:

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_file

  - Beschreibung: Pfad zu einer Datei die die Passphrase enthält um damit schutzwürdige Daten zu ver- und entschlüsseln. Diese Einstellung findet nur Anwendung, wenn die Datei sec.conf gelesen wird. Es wird auch nur die erste Zeile eingelesen. Diese Datei wird nur verwendet, falls die Umgebungsvariable "WEECHAT_PASSPHRASE" nicht genutzt wird (die Umgebungsvariable besitzt eine höhere Priorität). Sicherheitshinweis: Es ist anzuraten dieser Datei nur für die eigene Person Leserechte zu gewähren und die Datei nicht im Heimatverzeichnis von WeeChat zu sichern (zum Beispiel im /home/ Order); Beispiel: "~/.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`

#### 3.15.2. WeeChat Optionen (weechat.conf)

Sektionen:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`debug` | `/debug set /set weechat.debug.*` | Debug level, for core and plugins (Optionen können in Sektion hinzugefügt/entfernt werden).
`startup` | `/set weechat.startup.*` | Startup options.
`look` | `/set weechat.look.*` | Look and feel.
`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.
`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 Channel-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: `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 Channels 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: informiert User 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.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.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 sichtbar ist (Buffer wird nicht in einem Fenster dargestellt)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"${away} || ${buffer.num_displayed} == 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 Nachrichten für den Nachrichtenzähler in der Hotlist, für jeden Buffer (0 = der Nachrichtenzähler wird nicht dargestellt, siehe weechat.look.buffer_notify_default)

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

  - 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), sum = hier ist nur die Anzahl der Buchstaben maßgeblich

  - Typ: integer

  - Werte: djb2, sum

  - Standardwert: `djb2`

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

  - 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 eingefügt werden dürfen, ohne dass der Anwender gefragt wird (-1 = schaltet diese Funktion ab)

  - 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 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 darf keine Zeichenkette angegeben werden

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

  - Beschreibung: die aktuelle Konfiguration wird beim Beenden automatisch gesichert

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- 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 setzen (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)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"WeeChat ${info:version}"`

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

  - Beschreibung: Datei beinhaltet die digitalen Zertifikate ("%h" wird durch das WeeChat Verzeichnis ersetzt, Standardverzeichnis: "~/.weechat")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"/etc/ssl/certs/ca-certificates.crt"`

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

  - Beschreibung: aktiviert Debug-Nachrichten für alle Erweiterungen (diese Einstellung ist standardmäßig deaktiviert und das ist auch gut so)

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- 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: Suchpfad für Erweiterungen ("%h"' wird durch das WeeChat-Basisverzeichnis ersetzt, voreingestellt ist "~/.weechat")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%h/plugins"`

- weechat.plugin.save_config_on_unload

  - Beschreibung: speichert Konfigurationen, falls Erweiterungen beendet werden

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `on`

- weechat.startup.command_after_plugins

  - Beschreibung: Nach dem Start von WeeChat wird dieser Befehl aufgerufen. Dies geschieht nachdem die Erweiterungen geladen worden sind (mehrere Befehle sind durch ";" zu trennen) (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- weechat.startup.command_before_plugins

  - Beschreibung: Nach dem Start von WeeChat wird dieser Befehl aufgerufen. Dies geschieht bevor die Erweiterungen geladen werden (mehrere Befehle sind durch ";" zu trennen) (Hinweis: Inhalt wird evaluiert, 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: `""`

#### 3.15.3. 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
             clear [<number>|<name>|-merged|-all [<number>|<name>...]]
             move <number>|-|+
             swap <number1>|<name1> [<number2>|<name2>]
             cycle <number>|<name> [<number>|<name>...]
             merge <number>
             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>
             localvar
             set <property> <value>
             get <property>
             <number>|-|+|<name>

        list: alle geöffneten Buffer werden aufgelistet (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
       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 entsteht eine Zusammenfügung von zwei Buffer
             (Bei der Standardtastenbelegung kann mittels "CTRL-x" zwischen zusammengefügten Buffern umgeschaltet werden)
     unmerge: trennt Buffer wieder voneinander, falls zwei Buffer die selbe Nummer teilen
        hide: versteckt einen Buffer
      unhide: macht Buffer wieder sichtbar
    renumber: Buffer werden um nummeriert (Einstellung weechat.look.buffer_auto_renumber muss deaktiviert sein)
       close: Buffer schließen (Nummer oder Bereich ist optional)
      notify: setzt den Status der Benachrichtigung für den aktuellen Buffer. Folgende Möglichkeiten bestimmen den Grad der Benachrichtigung:
                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)
    localvar: zeigt die lokalen Variablen für den aktuellen Buffer an
         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

    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
      trennt Buffer voneinander:
        /buffer unmerge
      schließt aktuellen Buffer:
        /buffer close
      schließt Buffer 5 bis 7:
        /buffer close 5-7
      wechselt zum Buffer: #weechat:
        /buffer #weechat
      wechselt 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  quote Nachricht
      q  quote Präfix + Nachricht
      Q  quote 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)

    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|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
       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: gibt Informationen über das Terminal und verfügbare Farben aus
      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] <expression>
           [-n] -c <expression1> <operator> <expression2>

            -n: gibt das Ergebnis aus, ohne das dieses in den Buffer gesendet wird (debug Modus)
            -s: teilt Ausdrücke bevor sie evaluiert werden (mehrere Befehle können durch Semikolon getrennt werden)
            -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)

    Ein Ausdruck gilt als "wahr" sofern das Ergebnis weder NULL, leer und von "0" abweichend ist.
    Der Vergleich findet zwischen zwei Integer Werten statt, sofern die beiden Ausdrücke gültige Integer-Werte sind.
    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. eine evaluierte Teilzeichenkette (Format: "eval:xxx")
      2. eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx")
      3. Zeichen welche in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette")
      4. eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:+Max,Suffix,Zeichenkette")
         oder maximale Anzahl an Zeichen die auf dem Bildschirm angezeigt werden sollen (Format: "cutscr:Max,Suffix,Zeichenkette oder "cutscr:+Max,Suffix,Zeichenkette")
      5. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color")\n
      6. eine Info (Format: "info:Name,Argumente", Argumente sind optional)
      7. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format")
      8. eine Umgebungsvariable (Format: "env:XXX")
      9. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr")
      10. eine Option (Format: "file.section.option")
      11. der Name einer lokalen Variablen eines Buffer
      12. ein 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)
    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 ${info:version}                       ==> 0.4.3
      /eval -n ${env:HOME}                           ==> /home/user
      /eval -n ${weechat.look.scroll_amount}         ==> 3
      /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

    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

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

    /filter  list
             enable|disable|toggle [<name>|@]
             add <name> <buffer>[,<buffer>...] <tags> <regex>
             rename <name> <new_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
     rename: benennt einen Filter um
        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.freenode.#weechat" oder "irc.server.freenode")
             - "*" 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 Filterfunktion (de-)aktiviert werden.

    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 Tags 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.freenode.#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.freenode.#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)
      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 einer Taste ein Befehl zugeordnet werden soll ist es ratsam zuerst mit der Tastenkombination alt+k (oder Esc + k) einen Fangmodus zu aktivieren um damit die neu zu belegende Taste zu greifen. Durch diesen Schritt wird der entsprechende 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.

- `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.freenode", "irc.freenode.#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 Channel senden:
      /mute -current msg * hi!
      Nachricht an den #weechat Channel senden:
      /mute -buffer irc.freenode.#weechat msg #weechat hi!

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

    /plugin  list|listfull [<name>]
             load <filename> [<arguments>]
             autoload [<arguments>]
             reload [<name>|* [<arguments>]]
             unload [<name>]

         list: installierte Erweiterungen werden aufgelistet
     listfull: detaillierte Auflistung aller installierten Erweiterungen
         load: installiert eine Erweiterung
     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)
     filename: Erweiterung (Datei) welche installiert werden soll
         name: Name einer Erweiterung
    arguments: Argumente die der Erweiterung beim installieren übergeben werden sollen

    Ohne Angabe eines Arguments werden alle installierten Erweiterungen angezeigt.

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

    /print  [-buffer <number>|<name>] [-core] [-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)
      -core: Alternativname für "-buffer core.weechat"
    -current: Text wird im aktuell genutzten Buffer ausgegeben
    -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)
    -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.freenode.#weechat Message on #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>] <count> <command>

      delay: Verzögerung zwischen dem Ausführen der Befehle (in Millisekunden)
      count: Anzahl wie oft der Befehl ausgeführt werden soll
    command: Befehl welcher ausgeführt werden soll (das Befehlszeichen '/' wird automatisch hinzugefügt, falls es zum Befehlsbeginn nicht gefunden werden sollte)

    Alle Befehle werden in dem Buffer ausgeführt, in welchem dieser Befehl genutzt wird.

    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 ein-ausgeblendet

    Wird eine Passphrase verwendet (Daten liegen verschlüsselt vor), fragt WeeChat beim Start die Passphrase ab.
    Es ist möglich eine Umgebungsvariable "WEECHAT_PASSPHRASE" zu setzen um die Eingabeaufforderung beim Programmstart zu vermeiden (diese Variable wird auch von WeeChat beim /upgrade verwendet).

    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
      verschlüsselt freenode SASL Passwort:
        /secure set freenode meinPasswort
        /set irc.server.freenode.sasl_password "${sec.data.freenode}"
      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 freenode nickserv ghost meinNick ${sec.data.freenode}

- `set`: um Konfigurationsoptionen und Umgebungsvariablen zu setzen

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

    option: Name der zu ändernden Einstellung (um mehrere Einstellungen anzuzeigen, kann der Platzhalter "*" verwendet werden)
     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 ""

- `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`: Aktualisiert WeeChat 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 Rechner wiederherzustellen, sofern man den Inhalt des "~/.weechat" Verzeichnisses dorthin kopiert.

- `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 der ausgeführt werden soll (ohne das führende '/') oder ein Text der in dem Buffer ausgegeben werden soll

    Hinweis: Der Befehl der zeitverzögert gestartet werden soll wird im selben Buffer ausgeführt in dem auch der /wait Befehl aufgerufen wurde. Falls der Buffer nicht gefunden werden kann, da er in der Zwischenzeit zum Beispiel geschlossen wurde, wird der Befehl im WeeChat Core-Buffer ausgeführt.

    Beispiele:
      Betritt nach 10 Sekunden den Channel #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]
             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)
          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: springt 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 zum Standardmodus zurück gewechselt werden soll)

    Bei splith und splitv gibt "pct" die neue Größe des 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
        /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
      aktiviert den einfachen Anzeigemodus für zwei Sekunden:
        /window bare 2

## 4. 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 Session von WeeChat Erweiterungen nachträglich zu laden oder zu entfernen.

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.

Mit dem Befehl `/plugin` kann eine Erweiterung geladen bzw. entfernt werden. Auch können mit dem Befehl alle installierten Erweiterungen aufgelistet werden. Wird eine Erweiterung entfernt hat dies Einfluss auf die von dieser Erweiterung geöffneten Buffer. Diese Buffer werden dann geschlossen.

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.
aspell | Rechtschreibprüfung für Befehlszeile.
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.
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.
trigger | Veränderung von Text und Ausführen von Befehlen bei einem Ereignis, welche durch WeeChat oder eine Erweiterung ausgelöst werden.
xfer | Datentransfer und Direktchat.

Um mehr über Erweiterungen- und Skriptenprogrammierung (mittels API) zu erfahren, sollten Sie die WeeChat Plugin API Reference oder WeeChat Scripting Guide lesen.

### 4.1. Alias Erweiterung

Die Alias-Erweiterung erlaubt es, für Befehle, sogenannte Kurzbefehle (einen Alias) zu erstellen.

#### 4.1.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 localvar)
                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 msg * hallo
      Alternativbefehl "/forcejoin" wird angelegt um den IRC Befehl "forcejoin" mit einer Vervollständigung von /sajoin auszuführen:
        /alias addcompletion %%sajoin forcejoin /quote forcejoin

### 4.2. Aspell Erweiterung

Mit der ASpell Erweiterung findet eine Rechtschreibprüfung Einzug in WeeChat. Dabei ist es möglich mehrere Wörterbücher für einen Buffer zu nutzen.

#### 4.2.1. Optionen (aspell.conf)

Sektionen:

Sektion | Steuerbefehl | Beschreibung
--- | --- | ---
`color` | `/set aspell.color.*` | Farben.
`check` | `/set aspell.check.*` | Optionen um Einstellungen an der Rechtschreibprüfung vorzunehmen.
`dict` | `/aspell setdict /set aspell.dict.*` | Wörterbücher für Buffer (Optionen können in Sektion hinzugefügt/entfernt werden).
`look` | `/set aspell.look.*` | Erscheinungsbild.
`option` | `/set aspell.option.*` | Optionen für Rechtschreibprüfung (Optionen können in Sektion hinzugefügt/entfernt werden).

Optionen:

- aspell.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: `"ame,amsg,away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"`

- aspell.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 Aspell in allen Buffer deaktiviert, außer es wird für einen Buffer explizit ein Wörterbuch angegeben

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- aspell.check.during_search

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

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- aspell.check.enabled

  - Beschreibung: Aspell wird für die Eingabezeile aktiviert

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

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

- aspell.check.suggestions

  - Beschreibung: legt die Anzahl an Vorschlägen, für ein falsch geschriebenes Wort, fest. Die Vorschläge werden mittels der Bar-Item "aspell_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`

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

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

- aspell.color.suggestion

  - Beschreibung: Textfarbe für die Vorschläge der Rechtsschreibkorrektur in der Bar-Item "aspell_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`

- aspell.color.suggestion_delimiter_dict

  - Beschreibung: Textfarbe für das Trennzeichen, im Bar-Item "aspell_suggest", welches zwischen zwei Wörterbücher dargestellt 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`

- aspell.color.suggestion_delimiter_word

  - Beschreibung: Textfarbe für das Trennzeichen zwischen zwei Wörtern in der Bar-Item "aspell_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`

- aspell.look.suggestion_delimiter_dict

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

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `" / "`

- aspell.look.suggestion_delimiter_word

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

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `","`

#### 4.2.2. Befehle

- `aspell`: Konfiguration für Aspell-Erweiterung

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

      enable: Aspell wird aktiviert
     disable: Aspell wird deaktiviert
      toggle: Aspell Funktionalität 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 von Aspell hinzu

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

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

    Um Aspell auf alle Buffer anzuwenden sollte die Einstellung "default_dict" genutzt und Aspell aktiviert werden:
      /set aspell.check.default_dict "de_DE-neu"
      /aspell enable

    Die Standardtastaturbelegung zum Umschalten der Aspell Funktionalität lautet alt-s.

#### 4.2.3. 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 aspell.option.ignore-case "true"

#### 4.2.4. Rechtschreibkorrektur

Eine Rechtschreibkorrektur wird in der Bar-Item "aspell_suggest" angezeigt. Die Anzahl an Vorschlägen, für die Rechtschreibkorrektur, kann mit der Option aspell.check.suggestions bestimmt werden.

Um die Rechtschreibkorrektur zu aktivieren, muss für die Option aspell.check.suggestions ein Wert ≥ 0 eingestellt werden und das Bar-Item "aspell_suggest" zu einer Bar, zum Beispiel status, hinzufügt werden.

Beispiel der Rechtschreibkorrektur, mit einem deutschen Wörterbuch (`de`):

    │[12:55] [6] [irc/freenode] 3:#test(+n){4} [dies,Diebs,Viehs]                     │
    │[@Flashy] diehs █                                                                │
    └─────────────────────────────────────────────────────────────────────────────────┘

Beispiel der Rechtschreibkorrektur, mit zwei Wörterbüchern (`en,de`):

    │[12:55] [6] [irc/freenode] 3:#test(+n){4} [print,prone,prune/Prinz]              │
    │[@Flashy] prinr █                                                                │
    └─────────────────────────────────────────────────────────────────────────────────┘

### 4.3. Buflist Erweiterung

Die Buflist-Erweiterung dient dazu eine Liste der Buffer in einer Bar-Item mit Namen "buflist" darzustellen.
Eine Standardbar, "buflist", wird beim Start automatisch erstellt, mit folgendem Inhalt.

#### 4.3.1. Options (buflist.conf)

Sektionen:

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)

  - 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 Channel 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 Channel (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.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 Channel ("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 ihrem Kurznamen, wobei dies invertierte passiert und nicht zwischen Groß-oder Kleinschreibung unterschieden wird

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"number,-active"`

#### 4.3.2. Befehle

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

    /buflist  bar
              refresh

        bar: fügt eine "buflist" Bar hinzu
    refresh: erzwingt eine Aktualisierung des "buflist" Bar-Item

    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:
      - 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 Channeldaten, ausschließlich genutzt bei einem IRC Channel 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 Numer 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
        - ${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)

### 4.4. Charset Erweiterung

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

#### 4.4.1. Optionen (charset.conf)

Sektionen:

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

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

#### 4.4.3. 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.freenode ISO-8859-15

Um sich alle genutzten Zeichensätze anzeigen zu lassen wird folgender Befehl genutzt:

    /set charset.*

#### 4.4.4. Fehlersuche

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

### 4.5. Exec Erweiterung

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.

#### 4.5.1. Optionen (exec.conf)

Sections:

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`

#### 4.5.2. Commands

- `exec`: führe externe Befehle aus

    /exec  -list
           [-sh|-nosh] [-bg|-nobg] [-stdin|-nostdin] [-buffer <name>] [-l|-o|-n|-nf] [-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 (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)
         -bg: führt Prozess im Hintergrund aus: gibt weder eine Prozessausgabe noch einen Rückgabewert aus (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 (kein Zeilenumbruch, keine Limitierung in der Anzahl der Zeilen), aus (nicht kompatibel mit Argument -bg/-pipe/-hsignal)
         -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:http://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

### 4.6. Fifo Erweiterung

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 standardmäßig im Pfad ~/.weechat/ und heißt weechat_fifo.

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 freenode in "newnick":

    $ echo 'irc.server.freenode */nick newnick' >~/.weechat/weechat_fifo

- Schickt eine Nachrich in den IRC #weechat Channel:

    $ echo 'irc.freenode.#weechat *hello!' >~/.weechat/weechat_fifo

- Schickt eine Nachricht in den aktuellen Buffer:

    $ echo '*hello!' >~/.weechat/weechat_fifo

- 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' >~/.weechat/weechat_fifo

#### 4.6.1. Optionen (fifo.conf)

Sektionen:

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 eingehende Dateien: "%h" wird durch das WeeChat Verzeichnis ersetzt (Standardpfad: "~/.weechat"); WeeChat PID kann mit ${info:pid} genutzt werden (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%h/weechat_fifo"`

#### 4.6.2. 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 ist die FIFO-Pipe in ~/.weechat/weechat_fifo

    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 freenode zu ändern:
      echo 'irc.server.freenode */nick newnick' >~/.weechat/weechat_fifo

    Bitte lese die Benutzeranleitung für weitere Informationen und Beispiele.

    Beispiele:
      /fifo toggle

### 4.7. IRC Erweiterung

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

#### 4.7.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 chat.freenode.net mit dem Nick nono und betreten der Channels #weechat und #toto (Standardport (6667) wird genutzt):

    $ weechat irc://nono@chat.freenode.net/#weechat,#toto

#### 4.7.2. Optionen (irc.conf)

Sektionen:

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 Channel-Modes (neben dem Channelnamen)

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

  - Beschreibung: Textfarbe in der die Meldungen für das Betreten eines Channels 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_quit

  - Beschreibung: Textfarbe in der die Meldungen für das Verlassen/Beenden eines Channels 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=grau (gray), 15=weiß (white)

  - 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_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 Channels dargestellt werden soll (wenn ein Channel 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 Channels dargestellt werden soll, falls das Thema des Channels 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 Channels dargestellt werden soll, falls das Thema des Channels 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 Channel-Buffer (mittels autojoin Option) wird dieser direkt geöffnet, ohne auf die JOIN Nachricht des Servers zu warten; dies ist sinnvoll um die Channels 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 Channel 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 Channel-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 Channel-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 Channel 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 Channel 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_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 Channels)

  - 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_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 Channels angezeigt werden sollen: 324 = Channel-Modi, 329 = Erstellungsdatum des Channels, 332 = Topic, 333 = Nick/Datum für Topic, 353 = genutzte Namen im Channel, 366 = Anzahl der Nicks im Channel

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

  - Beschreibung: durch Kommata getrennte Liste von Wörtern die in Channel-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 Channel-Modi betreffen, sofern der entsprechende Modus für den Channel 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 Channel 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 Channelnamen automatisch der Channel-Typ vorangestellt, falls bei der Benutzung des /join Befehls der angegebene Channel-Name 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 Channel 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 Channel/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 Channel/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 Channel-Buffer. Solche Nachrichten haben den Nick als Empfänger, der Channelnamen wird aber der Nachricht vorangestellt. Eine solche Nachricht sieht auf dem freenode Server wie folgt aus: "[#channel] Herzlich Willkommen zum ..."

  - 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 Channel 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 Channel 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: Server-Buffer zusammenfügen

  - 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 Channel inaktiv gewesen ist. Dazu muss ein Filter mit dem Schlagwort "irc_smart_filter" erstellt werden

  - 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 Channel 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 Channel-Thema entfernt (wird nur genutzt wenn der Buffer-Titel angezeigt wird)

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

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

  - Beschreibung: dekodieren/kodieren von Channelnamen innerhalb einer Nachricht mittels Charset-Optionen; es wird empfohlen diese Option deaktiviert zu lassen sofern man ausschließlich UTF-8 in Channelnamen verwendet. Diese Option sollte nur dann verwendet werden, sofern man exotische Zeichensätze wie ISO für Channelnamen nutzt

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

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

  - 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 Channels, die beim Verbinden mit dem Server automatisch betreten werden (nachdem die Einstellungen command + delay ausgeführt wurden). Channels die einen Schlüssel benötigen müssen in der Auflistung als erstes aufgeführt werden. Die Schlüssel, zu den jeweiligen Channels, werden nach den Channels aufgeführt (eine Trennung von Channels und Schlüssel erfolgt mittels einem Leerzeichen. Schlüssel werden untereinander 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)"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- 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: Channels automatisch betreten, falls man rausgeworfen wurde. Es kann eine lokale Buffer Variable für einen Channel 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 Channel 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 Channels wird nicht überprüft wenn die Anzahl der Nutzer höher ist, als der angegebene Wert (0 = unbegrenzte Anzahl an Nutzern im Channel)

  - 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) (Beispiel: "away-notify,multi-prefix")

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.command

  - Beschreibung: enthält Befehle die, nach einer Verbindung zum Server und bevor Channels betreten werden, ausgeführt werden sollen. Mehrere Befehle müssen durch ein ";" getrennt werden. Möchte man ein Semikolon nutzen muss man "\;" verwenden. Die speziellen Variablen $nick, $channel und $server werden dabei durch den jeweiligen Wert ersetzt (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.command_delay

  - Beschreibung: Wartezeit (in Sekunden) nach Ausführung des Befehls und bevor Channels 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.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; Variablen die genutzt werden können: ${nick}, ${channel} und ${server})

  - 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 Komma getrennt) (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - 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 für Server (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - 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 der auf dem Server genutzt werden soll (Hinweis: Inhalt wird evaluiert, siehe /help eval)

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

- irc.server_default.sasl_key

  - Beschreibung: Datei mit privatem ECC Schlüssel für den "ecdsa-nist256p-challenge" Mechanismus ("%h" wird durch das WeeChat Verzeichnis ersetzt, standardmäßig "~/.weechat")

  - 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, "ecdsa-nist256p-challenge" für öffentlich/private Schlüsselmethode, "external" SSL Zertifikat welches auf Client Seite vorliegt wird verwendet, "dh-blowfish" Passwort wird mittels blowfish verschlüsselt (unsicher, wird nicht empfohlen), "dh-aes" Passwort wird mittels AES verschlüsselt (unsicher, wird nicht empfohlen)

  - Typ: integer

  - Werte: plain, ecdsa-nist256p-challenge, external, dh-blowfish, dh-aes

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

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

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.ssl

  - Beschreibung: Server über SSL ansprechen

  - Typ: boolesch

  - Werte: on, off

  - Standardwert: `off`

- irc.server_default.ssl_cert

  - Beschreibung: Datei für SSL Zertifikat um automatisch den eigenen Nick zu identifizieren ("%h" wird durch das WeeChat Verzeichnis ersetzt, Standardverzeichnis: "~/.weechat")

  - 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 64 Zeichen lang, bei SHA-256 sind es 32 Zeichen, bei SHA-1 sind es 20 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)

  - 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 der direkt nach der Verbindung zum Server gesetzt werden soll. Dies geschieht bevor Befehle für den Server ausgeführt und bevor Channels 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)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- irc.server_default.username

  - Beschreibung: Username der auf dem Server genutzt werden soll (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

#### 4.7.3. Befehle

- `admin`: Information über den Server-Administrator abfragen

    /admin  [<target>]

    target: Servername

- `allchan`: führt einen Befehl aus der an alle Channels gesendet wird, die mit einem Server verbunden sind

    /allchan  [-current] [-exclude=<channel>[,<channel>...]] <command> [<arguments>]
              [-current] -include=<channel>[,<channel>...] <command> [<arguments>]

     -current: führt einen Befehl aus der an alle Channels des aktuellen Servers gesendet wird
     -exclude: dient zum Ausschluss ausgewählter Channels (Platzhalter "*" kann verwendet werden)
     -include: findet Anwendung für ausgewählte Channels (Platzhalter "*" kann verwendet werden)\n
      command: Befehl der ausgeführt werden soll
    arguments: Argumente für Befehl (Variablen die genutzt werden können und durch den entsprechenden Wert ersetzt werden: $nick, $channel und $server)

    Beispiele:
      führe den Befehl '/me Ich teste gerade etwas...' für alle Channels aus:
        /allchan me Ich teste gerade etwas...
      schicke 'Hallo Welt' an jeden Channel, ausgenommen an den #weechat Channel:
        /allchan -exclude=#weechat msg * Hallo Welt
      schicke 'Hallo Welt' an jeden Channel, ausgenommen an den #weechat Channel und Channels die mit #linux beginnen:
        /allchan -exclude=#weechat,#linux* msg * Hallo Welt
      schickt den Text 'Hallo' an alle Channels die mit #linux beginnen:
        /allchan -include=#linux* msg * Hallo

- `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> [<arguments>]
            [-current] -include=<nick>[,<nick>...] <command> [<arguments>]

     -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
    arguments: Argumente für Befehl (Variablen die genutzt werden können und durch den entsprechenden Wert ersetzt werden: $nick, $channel und $server)

    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 msg * Hallo
      schicke den Text 'Hallo' an alle, ausgenommen für Nick foo und Nicks die mit bar beginnen:
        /allpv -exclude=foo,bar* msg * Hallo
      schicke den Text 'Hallo' an alle Nicks die mit bar beginnen:
        /allpv -include=bar* msg * 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> [<arguments>]
              -include=<server>[,<server>...] <command> [<arguments>]

     -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
    arguments: Argumente für Befehl (Variablen die genutzt werden können und durch den entsprechenden Wert ersetzt werden: $nick, $channel und $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

- `ban`: Nicknamen oder Hosts sperren/verbannen

    /ban  [<channel>] [<nick> [<nick>...]]

    channel: Name des Channel
       nick: Nick oder Host

    Ohne Angabe von Argumenten wird die Ban-Liste für den aktuellen Channel 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, extended-join, multi-prefix, server-time, 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 freenode
      /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 Channelname an welchen eine CTCP-Nachricht geschickt werden soll ('*' = aktuellen Channel)
         type: CTCP-Nachricht (Beispiele: "version", "ping", ..)
    arguments: Argumente für CTCP

    Beispiele:
      /ctcp toto time
      /ctcp toto version
      /ctcp * version

- `cycle`: Einen Channel verlassen und wieder betreten

    /cycle  [<channel>[,<channel>...]] [<message>]

    channel: Name des Channels
    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>...]

    nick: Nick oder Maske (Platzhalter "*" kann verwendet werden)
       *: entzieht allen Nicks im Channel 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 Channel 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 Channel 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 für Server ab, zu denen gerade eine erneute Verbindung aufgebaut werden soll
    reason: Begründung der 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 Channel den half-operator-Status

- `ignore`: Ignoriert Nicks/Hosts von Channels 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 Channel, 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 freenode Server:
        /ignore add toto@domain.com freenode
      ignoriert den Host "toto*@*.domain.com" im Chat freenode/#weechat:
        /ignore add toto*@*.domain.com freenode #weechat

- `info`: Information über den Server abfragen

    /info  [<target>]

    target: Servername

- `invite`: Eine Person in einen Channel einladen

    /invite  <nick> [<nick>...] [<channel>]

       nick: Nickname
    channel: Name des Channels

- `ison`: Überprüft ob ein Nick gegenwärtig auf IRC angemeldet ist

    /ison  <nick> [<nick>...]

    nick: Nickname

- `join`: einen Channel betreten

    /join  [-noswitch] [-server <server>] [<channel1>[,<channel2>...]] [<key1>[,<key2>...]]

    -noswitch: es wird nicht zu dem angegebenen Channel gewechselt
       server: an angegebenen Server (interner Name) senden
      channel: Name des Channels, der betreten werden soll
          key: Zugriffsschlüssel für einen Channel (Channel, die einen Zugriffsschlüssel benötigen, müssen zuerst aufgeführt werden)

    Beispiele:
      /join #weechat
      /join #geschützter_Channel,#weechat Zugriffsschlüssel
      /join -server freenode #weechat
      /join -noswitch #weechat

- `kick`: wirft einen User aus einem Channel

    /kick  [<channel>] <nick> [<reason>]

    channel: Channelname
       nick: Nick der rausgeworfen werden soll
     reason: Begründung für den Rauswurf (Variablen die genutzt werden können: $nick, $channel und $server)

- `kickban`: wirft einen User aus einem Channel und sein Host kommt auf die Bannliste

    /kickban  [<channel>] <nick> [<reason>]

    channel: Channelname
       nick: Nickname der rausgeworfen und gebannt werden soll
     reason: Begründung weshalb der User rausgeworfen wurde (Variablen die genutzt werden können: $nick, $channel und $server)

    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  [[<server>] <server_mask>]

         server: dieser Server soll die Anfrage beantworten
    server_mask: die aufzulistenden Server sollen diesem Muster entsprechen

- `list`: Channels mit ihrem Thema auflisten

    /list  [<channel>[,<channel>...]] [<server>] [-re <regex>]

    channel: aufzulistender Channel
     server: Servername
     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)

    Beispiele:
      listet alle Channels des Servers auf (dies kann bei großen Netzwerken sehr lange dauern):
        /list
      listet den Channel #weechat auf:
        /list #weechat
      listet alle Channels 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 Channel senden

    /me  <message>

    message: zu sendende Nachricht

- `mode`: Eigenschaften eines Channel 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

    Channel-Eigenschaften:
      channel: zu ändernder Channel (standardmäßig der erste Channel)
      o: vergibt/entzieht Operator Privilegien
      p: privater Channel
      s: geheimer Channel
      i: geschlossener Channel (Zutritt nur mit Einladung)
      t: nur Operatoren dürfen das Thema setzen
      n: keine Nachrichten von außerhalb des Channels zulassen
      m: moderierter Channel (schreiben nur mit Voice)
      l: maximale Anzahl an Usern im Channel festlegen
      b: Bannmaske für zu sperrende User (in nick!ident@host-Form)
      e: legt Ausnahmemaske fest
      v: vergibt/entzieht Schreibrechte (voice) in moderierten Channels
      k: legt ein Passwort für den Channel 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/Channel verschicken

    /msg  [-server <server>] <target>[,<target>...] <text>

    server: schicke an diesen Server (interner Servername)
    target: Nick oder Channel (darf eine Maske sein, '*' = aktueller Channel)
      text: zu sendender Text

- `names`: Nicknamen in Channels auflisten

    /names  [<channel>[,<channel>...]]

    channel: Name des Channels

- `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 Channelname
      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 freenode Server an- oder abmeldet:
        /notify add toto freenode
      Benachrichtigung falls "toto" den Befehl away am freenode Server nutzt:
        /notify add toto freenode -away

- `op`: Channel-Operator Status an Nicknamen vergeben

    /op  <nick> [<nick>...]
         * -yes

    nick: Nick oder Maske (Platzhalter "*" kann verwendet werden)
       *: vergibt an alle Nicks im Channel den Operator-Status

- `oper`: Operator Privilegien anfordern

    /oper  <user> <password>

        user: Username
    password: Passwort

- `part`: Einen Channel verlassen

    /part  [<channel>[,<channel>...]] [<message>]

    channel: Name des Channels welcher verlassen werden soll
    message: Abschiedsnachricht (wird anderen Usern angezeigt)

- `ping`: sendet einen Ping an den Server

    /ping  <server1> [<server2>]

    server1: Server
    server2: 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 Channel erst schreiben, wenn sie "+v" oder höher besitzen)

    /quiet  [<channel>] [<nick> [<nick>...]]

    channel: Name des Channel
       nick: Nick oder Host

    Ohne Angabe von Argumenten wird die Quiet-Liste für den aktuellen Channel 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: Channels 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 Channel zu verlassen

    /remove  [<channel>] <nick> [<reason>]

    channel: Channelname
       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 Channel zu betreten

    /sajoin  <nick> <channel>[,<channel>...]

       nick: Nickname
    channel: Name des Channels

- `samode`: ändert den Modus des Channels ohne das Operator-Privilegien vorliegen

    /samode  [<channel>] <mode>

    Channel: Name des Channel
       Mode: neuer Modus für Channel

- `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 Channel(s) zu verlassen

    /sapart  <nick> <channel>[,<channel>...]

       nick: Nickname
    channel: Name des Channels

- `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 [<server>]
             add <server> <hostname>[/<port>] [-temp] [-<option>[=<value>]] [-no<option>]
             copy|rename <server> <new_name>
             reorder <server> [<server>...]
             open <server>|-all [<server>...]
             del|keep <server>
             deloutq|jump|raw

        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
      server: Servername, dient der internen Nutzung und zur Darstellung
    hostname: Name oder IP-Adresse des Servers. Optional kann zusätzlich der Port festgelegt werden (Standard-Port: 6667). Verschiedene Ports 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: öffnen 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

    Beispiele:
      /server listfull
      /server add freenode chat.freenode.net
      /server add freenode chat.freenode.net/6697 -ssl -autoconnect
      /server add chatspike irc.chatspike.net/6667,irc.duckspike.net/6667
      /server copy freenode freenode-test
      /server rename freenode-test freenode2
      /server reorder freenode2 freenode
      /server del freenode
      /server deloutq

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

- `squery`: Nachricht an einen Service senden

    /squery  <service> <text>

    service: Name des Service
       text: zu sendender Text

- `squit`: Verbindung zum Server trennen

    /squit  <server> <comment>

     server: Name des Servers
    comment: Kommentar

- `stats`: Serverstatistik abfragen

    /stats  [<query> [<server>]]

     query: c/h/i/k/l/m/o/y/u (siehe RFC1459)
    server: 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: Channelname

- `time`: Ortszeit des Servers abfragen

    /time  [<target>]

    target: Zeit des angegebenen Servers abfragen

- `topic`: Thema des Channels abfragen/setzen

    /topic  [<channel>] [<topic>|-delete]

    channel: Name des Channels
      topic: neues Thema für den Channel
    -delete: entfernt das Thema des Channels

- `trace`: Route zum angegebenen Server ermitteln

    /trace  [<target>]

    target: Servername

- `unban`: Bann von Nicks oder Hosts aufheben

    /unban  [<channel>] <nick> [<nick>...]

    channel: Name des Channel
       nick: Nick oder Host

- `unquiet`: Nicks oder Hosts das Wort erteilen

    /unquiet  [<channel>] <nick> [<nick>...]

    channel: Name des Channel
       nick: Nick oder Host

- `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  [<server>|<nick>]

    server: Servername
      nick: Nickname

- `voice`: Voice an Nick(s) vergeben

    /voice  <nick> [<nick>...]

    nick: Nick oder Maske (Platzhalter "*" kann verwendet werden)
       *: vergibt an alle Nicks im Channel den voice-Status

- `wallchops`: Nachricht an Channel-Operator verschicken

    /wallchops  [<channel>] <text>

    channel: Name des Channel
       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  [<server>] [<nick>[,<nick>...]]

    server: 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 Nicks:
    - den eigenen Nick, falls es sich um einen Server/Channel 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

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

  Pfad zu einer Datei mit SSL Zertifikaten (Standardpfad: "%h/ssl/CAs.pem")

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)

Note | 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 ~/.weechat/ssl
    $ wget -O ~/.weechat/ssl/CAs.pem http://www.spi-inc.org/ca/spi-cacert.crt

Note | Es ist möglich mehrere Zertifikate in der Datei CAs.pem zu verwenden.

- In WeeChat, sofern der Server "oftc" schon hinzufügt wurde:

    /connect oftc

##### zweites Beispiel: Verbindung zu oftc mittels CertFP

- Erstellen Sie ein Zertifikat in der Shell:

    $ mkdir -p ~/.weechat/ssl
    $ cd ~/.weechat/ssl
    $ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem

- In WeeChat, sofern der Server "oftc" schon hinzufügt wurde:

    /set irc.server.oftc.ssl_cert "%h/ssl/nick.pem"
    /connect oftc
    /msg nickserv cert add

Für weiterreichende Informationen lesen Sie bitte: https://www.oftc.net/NickServ/CertFP

#### 4.7.5. SASL Authentifizierung

WeeChat unterstützt eine SASL Authentifikation, mittels verschiedener Mechanismen:

- plain: Passwort liegt in Klarschrift vor (Standard)

- ecdsa-nist256p-challenge: Abgleich von öffentlichem/privatem Schlüssel

- external: SSL Zertifikat welches auf Client Seite vorliegt

- dh-blowfish: Passwort wird mittels blowfish verschlüsselt (unsicher, wird nicht empfohlen)

- dh-aes: Passwort wird mittels AES verschlüsselt (unsicher, wird nicht empfohlen)

Note | Die "gcrypt" Bibliothek wird beim kompilieren von WeeChat benötigt um "dh-blowfish"nutzen zu können (siehe Abhängigkeiten).

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 >~/.weechat/ecdsa.pem

Um den öffentlichen Schlüssel zu erhalten (base64 enkodiert) muss folgender Befehl ausgeführt werden:

    $ openssl ec -noout -text -conv_form compressed -in ~/.weechat/ecdsa.pem | grep '^pub:' -A 3 | tail -n 3 | tr -d ' \n:' | xxd -r -p | base64

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 freenode
    /msg nickserv identify your_password
    /msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q

Konfiguration der SASL Optionen des Servers:

    /set irc.server.freenode.sasl_mechanism ecdsa-nist256p-challenge
    /set irc.server.freenode.sasl_username "your_nickname"
    /set irc.server.freenode.sasl_key "%h/ecdsa.pem"

Erneut mit dem Server verbinden:

    /reconnect freenode

#### 4.7.6. Verbindung zu Freenode mittels TOR/SASL herstellen

Neben der Möglichkeit eine Verbindung zum Freenode Server mittels SSL aufzubauen, kann man außerdem eine Verbindung via TOR (https://www.torproject.org/) herstellen. Dies dient dazu die eigene Privatsphäre und Sicherheit im Internet zu erhöhen.

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

Jetzt muss der neue Server hinzufügt werden, zum Beispiel:

    /server add freenode-tor freenodeok2gncmy.onion

Einen Proxy für TOR anlegen:

    /set irc.server.freenode-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.freenode-tor.sasl_mechanism ecdsa-nist256p-challenge
    /set irc.server.freenode-tor.sasl_username "your_nickname"
    /set irc.server.freenode-tor.sasl_key "%h/ecdsa.pem"

Zum Abschluss stellt man eine Verbindung zum Server her:

    /connect freenode-tor

Um mehr über Freenode und TOR zu erfahren: http://freenode.net/kb/answer/chat#accessing-freenode-via-tor

#### 4.7.7. 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.freenode.#weechat irc_smart_filter *
    /filter add irc_smart_weechats irc.freenode.#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.

#### 4.7.8. 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.freenode.version "WeeChat $version (for freenode)"

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`

Note | (1) Die Git Version wird durch die Ausgabe des Befehls `git describe` ermittelt. Dies erfordert, dass WeeChat aus dem Git Repository heraus kompiliert wurde und das Git überhaupt installiert ist.

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

#### 4.7.9. 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: `freenode.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 "freenode" Server:

    /set irc.msgbuffer.freenode.invite current

- die Nachricht "303" (ison) wird im WeeChat "core" Buffer angezeigt:

    /set irc.msgbuffer.303 weechat

### 4.8. Logger Erweiterung

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.

#### 4.8.1. Optionen (logger.conf)

Sektionen:

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: Textfarbe in der der Verlaufsspeicher 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: `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.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.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; "%h" wird durch das WeeChat Verzeichnis ersetzt (Standardpfad: "~/.weechat"); eine Datumsspezifikation ist zulässig (siehe: man strftime) (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%h/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`

#### 4.8.2. Befehle

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

    /logger  list
             set <level>
             flush
             disable

       list: zeigt den Status der Protokollierung aller geöffneten Buffer 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 ausgeschaltet (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 Nachrichten und Bemerkungen
      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 Channel:
        /set logger.mask.irc "$server/$channel.weechatlog"

#### 4.8.3. Log Levels

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

- Level 3 für freenode Server Buffer nutzen:

    /set logger.level.irc.server.freenode 3

- Level 3 für alle Channels auf dem Server freenode nutzen:

    /set logger.level.irc.freenode 3

- Level 2 für alle IRC Buffers nutzen:

    /set logger.level.irc 2

#### 4.8.4. Dateinamenmaske

Es ist möglich eine Dateinamenmaske für jeden Buffer zu erstellen und diese Maske mit lokalen Buffervariablen zu füllen. Um zu sehen welche lokalen Variabel es gibt:

    /buffer localvar

Zum Beispiel für den Buffer "irc.freenode.#weechat". WeeChat sucht in dieser Reihenfolge nach einer Maske:

    logger.mask.irc.freenode.#weechat
    logger.mask.irc.freenode
    logger.mask.irc
    logger.file.mask

Dies bedeutet dass man eine Maske speziell für einen IRC Server ("logger.mask.irc.freenode") 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:

    ~/.weechat/
        |--- logs/
            |--- 2010/
                |--- 11/
                |       irc.server.freenode.weechatlog
                |       irc.freenode.#weechat.weechatlog
            |--- 2010/
                |--- 12/
                |       irc.server.freenode.weechatlog
                |       irc.freenode.#weechat.weechatlog

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

    ~/.weechat/
        |--- logs/
            |--- irc/
                |--- freenode/
                |       freenode.weechatlog
                |       #weechat.weechatlog
                |       #mychan.weechatlog
                |--- oftc/
                |       oftc.weechatlog
                |       #chan1.weechatlog
                |       #chan2.weechatlog

### 4.9. Relay Erweiterung

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: Protokoll welches es erlaubt die Daten mit einer externen Oberfläche zu teilen, zum Beispiel:

  - Glowing Bear (HTML5): https://www.glowing-bear.org/

  - QWeeChat (Qt): https://weechat.org/download

  - WeeChat-Android (Android): https://github.com/ubergeek42/weechat-android

  - weechat.el (Emacs): https://github.com/the-kenny/weechat.el

  - WeeCloud (Javascript): https://github.com/eirikb/weecloud

#### 4.9.1. Optionen (relay.conf)

Sektionen:

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

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

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

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

- 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 Channel gehalten werden sollen (0 = unbegrenzt, Beispiele: 1440 = einen Tag, 10080 = eine Woche, 43200 = einen Monat, 525600 = ein Jahr)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `1440`

- relay.irc.backlog_max_number

  - Beschreibung: maximale Anzahl an Zeilen im Verlaufsspeicher. Dies gilt für jeden IRC Channel (0: keine Zeilenbegrenzung)

  - Typ: integer

  - Werte: 0 .. 2147483647

  - Standardwert: `256`

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

  - Beschreibung: Kompressionsstärke der Pakete die durch das WeeChat Protokoll an den Client gesendet werden sollen (0 = Kompression deaktiviert, 1 = niedrige Kompression ... 9 = stärkste Kompression)

  - Typ: integer

  - Werte: 0 .. 9

  - Standardwert: `6`

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

  - Beschreibung: Datei mit SSL Zertifikat und privatem Schlüssel (zur Nutzung von Clients mit SSL)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%h/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.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 muss "(?-i)" dem Origin vorangestellt werden), Beispiele: "^http://(www\.)?example\.(com|org)"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

#### 4.9.2. Befehle

- `relay`: Relay-Kontrolle

    /relay  list|listfull|listrelay
            add <name> <port>
            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
              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>
             ipv4: erzwingt die Nutzung von IPv4
             ipv6: erzwingt die Nutzung von IPv6
              ssl: aktiviert SSL
    protocol.name: Protokoll und Name 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 herzustellen. Siehe https://weechat.org/download/

    Ohne Angabe von Argumenten werden alle Relay-Clients in einem neuen Buffer dargestellt.

    Beispiele:
      IRC Proxy für Server "freenode":
        /relay add irc.freenode 8000
      IRC Proxy, für Server "freenode", mit SSL:
        /relay add ssl.irc.freenode 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

#### 4.9.3. Passwort

Es wird nachdrücklich Empfohlen ein Passwort für die Relay-Verbindung zu nutzen:

    /set relay.network.password "meinPasswort"

Dieses Passwort wird sowohl für das irc als auch für das weechat Protokoll verwendet.

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

Die Standarddatei für Zertifikate/Schlüssel ist ~/.weechat/ssl/relay.pem (option relay.network.ssl_cert_key).

Ein Zertifikat und einen privaten Schlüssel kann man mit folgenden Befehlen erstellen:

    $ mkdir -p ~/.weechat/ssl
    $ cd ~/.weechat/ssl
    $ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem

Sollte WeeChat schon gestartet worden sein, kann man das Zertifikat und der private Schlüssel mittels folgendem Befehl nachträglich geladen werden:

    /relay sslcertkey

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

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

    /relay add irc.freenode 8000

Nun kann man eine Verbindung zum Port 8000 mit jedem beliebigen IRC Client herstellen, indem man das Server Passwort "meinPasswort" nutzt (oder "freenode:meinPasswort" sofern kein Server angegeben wurde).

#### 4.9.6. WeeChat Protokoll

Die Relay-Erweiterung kann Daten, mittels dem WeeChat Protokoll, an eine externe Oberfläche senden.

Nun kann man mittels einer remote Oberfläche Kontakt zu WeeChat herstellen. Eine Liste der remote Oberflächen findet man auf der Homepage: https://weechat.org/download

Important | WeeChat selber 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.

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

### 4.10. Erweiterungen für Skripten

WeeChat unterstützt sechs Skript-Erweiterungen: Python, Perl, Ruby, Lua, Tcl, Guile (scheme) und Javascript. Mit diesen Erweiterungen kann für die jeweilige Skript-Sprache, Skripten geladen, ausgeführt und entfernt werden.

Eine weitere Erweiterung ist "script". Dies ist ein Skripten-Manager mit dem es möglich ist, unabhängig von der Skript-Sprache, Skripten zu laden und zu entfernen. Des weiteren können Skripten, aus dem Skript-Repository, installiert und deinstalliert werden. Das Skript-Repository kann unter folgender URL eingesehen werden: https://weechat.org/scripts

Sollten wir Ihr Interesse geweckt haben, selber Skripten für WeeChat zu programmieren, dann lesen Sie bitte die WeeChat Scripting Guide.

#### 4.10.1. Script Optionen (script.conf)

Sektionen:

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=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: `"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_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: "buffers.pl,iset.pl"

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `""`

- script.scripts.path

  - Beschreibung: lokales Cache-Verzeichnis für die Script-Erweiterung; "%h" wird durch das WeeChat Verzeichnis ersetzt (Standardpfad: "~/.weechat") (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%h/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"`

#### 4.10.2. Skript Befehle

- `script`: WeeChat Skripten-Manager

    /script  list [-o|-i]
             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 gestarteten Skripten im Buffer aus
                -i: eine Liste der gestarteten Skripten wird in die Eingabezeile kopiert (um sie dann manuell in einen Buffer zu senden)
            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 gestartet
      | Skript ist installiert (wird aber nicht ausgeführt)
      es wird empfohlen dieses Skript zu installieren

    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/h  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 iset.pl buffers.pl
      /script remove iset.pl
      /script hold urlserver.py
      /script reload urlserver
      /script upgrade

#### 4.10.3. Python Befehle

- `python`: auflisten/installieren/beenden von Skripten

    /python  list|listfull [<name>]
             load [-q] <filename>
             autoload
             reload|unload [-q] [<name>]

        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
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

#### 4.10.4. Perl Befehle

- `perl`: auflisten/installieren/beenden von Skripten

    /perl  list|listfull [<name>]
           load [-q] <filename>
           autoload
           reload|unload [-q] [<name>]

        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
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

#### 4.10.5. Ruby Befehle

- `ruby`: auflisten/installieren/beenden von Skripten

    /ruby  list|listfull [<name>]
           load [-q] <filename>
           autoload
           reload|unload [-q] [<name>]

        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
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

#### 4.10.6. Lua Befehle

- `lua`: auflisten/installieren/beenden von Skripten

    /lua  list|listfull [<name>]
          load [-q] <filename>
          autoload
          reload|unload [-q] [<name>]

        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
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

#### 4.10.7. Tcl Befehle

- `tcl`: auflisten/installieren/beenden von Skripten

    /tcl  list|listfull [<name>]
          load [-q] <filename>
          autoload
          reload|unload [-q] [<name>]

        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
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

#### 4.10.8. Guile Befehle

- `guile`: auflisten/installieren/beenden von Skripten

    /guile  list|listfull [<name>]
            load [-q] <filename>
            autoload
            reload|unload [-q] [<name>]

        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
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

#### 4.10.9. Javascript Befehle

- `javascript`: auflisten/installieren/beenden von Skripten

    /javascript  list|listfull [<name>]
                 load [-q] <filename>
                 autoload
                 reload|unload [-q] [<name>]

        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
        name: Name eines Skriptes (der Name der in der "register" Funktion der Skript-API genutzt wird)
          -q: unterdrückter Modus: Es werden keine Nachrichten ausgegeben

    Ohne Angabe eines Argumentes listet dieser Befehl alle geladenen Skripten auf.

### 4.11. Trigger Erweiterung

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 erforderlich zu wissen wie signals, modifiers, …​ in WeeChat funktionieren. Dazu sollte man das Kapitel Hooks in der Anleitung für API Erweiterung lesen.

#### 4.11.1. Optionen (trigger.conf)

Sektionen:

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`

#### 4.11.2. 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 genutzen Trigger an
            add: fügt einen Trigger hinzu
         addoff: fügt einen Trigger hinzu (deaktiviert)
     addreplace: fügt oder ersetzt einen schon existierenden Trigger
           name: Name des Trigger
           hook: signal, hsignal, modifier, print, command, command_run, timer, config, focus
      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)
                 print: buffer, tags, message, strip colors
                 command: Befehl (erforderlich), Beschreibung, Argumente, Beschreibung der Argumente, Vervollständigung
                 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)
     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: zeigt Hooks/Trigger an (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 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 modifiers und focus)
      5. Aktion welche nach der Abarbeitung des Triggers ausgeführt werden soll

    Beispiele (die standardmäßig, eingebauten 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}" "==\*(\S+)\*==*${color:bold}${re:1}${color:-bold}*== ==_(\S+)_==_${color:underline}${re:1}${color:-underline}_== ==/(\S+)/==/${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*

#### 4.11.3. 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`, `print`, `command`, `command_run`, `timer`, `config`, `focus` | Der hook welcher durch Trigger genutzt werden soll. Für weitere Informationen siehe Anleitung für API Erweiterung, Kapitel Hooks.
`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_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

#### 4.11.4. 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 und focus)

5. Aktion welche nach der Abarbeitung des Triggers ausgeführt werden soll (falls der Wert abweichend von `none` sein sollte).

#### 4.11.5. Hook Argumente

Die Argumente sind abhängig von dem genutzten Hook und werden durch ein Semikolon getrennt.

Hook | Argumente | Beispiele
--- | --- | ---
signal | 1. Signalname (Priorität erlaubt) (erforderlich) 2. Signalname (Priorität erlaubt) 3. …​ | `*,irc_in_privmsg` `*,irc_in_privmsg;*,irc_in_notice` `signal_sigwinch`
hsignal | 1. Signalname (Priorität erlaubt) (erforderlich) 2. Signalname (Priorität erlaubt) 3. …​ | `nicklist_nick_added`
modifier | 1. modifier-Name (Priorität erlaubt) (erforderlich) 2. modifier-Name (Priorität erlaubt) 3. …​ | `weechat_print` `5000|input_text_display;5000|history_add`
print | 1. Buffername 2. Tags 3. Nachricht 4. entferne Farben (0/1) | `irc.freenode.*` `irc.freenode.#weechat` `irc.freenode.#weechat;irc_notice` `*;;;1`
command | 1. Befehlsname (Priorität erlaubt) (erforderlich) 2. Beschreibung 3. Argumente 4. Beschreibung der Argumente 5. Vervollständigung | `test` `5000|test`
command_run | 1. Befehl (Priorität erlaubt) (erforderlich) 2. Befehl (Priorität erlaubt) 3. …​ | `/cmd arguments`
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`
config | 1. Name der Option (Priorität erlaubt) (erforderlich) 2. Name der Option (Priorität erlaubt) 3. …​ | `weechat.look.*`
focus | 1. area Name (Priorität erlaubt) (erforderlich) 2. area Name (Priorität erlaubt) 3. …​ | `buffer_nicklist`

#### 4.11.6. Bedingungen

Bedingungen werden benötigt um einen Vorgang am Laufen zu halten oder um diesen 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_highlight} || ${tg_msg_pv}

#### 4.11.7. 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).
Sollte var nicht näher spezifiziert sein, wird die Standard-Variable genutzt, welche abhängig von dem genutzten Hook ist:

Hook | Standard-Variable
--- | ---
signal | `tg_signal_data`
hsignal |
modifier | `tg_string`
print | `tg_message`
command | `tg_argv_eol1`
command_run | `tg_command`
timer | `tg_remaining_calls`
config | `tg_value`
focus |

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

    /\*(\S+)\*/*${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=)(\S+)(.*)==${re:1}${hide:*,${re:4}}${re:5}

Note | In diesem Beispiel wird "==" als Trennzeichen verwendet, da ein "/" in dem regulären Ausdruck genutzt wird.

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

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

##### 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: "freenode").
`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}

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

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

##### 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 welche gesetzt werden, aufgrund der Nutzung von Tags in einer Nachricht (weechat_print nutzt ebenso diese Tag-Variablen):

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_notify` | string | Benachrichtigungsstufe, falls von none abweichend.
`tg_msg_pv` | string | "1" für eine private Nachricht, andernfalls "0".

##### Command

Der Callback von "command" legt folgende Variablen in der Hashtable an:

Variable | Typ | Beschreibung
--- | --- | ---
`buffer` | pointer | Buffer.
`tg_argvN` | string | Argument #N.
`tg_argv_eolN` | string | von Argument #N bis zum Ende der Argumente.

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

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

##### Config

Der Callback von "config" legt folgende Variablen in der Hashtable an:

Variable | Typ | Beschreibung
--- | --- | ---
`tg_option` | string | Option.
`tg_value` | string | Wert.

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

#### 4.11.10. Beispiele

##### URLs werden eingefärbt

Zeigt URLs in grün an:

    /trigger add url_color modifier weechat_print "${tg_notify}" "==\S+://\S+==${color:green}${re:0}${color:reset}=="

Note | Dies ist ein einfacher regulärer Ausdruck der möglicherweise nicht alle URLs erkennt, dafür ist er aber wesentlich schneller als ein komplexer regulärer Ausdruck.

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

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

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

### 4.12. Xfer Erweiterung

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

#### 4.12.1. Optionen (xfer.conf)

Sektionen:

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: "freenode.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 für eingehende Dateien: "%h" wird durch das WeeChat Verzeichnis ersetzt (Standardpfad: "~/.weechat") (Hinweis: Inhalt wird evaluiert, siehe /help eval)

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette

  - Standardwert: `"%h/xfer"`

- xfer.file.upload_path

  - Beschreibung: Pfad für ausgehende Dateien (falls kein Pfad durch den Anwender angegeben wurde): "%h" wird durch das WeeChat Verzeichnis ersetzt (Standardpfad: "~/.weechat") (Hinweis: Inhalt wird evaluiert, siehe /help eval)

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

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

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

## 5. 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 chat.freenode.net:

- 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/dev/support