# WeeChat Benutzerhandbuch

Sébastien Helleu
`<flashcode@flashtux.org>`
version 0.4.2, 2013-10-25

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

Die aktuelle Version dieser Anleitung finden Sie auf: http://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:

- mehrere Protokolle werden unterstützt (IRC, Jabber)

- 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 and 2813

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

- 100% GPL, freie Software

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

### 1.2. Vorbereitung

Um WeeChat zu installieren wird folgendes benötigt:

- ein laufendes GNU/Linux System (mit Kompilierungswerkzeugen für Quellpakete), oder ein kompatibles OS

- root Privilegien (um WeeChat im Systemverzeichnis zu installieren)

- ncurses Bibliothek

## 2. Installation

### 2.1. Binärpaket

Binärpakete sind für folgende Distributionen erhältlich:

- Debian (oder Debian kompatible Distribution): `apt-get install weechat-curses`

- Mandriva/RedHat (oder eine RPM kompatible Distribution): `rpm -i /path/to/weechat-x.y.z-1.i386.rpm`

- Gentoo: `emerge weechat`

- Arch Linux: `pacman -S weechat`

- Fedora Core: `yum install weechat`

- Sourcemage: `cast weechat`

zusätzliche Pakete können/sollten installiert werden. Zum Beispiel: weechat-plugins.

Für andere Distributionen schauen Sie bitte in die jeweilige Anleitung, wie Pakete installiert werden können.

### 2.2. Quellpakete

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

#### 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
--- | --- | --- | ---
cmake |  | ja | Zum kompilieren (autotools ist möglich. cmake wird aber empfohlen)
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
libgcrypt11-dev |  | ja | Geschützte Daten, IRC SASL Authentifikation (DH-BLOWFISH/DH-AES), Skript-Erweiterung
libgnutls-dev | ≥ 2.2.0 |  | SSL Verbindung zu einem IRC Server, Unterstützung von SSL in der Relay-Erweiterung
gettext |  |  | Internationalisierung (Übersetzung der Mitteilungen; Hauptsprache ist englisch)
ca-certificates |  |  | Zertifikate für SSL Verbindungen
libaspell-dev oder libenchant-dev |  |  | Aspell Erweiterung
python-dev | ≥ 2.5 (3) |  | Python Erweiterung
libperl-dev |  |  | Perl Erweiterung
ruby1.9.1-dev | ≥ 1.8 |  | Ruby Erweiterung
liblua5.1-0-dev |  |  | Lua Erweiterung
tcl-dev | ≥ 8.5 |  | Tcl Erweiterung
guile-2.0-dev | ≥ 2.0 |  | Guile (scheme) Erweiterung
asciidoc | ≥ 8.5.0 |  | Zum Erstellen der man page und der Dokumentation
source-highlight |  |  | Syntax Highlight für Quelltext in Dokumentation
xsltproc, docbook-xml, docbook-xsl |  |  | Erstellt man page

Anmerkung

(1) Paketnamen wurden von der Debian GNU/Linux Distribution übernommen. Versionen und Paketnamen können für andere Distributionen abweichend sein.
(2) WeeChat kann auch mit libncurses5-dev kompiliert werden. Dies wird aber NICHT empfohlen (es treten dabei Darstellungsfehler mit breiten Zeichen auf).
(3) Die empfohlene Version ist 2.7 (alle Skripten laufen mit der Version 2.7, aber nicht mit Version ≤ 2.6 oder ≥ 3.0).

#### 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 .. -DPREFIX=/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.
`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_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_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_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_RMODIFIER` | `ON`, `OFF` | `ON` | kompiliert Rmodifier 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).
`ENABLE_TCL` | `ON`, `OFF` | `ON` | kompiliert Tcl Erweiterung.
`ENABLE_XFER` | `ON`, `OFF` | `ON` | kompiliert Xfer Erweiterung.

Weitere Optionen können mit folgendem Befehl angezeigt werden:

    $ cmake -LA

oder mittels der Curses-Oberfläche:

    $ ccmake ..

#### 2.2.3. Kompilieren mit autotools

Warnung | Ausschließlich das Kompilieren mittels cmake wird offiziell unterstützt. Autotools sollte nur verwendet werden, falls man keine Möglichkeit hat, cmake zu nutzen. Das Erstellen mittels autotools benötigt zusätzliche Pakete und es ist langsamer als cmake.

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

    $ ./autogen.sh
    $ ./configure
    $ make
    % make install    (als root)

- Installation in ein benutzerdefiniertes Verzeichnis:

    $ ./autogen.sh
    $ ./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 gewarnt!

Um die Git Quellen zu beziehen nutzen Sie folgende Befehle:

    $ git clone git://git.sv.gnu.org/weechat.git

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

### 2.4. Abstürze melden

Falls es zu einem Absturz von WeeChat gekommen ist 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 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

Anmerkung | Ist das Binärpaket weechat-dbg (z.B. Debian) installiert dann sollte dieser Pfad zum starten von WeeChat genutzt werden: /usr/lib/debug/usr/bin/weechat

Nun startet man gdb und führt den Befehl `bt full` innerhalb gdb 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 (Voreinstellung: ~/.weechat) in dem die Erweiterungen, Skripten, Protokolldateien etc.pp. gesichert werden. Sollte das Verzeichnis nicht existieren wird es beim Start angelegt.

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

  startet einen oder mehrere Befehle, 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 mittels Sitzungsdateien, die mit dem Befehl `/upgrade -quit` erstellt wurden, durch.

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

Beispiel des WeeChat-Terminals:

    ┌─────────────────────────────────────────────────────────────────────────────────────────┐
    │Welcome to #test, this is a test channel                                                 │ ◀ Bar "title"
    │12:52:27   --> | Flashy (flashcode@weechat.org) has joined #test                 │@Flashy│
    │12:52:27    -- | Nicks #test: [@Flashy @joe +weebot]                             │@joe   │
    │12:52:27    -- | Channel #test: 4 nicks (2 ops, 0 halfop, 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                                                           │       │
    │                                                                                 │       │
    │                                                                                 │       │
    │                                                                                 │       │
    │                                                                                 │       │ ◀ Chat + Bar "nicklist"
    │                                                                                 │       │
    │                                                                                 │       │
    │                                                                                 │       │
    │                                                                                 │       │
    │                                                                                 │       │
    │                                                                                 │       │
    │                                                                                 │       │
    │                                                                                 │       │
    │                                                                                 │       │
    │                                                                                 │       │
    │[12:55] [6] [irc/freenode] 3:#test(+n){4}* [Act: 4:#abc(2,5), 6]                         │ ◀ Bar "status"
    │[@Flashy] hi peter!█                                                                     │ ◀ Bar "input"
    └─────────────────────────────────────────────────────────────────────────────────────────┘

Der Bildschirm setzt sich aus folgenden Bereichen zusammen:

- Chat-Bereich (in der Mitte des Bildschirms) enthält den geschrieben Text und für jede Zeile:

  - die Uhrzeit

  - Prefix (links von dem "|")

  - Nachricht (rechts von dem "|")

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

     [6]

Anzahl der geöffneten Buffer

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 Nickliste

buffer_filter

     *

Filteranzeige: `*` bedeutet das Zeilen gefiltert (unterdrückt) wurden. Ein leerer Eintrag zeigt an dass alle Zeilen dargestellt werden

lag

     [Lag: 2.5]

Verzögerungsanzeige, in Sekunden (keine Anzeige falls Verzögerung gering)

hotlist

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

scroll

     -MORE(50)-

Scroll Indikator, zeigt an wie viele Zeilen unterhalb der zur Zeit dargestellten Zeile vorhanden sind

In der input Bar lautet die Standardeinstellung:

Item | Beispiel | Beschreibung
--- | --- | ---

input_paste

     [Paste 7 lines ? [ctrl-Y] Ja [ctrl-N] Nein]

Nachfrage ob sieben Zeilen eingefügt werden sollen

input_prompt

     [@Flashy]

Input prompt (Nickname für den IRC)

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_text

     hi peter!

Text der eingegeben wird

### 3.3. Buffer und Fenster

Ein Buffer besteht aus einer Nummer, besitzt einem Namen, hat Zeilen die angezeigt werden (und noch anderen Daten).

Beispiele von Buffern:

- Core Buffer (wird durch WeeChat beim Starten 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`):

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

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

    ┌─────────────────────────────────────────────────────────────────────────────────────────┐
    │Welcome to #test, this is a test channel    │Welcome to #abc, channel about nothing!     │
    │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│12:55:32     Max | how are you?     │       │
    │                                    │peter  │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │[12:55] [6] [irc/freenode] 3:#test(+n){4}   │[12:55] [6] [irc/freenode] 4:#abc(+n){2}    │
    │[@Flashy] hi peter!█                        │[@Flashy]                                   │
    └─────────────────────────────────────────────────────────────────────────────────────────┘
                    ▲ Fenster #1                                   ▲ Fenster #2
                      (Buffer #3)                                   (Buffer #4)

Beispiele für eine vertikale und horizontale Fensteraufteilung:

    ┌─────────────────────────────────────────────────────────────────────────────────────────┐
    │Welcome to #test, this is a test channel    │Welcome to #def, another channel            │
    │12:54:15 peter | hey!               │@Flashy│12:55:42 @Flashy | hello world      │@Flashy│
    │12:55:01  @joe | hello              │@joe   │12:55:56    alex | hi Flashy        │alex   │
    │                                    │+weebot│                                    │       │
    │                                    │peter  │                                    │       │ ◀ Fenster #3
    │                                    │       │                                    │       │   (Buffer #5)
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │                                    │       │[12:55] [6] [irc/freenode] 5:#def(+n){2}    │
    │                                    │       │[@Flashy]                                   │
    │                                    │       │────────────────────────────────────────────│
    │                                    │       │Welcome to #abc, channel about nothing!     │
    │                                    │       │12:55:12     Max | hi               │@Flashy│
    │                                    │       │12:55:20 @Flashy | hi Max!          │Max    │
    │                                    │       │12:55:32     Max | how are you?     │       │
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │ ◀ Fenster #2
    │                                    │       │                                    │       │   (Buffer #4)
    │                                    │       │                                    │       │
    │                                    │       │                                    │       │
    │[12:55] [6] [irc/freenode] 3:#test(+n){4}   │ [12:55] [6] [irc/freenode] 4:#abc(+n){2}   │
    │[@Flashy] hi peter!█                        │ [@Flashy]                                  │
    └─────────────────────────────────────────────────────────────────────────────────────────┘
                    ▲ Fenster #1
                      (Buffer #3)

### 3.4. Bars

Eine Bar ist ein Bereich, der neben dem 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.4.1. Items

Die Option items ist ein String, mit einer Anzahl von Bar-Items. Diese werden durch Komma voneinander getrennt (auf dem Bildschirm wird das Komma durch ein Leerzeichen ersetzt). Möchte man die Items ohne Leerzeichen darstellen, nutzt man ein "+", zwischen den Items.

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: Nickliste 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.4.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}        │
    └──────────────────────────────────────────────────┘
                    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}        │
    └──────────────────────────────────────────────────┘
            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.4.3. Bedingungen

Die Option conditions ist eine Zeichenkette die direkten Einfluss darauf nimmt, ob die Bar in einem Fenster dargestellt wird oder nicht (diese Option kann nur für Bars vom Typ window genutzt werden).

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 Nickliste 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 Nickliste 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.5. Benachrichtigungsstufen

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.6. Standard Tastenbelegung

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

Taste | Beschreibung | Befehl
--- | --- | ---

←

setzt den Cursor eine Position nach links

     /input move_previous_char

Ctrl+b

→

setzt den Cursor eine Position nach rechts

     /input move_next_char

Ctrl+f

Ctrl+←

springt in der Befehlszeile zum Anfang des vorherigen Wortes

     /input move_previous_word

Alt+b

Ctrl+→

springt in der Befehlszeile zum Anfang des nächsten Wortes

     /input move_next_word

Alt+f

Home

springt zum Anfang der Befehlszeile

     /input move_beginning_of_line

Ctrl+a

End

springt ans Ende der Befehlszeile

     /input move_end_of_line

Ctrl+e

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 , r

fügt Steuerzeichen für Hintergrundfarbe ein

     /input insert \x12

Ctrl+c , u

fügt Steuerzeichen für unterstrichenen Text ein

     /input insert \x15

Del

entfernt in der Befehlszeile das nächste Zeichen

     /input delete_next_char

Ctrl+d

Backsp.

entfernt in der Befehlszeile das vorherige Zeichen

     /input delete_previous_char

Ctrl+h

Ctrl+k

entfernt alle Zeichen vom Cursor bis zum Ende der Zeile (Zeichenkette wird in Zwischenablage kopiert)

     /input delete_end_of_line

Ctrl+r

Textsuche im Verlaufsspeicher des Buffers (siehe Tasten für Such-Kontext)

     /input search_text

Ctrl+t

Zeichen austauschen

     /input transpose_chars

Ctrl+u

entfernt alle Zeichen vom Cursor bis zum Anfang der Zeile (Zeichenkette wird in Zwischenablage kopiert)

     /input delete_beginning_of_line

Ctrl+w

entfernt das Wort links vom Cursor (entferntes Wort wird in Zwischenablage kopiert)

     /input delete_previous_word

Ctrl+y

fügt Zeichenkette aus 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

führt einen Befehl aus oder sendet den Text (im Such-Modus: stoppt Suche)

     /input return

Ctrl+j
Ctrl+m

↑

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 (Zeichenkette wird in 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öschen

     /input delete_line

Alt+s

schaltet die Aspell Funktion an/aus

     /mute aspell toggle

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

Taste | Beschreibung | Befehl
--- | --- | ---

Ctrl+l (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 Buffers

     /window scroll_top

Alt+End

springt zur letzten Zeile des Verlaufsspeichers des aktuellen Buffers

     /window scroll_bottom

Alt+←

zum vorherigen Buffer springen

     /buffer -1

Alt+↑
Ctrl+p
F5

Alt+→

zum nächsten Buffer springen

     /buffer +1

Alt+↓
Ctrl+n
F6

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

Nickliste um eine Seite nach oben blättern

     /bar scroll nicklist * -100%

F12

Nickliste um eine Seite nach unten blättern

     /bar scroll nicklist * +100%

Alt+F11

springt zum Anfang der Nickliste

     /bar scroll nicklist * b

Alt+F12

springt zum Ende der Nickliste

     /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+l (L)

wechselt zum letzten Buffer

     /input jump_last_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+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

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

Suche abbrechen

     /input search_stop

Ctrl+j
Ctrl+m

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

Nickliste

verbannt nick (Ban)

     /window ${_window_number};/ban ${nick}

k

Nickliste

kickt nick

     /window ${_window_number};/kick ${nick}

K

Nickliste

kickt und verbannt nick

     /window ${_window_number};/kickban ${nick}

q

Nickliste

öffnet privaten Chat mit Nick

     /window ${_window_number};/query ${nick};/cursor stop

w

Nickliste

führt einen whois für Nick aus

     /window ${_window_number};/whois ${nick}

Enter

-

beendet den Cursor-Modus

     /cursor stop

Ctrl+j
Ctrl+m

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

◾◽◽

hoch

Nickliste

Nickliste um eine Seite nach oben blättern

     /bar scroll nicklist ${_window_number} -100%

◾◽◽

runter

Nickliste

Nickliste um eine Seite nach unten blättern

     /bar scroll nicklist ${_window_number} +100%

◾◽◽

hoch(lang)

Nickliste

springt zum Anfang der Nickliste

     /bar scroll nicklist ${_window_number} b

◾◽◽

runter(lang)

Nickliste

springt zum Ende der Nickliste

     /bar scroll nicklist ${_window_number} e

◾◽◽

-

Nickliste

öffnet privaten Chat mit Nick

     /window ${_window_number};/query ${nick}

◽◽◾

-

Nickliste

führt einen whois für Nick aus

     /window ${_window_number};/whois ${nick}

◾◽◽

links

Nickliste

kickt Nick

     /window ${_window_number};/kick ${nick}

◾◽◽

links(lang)

Nickliste

kickt und verbannt Nick

     /window ${_window_number};/kickban ${nick}

◽◽◾

links

Nickliste

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}

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

### 3.7. Mausunterstützung

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

#### 3.7.1. Mausunterstützung aktivieren

Um die Mausunterstützung beim Programmstart zu aktivieren:

    /set weechat.look.mouse on

Um die Mausunterstützung direkt zu aktivieren, kann man den Tastenkurzbefehl Alt+m nutzen oder folgenden Befehl ausführen:

    /mouse enable

Es ist möglich die Mausunterstützung kurzzeitig zu deaktivieren und dies auf einen Tastenkurzbefehl zu legen. Zum Beispiel soll über den Tastenkurzbefehl Alt+x die Mausunterstützung für 10 Sekunden deaktiviert werden:

    /key bind meta-x /mouse toggle 10

Ist die Mausunterstützung aktiviert kann man mittels gedrückter Shift-Taste (Umschalttaste) Text im Terminal markieren oder einfügen, als ob die Mausunterstützung deaktiviert sei (bei einigen Terminals muss die Alt-Taste anstelle der Shift-Taste gedrückt werden).

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

#### 3.7.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 /key Befehl).

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

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

Tipp | 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.8. Befehlszeile

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

#### 3.8.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.8.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:

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 , o

  deaktiviert Farben und Attribute

Ctrl+c , r

  Farben umkehren (kehrt Textfarbe und Hintergrundfarbe um)

Ctrl+c , u

  Text wird mit Unterstrich dargestellt

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

Code | IRC | WeeChat (curses)
--- | --- | ---
`00` | weiß | white
`01` | schwarz | black
`02` | dunkelblau | blue
`03` | dunkelgrün | green
`04` | hellrot | lightred
`05` | dunkelrot | red
`06` | magenta | magenta
`07` | orange | brown
`08` | gelb | yellow
`09` | hellgrün | lightgreen
`10` | türkis | cyan
`11` | hell türkis | lightcyan
`12` | hellblau | lightblue
`13` | hell magenta | lightmagenta
`14` | grau | gray
`15` | hellgrau | white

Beispiel: Im Buffer wird "Hallo an alle!" ausgegeben. Dabei wird "Hallo" in fett und hellblau und "an alle" rot und unterstrichen dargestellt.

    ^Cc12^CbHallo ^Cb^Cc04^Cuan alle^Cu^Cc!

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

### 3.9. 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 (1)
--- | --- | ---
"rxvt-unicode", "xterm",… | 88 | 256
"rxvt-256color", "xterm-256color",… | 256 | 32767
"screen" | 8 | 64
"screen-256color" | 256 | 32767

Anmerkung | (1) Auch falls die Terminal-Emulation mehr als 256 Farbpaare unterstützten sollte können lediglich 256 Farbpaare durch WeeChat genutzt werden, dies ist eine Einschränkung von ncurses.

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

- screen wird nicht genutzt: xterm-256color, rxvt-256color, putty-256color,…

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

Enthält die TERM-Umgebungsvariable einen falschen Wert und WeeChat wird bereits ausgeführt, keine Panik! Mittels dem Skript shell.py kann eine Änderung der Umgebungsvariable durchgeführt werden, ohne das WeeChat neu gestartet werden muss:

    /shell setenv TERM=screen-256color
    /upgrade

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

- `_` : 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.10. Optionen und Befehle

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

Sektionen:

section | Control command | 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 Option 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 Option deaktiviert werden, um immer den selben Dateiinhalt zu erhalten`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

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

Sektionen:

Section | Control command | 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 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 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 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 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 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 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 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 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 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 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 unterstrichen (Standardwert: `darkgray`)

- 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 unterstrichen (Standardwert: `darkgray`)

- weechat.color.chat_nick

  - Beschreibung: `Farbe für Nicks im 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 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 im Buffer die Offline sind (dies betrifft Nicks, die nicht in der Nickliste vorhanden 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 unterstrichen (Standardwert: `darkgray`)

- weechat.color.chat_nick_offline_highlight

  - Beschreibung: `Textfarbe für Highlight Nachrichten von Nicks die nicht mehr Online 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 unterstrichen (Standardwert: `default`)

- weechat.color.chat_nick_offline_highlight_bg

  - Beschreibung: `Hintergrundfarbe für Highlight Nachrichten von Nicks die nicht mehr Online 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 unterstrichen (Standardwert: `darkgray`)

- 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 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 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 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 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 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 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 unterstrichen (Standardwert: `darkgray`)

- 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 unterstrichen (Standardwert: `cyan`)

- weechat.color.emphasized

  - Beschreibung: `Textfarbe um Text hervorzuheben (zum Beispiel bei der Textsuche); wird ausschließlich dann genutzt, falls die Option 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 unterstrichen (Standardwert: `yellow`)

- weechat.color.emphasized_bg

  - Beschreibung: `Hintergrundfarbe um Textpassagen hervorzuheben (zum Beispiel bei der Textsuche); wird ausschließlich dann genutzt, falls die Option 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 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 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 unterstrichen (Standardwert: `red`)

- 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 unterstrichen (Standardwert: `cyan`)

- weechat.color.nicklist_group

  - Beschreibung: `Textfarbe für Gruppen in Nickliste`

  - Typ: Farbe

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

- weechat.color.nicklist_offline

  - Beschreibung: `Textfarbe von Nicknamen die Offline 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 unterstrichen (Standardwert: `blue`)

- 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 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 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 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 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 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 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 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 unterstrichen (Standardwert: `default`)

- weechat.color.status_data_private

  - Beschreibung: `Farbe eines Bufffers 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 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 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 unterstrichen (Standardwert: `yellow`)

- 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 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 unterstrichen (Standardwert: `lightgreen`)

- 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 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 unterstrichen (Standardwert: `default`)

- weechat.completion.base_word_until_cursor

  - Beschreibung: `ist diese Option aktiviert wird ein zu vervollständigendes Wort in den fließenden Text, mit einem Leerzeichen, hinzugefügt. Ist diese Option 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.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_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: `Zeitangabe, 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)`

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

  - Typ: integer

  - Werte: 0 .. 2147483647 (Standardwert: `4096`)

- weechat.history.max_commands

  - Beschreibung: `maximale Anzahl an Befehlen im Verlaufsspeicher (0: kein Begrenzung)`

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

  - Beschreibung: `Zeichen welches anzeigt, dass die Bar nach unten 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.bar_more_left

  - Beschreibung: `Zeichen welches anzeigt, dass die Bar nach links 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.bar_more_right

  - Beschreibung: `Zeichen welches anzeigt, dass die Bar nach rechts 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.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.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_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 Option 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 Nickliste 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 Option aktiviert ist, wird echtes weiß als Farbe genutzt. Standardmäßig ist diese Option 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 Option 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.confirm_quit

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

  - 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 Option, dann wird "eat_newline_glitch" auf 0 gesetzt; dies bedeutet, dass am Ende einer Zeile kein Zeilenumbruch an gehangen wird und somit der Text beim kopieren aus WeeChat und beim einfügen in einer anderen Applikation nicht umgebrochen wird (diese Option 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 unterstrichen); falls die Option weechat.look.emphasized_attributes keinen Eintrag besitzt, werden die Farben genutzt die durch colors 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; Beipiel: "test,(?-i)*toto*,flash*"`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `""`)

- weechat.look.highlight_regex

  - Beschreibung: `Suchmuster (regulärer 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: `durch Kommata getrennte Liste der hervorzuhebenden Wörter (Groß-/Kleinschreibung wird nicht beachtet. Beispiele: "irc_notice" für IRC Nachrichten, "nick_flashcode" für Nachrichten vom Nick "FlashCode")`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `""`)

- weechat.look.hotlist_add_buffer_if_away

  - Beschreibung: `fügt einen beliebigen Buffer zur Hotlist hinzu (dies schließt den aktuellen oder jeden anderen sichtbaren Buffer ein), sofern die lokale Variable "away" für den Buffer gesetzt wurde`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

- 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 .. 32 (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 Option 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_short_names

  - Beschreibung: `ist diese Option 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_asc (Standardwert), group_time_desc, group_number_asc, group_number_desc, number_asc, number_desc)`

  - 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 Option 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 Option 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 Option 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_buffer_filter

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

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `"*"`)

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

  - 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: `springt zurück zum Ausgangsbuffer, falls keine weiteren Einträge in der Hotlist vorhanden sind`

  - 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.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_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_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: `off`)

- 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.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 Option 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 automatisch 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. Wide Chars sind für diese Option NICHT erlaubt`

  - 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. Wide Chars sind für diese Option NICHT erlaubt`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `""`)

- weechat.look.set_title

  - Beschreibung: `setzt den Fenstertitel (oder Terminal-Titel im Curses-GUI), mit Name und Version`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

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

  - Beschreibung: `ist die Option aktiviert dann wird eine horizontale Trennlinie zwischen Fenstern gezeichnet`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

- weechat.look.window_separator_vertical

  - Beschreibung: `ist die Option aktiviert dann wird eine vertikale Trennlinie zwischen Fenstern gezeichnet`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

- 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 Script-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. Suchmuster können mit einem Joker ("*") beginnen oder enden um mehrere Erweiterungen zu laden (Beispiele: "*" oder "*,!lua,!tcl")`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `"*"`)

- weechat.plugin.debug

  - Beschreibung: `aktiviert Debug-Nachrichten für alle Erweiterungen (diese Option 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 deinstalliert 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.10.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>[,<condition>] <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 Merkmalen (siehe unten)
        condition: Merkmal(e) für eine Infobar (nur nutzbar mit der Type-Option "window"):
                     active: in einem aktiven Fenster
                   inactive: in einem inaktiven Fenster
                   nicklist: in Fenstern mit einer Nickliste
                   weitere Merkmale: siehe /help weechat.bar.xxx.conditions und /help eval
                   ohne Angabe von Merkmalen 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 der Option "-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 Nickliste 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]
             move|merge <number>
             swap <number1>|<name1> [<number2>|<name2>]
             unmerge [<number>|-all]
             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)
        swap: tauscht zwei Buffer miteinander aus (bei Angabe von nur einem Buffer (Buffernummer/-name), wird der aktuelle Buffer mit dem angegebenen Buffer getauscht)
       merge: fügt den aktuellen Buffer mit einem anderen Buffer zusammen (bei einem Chat-Buffer entsteht ein Mix aus beiden Buffern
             (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
       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 Option "weechat.look.jump_current_to_previous_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
      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

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

    /color  alias <color> <name>
            unalias <color>
            reset
            -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: Aliasname 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 Option: weechat.look.color_pairs_auto_reset)
         -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  <plugin> <command>

     plugin: Name der Erweiterung ('weechat' für interne WeeChat Befehle)
    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.

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

`debug` Debug-Kontrolle für Hauptprogramm und/oder Erweiterung

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

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

`eval` wertet eine Expression aus und zeigt das Resultat im Buffer an

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

            -n: zeigt das Ergebnis lokal an, ohne das dieses in den Buffer gesendet wird (debug Modus)
            -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)
      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 Ausdruck überein
                    !~  stimmt NICHT mit regulärem Ausdruck überein

    Ein Ausdruck gilt als "wahr", sofern das Ergebnis nicht NULL, nicht 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 Farbe (Format: color:xxx)
      2. der Name einer Option (Format: file.section.option)
      3. der Name einer lokalen Variablen eines Buffer
      4. ein hdata Name/Variable (der Wert wird automatisch als Zeichenkette konvertiert), Standardmäßig wird für "window" und "buffer" das aktuelle Fenster/Buffer verwendet.
    Das Format für hdata kann wie folgt lauten:
      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
    Die vorhandenen Namen für hdata und Variablen sind in der "Anleitung für API Erweiterung", Bereich "weechat_hdata_get". beschrieben

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

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

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

       list: alle Filter auflisten
     enable: Filter wird aktiviert (Filter werden standardmäßig aktiviert)
    disable: Filter deaktivieren
     toggle: Filter de-/aktivieren
       name: Name des Filters
        add: Filter hinzufügen
        del: Filter entfernen
       -all: entfernt alle Filter
     buffer: durch Kommata getrennte Liste von Buffern in denen der Filter aktiv sein soll:
             - ist der vollständige Name eines Buffers inklusive seiner Erweiterung (Beispiel: "irc.freenode.#weechat")
             - "*" anwenden auf alle Buffer
             - beginnt ein Name mit '!' wird für diesen Buffer kein Filter genutzt
             - ein Name darf mit '*' beginnen oder enden um mehrere Buffer auszuwählen
       tags: durch Kommata  getrennte Liste von Schlagwörtern. Zum Beispiel: "irc_join,irc_part,irc_quit"
      regex: regulärer 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.

    Die Tastenvoreinstellung alt+'=' schaltet die Filterfunktion an/aus.

    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,
      nick_xxx (xxx ist durch den Nicknamen zu ersetzen), prefix_nick_ccc (ccc ist die Farbe mit der der Nick dargestellt wird),
      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 zu lassen.

    Beispiele:
      aktiviert einen einfachen IRC Filter für join/part/quit/nick Nachrichten für alle Buffer:
        /filter add irc_smart * irc_smart_filter *
      aktiviert einen einfachen IRC Filter für join/part/quit/nick Nachrichten der für alle Buffer genutzt wird, 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 Zeilen die "weechat sucks" im IRC Channel #weechat enthalten:
        /filter add sucks irc.freenode.#weechat * weechat sucks

`help` Zeigt einen Hilfstext für Befehle und Optionen 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 Option (nutze /set um Optionen 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 Funktionen:
      return: simuliert die "enter" Taste
      complete_next: vervollständigt Wort mit nächster Komplettierung
      complete_previous: vervollständigt Word mit vorheriger Komplettierung
      search_text: sucht nach Text 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: suche stoppen
      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 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: springt zum letzten Buffer, in der Bufferliste
      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 Hotliste (Aktivitätsanzeige für die Buffer)
      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
      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:Schlussel". "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 zu nutzende Schlüssel kann mit '*' beginnen oder enden 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-x" wird die Nicklist-Bar an-und aus geschaltet:
        /key bind meta-x /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` Layout für Buffer und Fenster speichern, anwenden oder zurücksetzen

    /layout  save [<name>] [buffers|windows]
             apply [<name>] [buffers|windows]
             leave
             reset [<name>] [buffers|windows]
             rename <name> <new_name>

       save: speichert das aktuelle Layout
      apply: das gespeicherte Layout anwenden
      leave: belässt das aktuelle Layout (es wird kein Layout aktualisiert)
      reset: das gespeicherte Layout, mit Buffern und/oder Fenstern, zurücksetzen
             (falls Buffer und Fenster zurückgesetzt werden, dann wird das Layout entfernt)
     rename: ein Layout umbenennen
       name: Name unter welchem das Layout gesichert werden soll (Standardlayout lautet "default")
    buffers: speichert bzw. verwendet nur Buffer (Reihenfolge der Buffer)
    windows: speichert bzw. verwendet nur Fenster (Buffer welche im jeweiligen Fenster dargestellt werden)

    Wird der Befehl ohne Argumente aufgerufen wird das gespeicherte Layout dargestellt.

`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 Option  "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  [-current | -buffer <name> | -all] command

    -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")
        -all: Ausgabe wird in ALLEN Buffern unterdrückt
     command: Ein 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 (-current, -buffer oder -all), dann wird lediglich die Textausgabe im WeeChat Core Buffer 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/deinstallieren)

    /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: installiert eine Erweiterung erneut (falls kein Name angegeben wird, werden alle Erweiterungen entfernt und neu installiert)
       unload: deinstalliere eine oder alle Erweiterungen (wird kein Name angegeben dann werden alle Erweiterung entfernt)
     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.

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

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

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

    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:
      - Argument in der Befehlszeile für "--run-command"
      - Option weechat.startup.command_{before|after}_plugins
      - Proxy-Optionen: username, password
      - IRC Server Optionen: autojoin, command, password, sasl_{username|password}
      - Option relay.network.password
      - Befehl /eval.

    Beispiele:
      setzen einer 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}"
      alias um den eigenen Nick zu ghosten:
        /alias ghost /eval /msg -server freenode nickserv ghost meinNick ${sec.data.freenode}

`set` Konfigurationsparameter setzen

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

    option: Name der zu ändernden Option (um mehrere Optionen anzuzeigen, darf der Name mit einem Joker '*' beginnen oder enden)
     value: neuer Wert, den die Option erhalten soll
      diff: es werden nur Optionen angezeigt, die geändert wurden

    Abhängig von der ausgewählten Option, kann die Variable folgenden Inhalt haben:
      boolean: on, off oder toggle
      integer: Anzahl, ++Anzahl oder --Anzahl
      string : jede Zeichenkette ("" für eine leere Zeichenkette)
      color  : Name einer Farbe, ++Anzahl oder --Anzahl

    Für alle Typen von Variablen kann die Zeichenkette "null" (ohne "")  genutzt werden, um den Wert der Option zu löschen (undefinierter Wert). Dies kann nur auf einige besondere Variablen (Erweiterungen) angewendet werden.

    Beispiele:
      Zeigt alle Optionen an, die etwas mit highlight zu tun haben:
        /set *highlight*
      Fügt ein highlight-Wort hinzu:
        /set weechat.look.highlight "word"
      zeigt geänderte Optionen an:
        /set diff
      zeigt geänderte Optionen, der IRC Erweiterung, an:
        /set diff irc.*

`unset` Konfigurationsparameter freigeben/zurücksetzen

    /unset  <option>

    option: Name einer Option (darf mit Joker "*" beginnen oder enden um mehrere Optionen zurückzusetzen. Nutzen Sie diese Funktion mit äußerster Sorgfalt!)

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

    Beispiele:
      Eine Option zurücksetzen:
        /unset weechat.look.item_time_format
      Alle Farboptionen zurücksetzen:
        /unset weechat.color.*

`upgrade` Aktualisiert WeeChat ohne die Verbindung zum Server zu trennen

    /upgrade  [<path_to_binary>|-quit]

    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: sendet die WeeChat Laufzeit in den aktuellen Buffer (englisch)
    -ol: sendet die WeeChat Laufzeit in den aktuellen Buffer (in der voreingestellten Landessprache)

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

    /version  [-o | -ol]

     -o: sendet die WeeChat Version in den aktuellen Buffer (englisch)
    -ol: sendet die WeeChat Version in den aktuellen Buffer (in der Voreingestellten Landessprache)

`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 Zeit verzö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>] [+/-]<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>]

             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
           splitv: teilt das aktuelle Fenster vertikal
           resize: verändert die Größe des aktuellen Fensters. Die neue Größe des Fensters ist prozentual <pct> zum Stammfensters groß
          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%

    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

## 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
charset | Zeichensatz (de)-kodierung in Buffern
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
rmodifier | wandelt Schlüsselwörter mit regulären Ausdrücken
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
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` Einem Befehl wird ein Alias zugewiesen

    /alias  [-completion <completion>] <alias> [<command> [;<command>...]]

    completion: optionale Vervollständigung für einen Alias-Befehl (Standardverhalten: Vervollständigung wird auf den Zielbefehl angewendet)
                Hinweis: Mit der Variablen "%%command" kann eine Vervollständigung eines vorhandenen Befehls durchgeführt werden
         alias: Name des Alias (kann mit Joker "*" beginnen oder enden um Aliase aufzulisten)
       command: Name des zuzuordnenden Befehls (WeeChat- oder IRC-Befehl ohne führenden '/', mehrere Befehle müssen durch Semikolon getrennt werden)

    Ohne Angabe von Argumenten werden alle definierten Aliase angezeigt.

    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

    Um ein Alias zu löschen wird der Befehl "/unalias" genutzt.

    Beispiele:
      Alias "/split" wird anlegt um damit ein Fenster horizontal zu teilen:
        /alias split /window splith
      Alias "/hallo" wird angelegt um in allen Channels, außer im #weechat Channel, den Text "Hallo" auszugeben:
        /alias hallo /allchan -exclude=#weechat msg * Hallo
      Alias "/forcejoin" wird angelegt um den IRC Befehl "forcejoin" mit einer Vervollständigung von /sajoin auszuführen:
        /alias -completion %%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:

Section | Control command | 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)
`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 fest, für ein falsch geschriebenes Wort. Die Vorschläge werden in der Bar-Item "aspell_suggest", für die jeweilige(n) Sprache(n), im Buffer, angezeigt (-1 = deaktiviert die Funktion, 0 = zeigt alle verfügbaren Vorschläge an, für alle betreffenden Sprachen)`

  - 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 unterstrichen (Standardwert: `lightred`)

- aspell.color.suggestions

  - Beschreibung: `Textfarbe für die Vorschläge der Rechtsschreibkorrektur (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 unterstrichen (Standardwert: `default`)

#### 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 Aspell auf alle Buffer anzuwenden sollte die Option "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. 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.3.1. Optionen (charset.conf)

Sektionen:

Section | Control command | 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 (sollte keine Zeichendekodierung angegeben werden, wird UTF-8 verwendet, da WeeChat UTF-8 zur internen Dekodierung nutzt)`

  - 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.3.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.3.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 sich alle genutzten Zeichensätze anzeigen zu lassen wird folgender Befehl genutzt:

    /set charset.*

#### 4.3.4. Fehlersuche

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

### 4.4. Fifo Erweiterung

Sie können WeeChat fern steuern indem Sie Befehle oder einen Text an die FIFO Pipe schicken (dazu muss die Option "plugins.var.fifo.fifo" aktiviert sein (standardmäßig ist diese Option aktiviert).

Die FIFO pipe findet man in ~/.weechat/ und heisst weechat_fifo_xxxx (xxxx ist dabei die ID (PID) der laufenden WeeChat Session).

Die Syntax der FIFO Pipe Befehle/Text sieht wie folgt aus:

      plugin.buffer *hier Text oder Befehl
      *hier Text oder Befehl

einige Beispiele:

- Den eigenen Nick auf dem IRC Server freenode in "newnick" ändern:

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

- Den Text Hallo! in den Channel #weechat schreiben:

    $ echo 'irc.freenode.#weechat *Hallo!' >~/.weechat/weechat_fifo_12345

- Einen Text im aktuellen Buffer ausgeben:

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

- sendet zwei Befehle um alle Python-Skripten zu entfernen und dann neu zu laden (die beiden Befehle müssen mit "\n" getrennt werden):

    $ echo -e '*/python unload\n*/python autoload' >~/.weechat/weechat_fifo_12345

Das nachfolgende Skript sendet einen Befehl an alle laufenden WeeChat Instanzen:

    #!/bin/sh
    if [ $# -eq 1 ]; then
        for fifo in ~/.weechat/weechat_fifo_*
        do
            echo -e "$1" >$fifo
        done
    fi

Falls man das Skript "auto_weechat_command" benennt ruft man es wie folgt auf:

    $ ./auto_weechat_command 'irc.freenode.#weechat *Hallo'

### 4.5. 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.5.1. Kommandozeilen Befehle

Es ist möglich eine oder mehrere URL von IRC Servern zu übergeben:

    irc[6][s]://[nick[:password]@]irc.example.org[:port][/channel][,channel[...]]

Beispiel: Anmelden beim Server irc.freenode.net mit dem Nick nono und betreten der Channels #weechat und #toto (Standardport (6667) wird genutzt):

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

#### 4.5.2. Optionen (irc.conf)

Sektionen:

Section | Control command | 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 unterstrichen (Standardwert: `lightcyan`)

- irc.color.item_away

  - Beschreibung: `Farbe des Abwesenheit-Textes 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 unterstrichen (Standardwert: `yellow`)

- 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 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 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 unterstrichen (Standardwert: `yellow`)

- 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 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 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 angegeben) 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 Stardard-IRC-Farben von WeeChat: 0:weiß, 1:schwarz, 2:blau, 3:grün, 4:hellrot, 5:rot, 6:violett, 7:braun, 8:gelb, 9: hell-grün, 10:türkis, 11:hell-türkis, 12:hellblau, 13:hell-violett, 14:grau, 15:weiß`

  - 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" (falls ein Modus nicht gefunden wird versucht WeeChat die nächsten Modi die der Server sendet ("PREFIX"); ein spezieller Modus "*" kann als Standardfarbe genutzt werden falls kein Modus in der Liste gefunden wurde)`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `"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 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 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 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 unterstrichen (Standardwert: `darkgray`)

- 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 Nickfarbe des jeweiligen Nicks (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 Nickfarben in der Nicklist`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `off`)

- irc.look.color_nicks_in_server_messages

  - Beschreibung: `nutzt die Nickfarbe 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 in einer join Nachricht an`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

- irc.look.display_host_join_local

  - Beschreibung: `Zeigt den Host in join Nachrichten des lokalen Client an`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

- irc.look.display_host_quit

  - Beschreibung: `Zeigt den Host in 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: 329 = Erstellungsdatum des Channels, 332 = Topic, 333 = Nick/Datum für Topic, 366 = genutzte Namen 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). Die angegeben Wörter werden der lokalen Variable "highlight_words" hinzugefügt, sobald der Buffer geöffnet wird. Dies bedeutet, dass diese Option 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). Die angegeben Wörter werden der lokalen Variable "highlight_words" hinzugefügt, sobald der Buffer geöffnet wird. Dies bedeutet, dass diese Option 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). Die angegeben Wörter werden der lokalen Variable "highlight_words" hinzugefügt, sobald der Buffer geöffnet wird. Dies bedeutet, dass diese Option 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

  - Beschreibung: `durch Kommata getrennte Liste von Schlagwörtern, welche eine Nachricht hervorheben sollen (Highlight) (normalerweise trifft dies auf jede Nachricht eines Users zu, ausgenommen Nachrichten vom Server,..)`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `"irc_privmsg,irc_notice"`)

- irc.look.item_away_message

  - Beschreibung: `Abwesenheitsnachricht in der Away-Bar-Item anzeigen`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

- irc.look.item_channel_modes_hide_key

  - Beschreibung: `der Channel-Schlüssel wird nicht im Channel Modus angezeigt (diese Option unterdrückt alle Channel-Modi falls der Modus für den Channel auf +k gesetzt wurde)`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `off`)

- 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: `zeigt Nick-Modi in "input_prompt" Bar-Item`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

- irc.look.item_nick_prefix

  - Beschreibung: `der Nick-Präfix wird in "input_prompt" Bar-Item angezeigt`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

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

  - Beschreibung: `erzwingt für einen Nick eine spezielle Farbe. Die standardmäßig, mittels Streuwertfunktion aus dem Nicknamen, generierte Nickfarbe findet für diese Nicks keine Anwendung (Format:"Nick1:Farbe1;Nick2:Farbe2"). Zuerst wird beim Nicknamen nach Groß- und Kleinschreibung unterschieden. Sollte der Nick nicht gefunden werden, findet keine Unterscheidung mehr statt. Somit ist es möglich die Nicks, in dieser Option, ausschließlich in Kleinschrift zu schreiben`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `""`)

- irc.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: `sum`)

- irc.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: `"_|["`)

- 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" Option 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.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ückgabe durch Befehl ison), 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_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.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.alternate_nick

  - Beschreibung: `bezieht einen alternativen Nick, sofern alle voreingestellten Nicks am Server schon genutzt werden. Dazu wird das Zeichen "_" an den Nick an gehangen, sofern der Nick nicht mehr als neun Zeichen besitzt. Andernfalls wird das letzte bzw. vorletzte Zeichen durch eine Zahl zwischen 1 und 99 ersetzt, bis ein freier Nick für den Server gefunden wird`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

- 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 .. 86400 (Standardwert: `1800`)

- 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 Codes zu versenden (ctrl-c + Code und optional Farbe: b=fett, cxx=Farbe, cxx,yy=Farbe+Hintergrund, u=unterstrichen, r=invertiert)`

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

  - Typ: integer

  - Werte: 0 .. 604800 (Standardwert: `0`)

- irc.network.lag_refresh_interval

  - Beschreibung: `Intervall zwischen zwei Aktualisierungen der Verzögerungsanzeige (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.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: `on`)

- irc.server_default.addresses

  - Beschreibung: `Liste der Hostnamen/Ports oder IP/Ports des Servers (durch Komma getrennt)`

  - 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 der Channels, die beim Verbinden zum Server betreten werden sollen (Beispiel: "#chan1,#chan2,#chan3 key1,key2") (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. Fähigkeiten die von WeeChat unterstützt werden: multi-prefix, userhost-in-name (Beispiel: "multi-prefix, userhost-in-name")`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `""`)

- irc.server_default.command

  - Beschreibung: `enthält Befehle die nach der Verbindung zum Server 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, um z.B. eine Authentifizierung zu ermöglichen`

  - Typ: integer

  - Werte: 0 .. 3600 (Standardwert: `0`)

- irc.server_default.connection_timeout

  - Beschreibung: `Wartezeit (in Sekunden) zwischen einer TCP Verbindung mit dem Server und des Empfanges der "message 001" Nachricht. Falls die Wartezeit verstreichen sollte bevor die "message 001" Nachricht empfangen wurde dann wird WeeChat die Verbindung zum Server trennen`

  - Typ: integer

  - Werte: 1 .. 3600 (Standardwert: `60`)

- irc.server_default.default_msg_part

  - Beschreibung: `Standardnachricht beim Verlassen eines Channels ("%v": wird durch die WeeChat-Version ersetzt)`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `"WeeChat %v"`)

- irc.server_default.default_msg_quit

  - Beschreibung: `Standardnachricht beim Beenden (Verbindung zum Server trennen) ("%v": wird durch die WeeChat-Version ersetzt)`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `"WeeChat %v"`)

- irc.server_default.ipv6

  - Beschreibung: `bei der Kommunikation mit dem Server wird das IPv6 Protokoll genutzt (sollte IPv6 nicht genutzt werden können, wird automatisch auf IPv4 zurückgegriffen); 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.nicks

  - Beschreibung: `Nicknamen, die auf dem IRC-Server benutzt werden sollen (durch Komma getrennt)`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `""`)

- irc.server_default.notify

  - Beschreibung: `Liste mit Benachrichtigung für Server (diese Option 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: `Realen Namen bei diesem Server nutzen`

  - 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, "dh-blowfish" Passwort wird mittels blowfish verschlüsselt, "dh-aes" Passwort wird mittels AES verschlüsselt, "external" SSL Zertifikat welches auf Client Seite vorliegt, wird verwendet`

  - Typ: integer

  - Werte: plain, dh-blowfish, dh-aes, external (Standardwert: `plain`)

- irc.server_default.sasl_password

  - Beschreibung: `Passwort für SASL Authentifikation (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 (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_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"`)

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

  - Beschreibung: `Benutzername für diesen Server`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `""`)

#### 4.5.3. Befehle

`admin` Information über den Server-Administrator abfragen

    /admin  [<target>]

    target: Server

`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: führt einen Befehl aus der an alle Channels des aktuellen Servers gesendet wird
     -exclude: dient zum Ausschluss ausgewählter Channels ('*' wird zu Beginn oder am Ende des Channel-Namens akzeptiert, um mehrere Channels auszuschließen)
      command: Befehl der ausgeführt werden soll
    arguments: Argumente für Befehl (Variablen die genutzt werden können: $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

`allserv` führt einen Befehl aus, der zu allen verbundenen Server gesendet wird

    /allserv  [-exclude=<server>[,<server>...]] <command> [<arguments>]

     -exclude: dient zum Ausschluss ausgewählter Server ('*' wird zu Beginn oder am Ende des Servernamens akzeptiert, um mehrere Server auszuschließen)
      command: Befehl der ausgeführt werden soll
    arguments: Argumente für Befehl (Variablen die genutzt werden können: $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: Channel in dem der Bann ausgeführt werden soll
       nick: User oder Host für den der Bann gelten soll

    Ohne Angabe von Argumenten wird die Ban-Liste für den aktuellen Channel angezeigt.

`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 (Der Server sollte zuerst mittels "/server add" angelegt werden)
                - Hostname/Port oder IP/Port (damit wird lediglich ein TEMPORÄRER Server erstellt), Port 6667 wird standardmäßig verwendet
                - URL mit folgendem Format: irc[6][s]://[nickname[:password]@]irc.example.org[:port][/#channel1][,#channel2[...]]
        option: legt Option für den Server fest (die Boolean-Optionen können weggelassen werden)
      nooption: deaktiviert eine Boolean Option (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 Option "autoconnect" aktiviert ist
         -open: stellt eine Verbindung zu allen geöffneten Servern her, zu denen aktuell aber keine Verbindung besteht
       -nojoin: Channel(s) werden nicht betreten (auch falls die Funktion "autojoin" aktiviert sein sollte)
       -switch: wechselt zur nächsten Server-Adresse

    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  <target> <type> [<arguments>]

       target: User oder Channel an welchen eine CTCP-Nachricht geschickt werden soll
         type: CTCP-Nachricht (z.B. "version", "ping", ..)
    arguments: Argumente für CTCP

`cycle` Einen Channel verlassen und wieder betreten

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

    channel: Name des Channels
    message: Nachricht beim Verlassen des Channels (die den anderen Usern im Channel angezeigt wird)

`dcc` Startet DCC Verbindung (Datentransfer oder einen Direktchat)

    /dcc  chat <nick>
          send <nick> <file>

    nick: Empfänger einer Datei bzw. eines Chats
    file: zu versendende (lokal vorliegende) Datei

    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 (darf mit einem "*" als Platzhalter beginnen oder enden)
       *: 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 (darf mit einem "*" als Platzhalter beginnen oder enden)
       *: 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 (darf mit einem "*" als Platzhalter beginnen oder enden)
       *: 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: Name des Servers zu dem die Verbindung getrennt werden soll
      -all: Verbindung zu allen Servern trennen
    -pending: bricht eine  automatische Wiederverbindung für Server ab, zu denen gerade eine Wiederverbindung aufgebaut werden soll
    reason: Begründung der Trennung

`halfop` halb-Operator Status an Nick(s) vergeben

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

    nick: Nick oder Maske (darf mit einem "*" als Platzhalter beginnen oder enden)
       *: 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 regulärer 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: Nick welcher eingeladen werden soll
    channel: Channel für den die Einladung gelten soll

`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` Einen User aus einem Channel herauswerfen

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

    channel: Channel in dem der Benutzers sich befindet
       nick: Nick der rausgeworfen werden soll
     reason: Begründung für den Rauswurf

`kickban` wirft jemanden aus dem Channel und verbannt ihn

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

    channel: Channel in dem sich der User befindet
       nick: Nickname der rausgeworfen und gebannt werden soll
     reason: Begründung weshalb der User rausgeworfen wurde

    Es ist möglich kick/ban mittels einer Maske durchzuführen. Der Nick wird aus der Maske heraus gefiltert und durch Joker ("*") ersetzt.

    Beispiel:
      Sperre "*!*@host.com" und kicke dann "toto":
        /kickban toto!*@host.com

`kill` Beende Client-Server Verbindung

    /kill  <nick> <reason>

      nick: Nickname, der Person, die rausgeworfen werden soll
    reason: Begründung für den Rauswurf

`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: regulärer 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` Modus von einem Channel oder User ändern

    /mode  [<channel>] [+|-]o|p|s|i|t|n|m|l|b|e|v|k [<arguments>]
           <nick> [+|-]i|s|w|o

    Channel-Modi:
      channel: zu ändernder Channel (standardmäßig der erste Channel)
      o: vergebt oder 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 oder entzieht Voice (d.h. Schreibrechte bei moderierten Channels)
      k: legt ein Passwort für den Channel fest
    User-Modi:
      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 Modi 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: Nickname oder Channel
      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 (darf mit einem "*" als Platzhalter beginnen oder enden)
       *: 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  [-server <server>] <nick>[,<nick>...] [<text>]

    server: an diesen Server senden (interner Name)
      nick: Nickname für privaten Chat
      text: Text der gesendet werden soll

`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: Channel in dem jemanden das Wort entzogen werden soll
       nick: User oder Host dem das Wort entzogen werden soll

    Ohne Angabe von Argumenten wird, für den aktuellen Channel, eine Liste ausgegeben mit den User/Hosts denen das Wort entzogen worden ist.

`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
       -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 Option, die von manchen Servern berücksichtigt wird

`restart` Server dazu bringen sich selbst neu zu starten

    /restart  [<target>]

    target: Servername

`sajoin` zwingt einen User 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>
             del|keep <server>
             deloutq|jump|raw

        list: listet Server auf (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
    listfull: listet Server mit detaillierten Informationen über jeden einzelnen Server auf
         add: erstellt einen neuen Server
      server: Servername, dient der internen Nutzung und zur Darstellung
    hostname: Name oder IP-Adresse des Servers. Optional kann noch 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 Option auf "off" (Beispiel: -nossl)
        copy: erstellt eine Kopie des Servers
      rename: benennt den Server um
        keep: behält den Server in der Konfigurationsdatei (ausschließlich für die Nutzung bei temporären 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 oftc irc.oftc.net/6697 -ssl -autoconnect
      /server add oftc6 irc6.oftc.net/6697 -ipv6 -ssl
      /server add freenode2 chat.eu.freenode.net/6667,chat.us.freenode.net/6667
      /server add freenode3 irc.freenode.net -password=mypass
      /server copy oftc oftcbis
      /server rename oftc newoftc
      /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: Trennungsgrund

`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: Thema für den Channel
    -delete: entfernt das Thema des Channels

`trace` Route zum angegebenen Server ermitteln

    /trace  [<target>]

    target: Server

`unban` Bann aufheben (Nicks oder Hosts)

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

    channel: Channel in dem der Bann aufzuheben ist
       nick: User oder Host für den der Bann aufzuheben ist

`userhost` Zeigt Informationen zu Nicknamen an

    /userhost  <nick> [<nick>...]

    nick: Nickname

`users` Auflistung der User die bei dem Server angemeldet sind

    /users  [<target>]

    target: Server

`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 (darf mit einem "*" als Platzhalter beginnen oder enden)
       *: 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 (kann auch eine Maske sein)

    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.

`whowas` Informationen über einen nicht mehr angemeldeten Nicknamen abfragen

    /whowas  <nick>[,<nick>...] [<count> [<target>]]

      nick: Nickname, welcher gesucht werden soll
     count: maximale Anzahl an Antworten (negative Zahl für eine vollständige Liste)
    target: Antwort soll auf diese Suchmaske zutreffen

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

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

Hinweis: es ist möglich mehrere Zertifikate in der Datei CAs.pem zu halten.

- In WeeChat startet man nun eine Verbindung zum "oftc" Server (der vorher angelegt werden musste):

    /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 startet man nun eine Verbindung zum "oftc" Server (der vorher angelegt werden musste):

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

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

#### 4.5.5. SASL Authentifizierung

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

- plain: Passwort liegt in Klarschrift vor

- dh-blowfish: Passwort wird mittels blowfish verschlüsselt

- dh-aes: Passwort wird mittels AES verschlüsselt

- external: SSL Zertifikat welches auf Client Seite vorliegt

Optionen für Server sind:

- sasl_mechanism: Mechanismus welcher genutzt werden soll (siehe oben)

- sasl_timeout: Zeitüberschreitung für Authentifizierung (in Sekunden)

- sasl_username: Username (Nickname)

- sasl_password: Passwort

Soll "dh-blowfish" standardmäßig auf allen Servern angewandt werden:

    /set irc.server_default.sasl_mechanism dh-blowfish

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

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

Zuerst sollte man sicher gehen, dass WeeChat mit libgcrypt11-dev kompiliert wurde (sofern WeeChat aus den Quellen erstellt wurde); es ist nicht verpflichtend, allerdings bietet "dh-blowfish" eine größere Sicherheit als eine "plain" Authentifikation mittels SASL.

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

Nun erstellt man einen neuen Server, zum Beispiel:

    /server add freenode-tor p4fsi4ockecnea7l.onion

Der Proxy muss für TOR angelegt werden:

    /set irc.server.freenode-tor.proxy "tor"

Die SASL Authentifikation einstellen:

    /set irc.server.freenode-tor.sasl_mechanism dh-blowfish
    /set irc.server.freenode-tor.sasl_username "your_nickname"
    /set irc.server.freenode-tor.sasl_password "your_password"

Zum Abschluss stellt man eine Verbindung zum Server her:

    /connect freenode-tor

Um mehr über Freenode und TOR zu erfahren: http://freenode.net/irc_servers.shtml#tor

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

     http://www.weechat.org/

     $download

WeeChat, Download Seite

     http://www.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

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

     http://www.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.5.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)
`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
`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.6. 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.6.1. Optionen (logger.conf)

Sektionen:

Section | Control command | 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 unterstrichen (Standardwert: `darkgray`)

- 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 unterstrichen (Standardwert: `darkgray`)

- 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" Option genutzt wird um vollständige Verzeichnisstrukturen zu erstellen); lokale Buffer Variablen und Datumsspezifikationen (siehe: man strftime) sind zulässig`

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

  - 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.6.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 Optionen "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.6.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.6.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.7. 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 QWeeChat)

#### 4.7.1. Optionen (relay.conf)

Sektionen:

Section | Control command | 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 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 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 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 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 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 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 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 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 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_tags

  - Beschreibung: `Nachrichten-Tags welche im Verlaufsspeicher, für 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.allowed_ips

  - Beschreibung: `regulärer Ausdruck für IP Adressen die auf das Relay zugreifen dürfen (zwischen Groß- und Kleinschreibung nicht dabei nicht unterschieden. Um zwischen Groß-und Kleinschreibung zu unterscheiden muss am Wortanfang "(?-i)" genutzt werden) . Sollte IPv6 aktiviert sein und es wird eine IPv4 Verbindung aufgebaut, werden die IPv6 Adressen nach IPv4 gewandelt (siehe: "::ffff:127.0.0.1"), Beispiele: "^((::ffff:)?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.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`

  - Typ: integer

  - Werte: 1 .. 1024 (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) (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.websocket_allowed_origins

  - Beschreibung: `erlaubt regulären Ausdruck für Origins in WebSockets (Groß- und Kleinschreibung wird ignoriert, um Groß- und Kleinschreibung zu nutzen muss "(?-i)" dem Origin vorangestellt werden), Beispiele: "^http://(www\.)?example\.(com|org)"`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `""`)

#### 4.7.2. Befehle

`relay` Relay-Kontrolle

    /relay  list|listfull|listrelay
            add [ipv4.][ipv6.][ssl.]<protocol.name> <port>
            del [ipv4.][ipv6.][ssl.]<protocol.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
             ipv4: erzwingt die Nutzung von IPv4
             ipv6: erzwingt die Nutzung von IPv6
              ssl: aktiviert SSL
    protocol.name: Protokoll und Name des Relay:
                     - Protokoll "irc": Name des Servers welcher geteilt werden soll (optional). Wird kein Name angegeben, dann muss der Client den Servernamen mittels Befehl "PASS" anfordern. Format: "PASS Server:Passwort")
                     - Protokoll "weechat" (Name wird nicht unterstützt)
             port: Port den das Relay nutzen soll
              raw: öffnet Buffer mit RAW-Relay Daten
       sslcertkey: setzt SSL Zertifikat/Schlüssel mittels Eintrag in Option relay.network.ssl_cert_key

    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.7.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.7.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.7.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.7.6. WeeChat Protokoll

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

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.7.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.8. Rmodifier Erweiterung

Mittels der Rmodifer Erweiterung kann man Schlüsselwörter mittels regulären Ausdrücken wandeln. Ein typischer Anwendungsfall ist das Passwörter bei der Eingabe verborgen werden, oder das WeeChat diese verbirgt wenn sie im Befehlsverlauf gesichert werden. Ein einfaches Anwendungsbeispiel. Es ist möglich jedes einzelne Zeichen eines Passwortes durch das Zeichen `*` zu ersetzen.

#### 4.8.1. Optionen (rmodifier.conf)

Sektionen:

Section | Control command | Beschreibung
--- | --- | ---
`look` | `/set rmodifier.look.*` | Erscheinungsbild
`modifier` | `/rmodifier add /set rmodifier.modifier.*` | Rmodifiers

Optionen:

- rmodifier.look.hide_char

  - Beschreibung: `Zeichen, das anstelle der eigentlichen Eingabe angezeigt wird`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `"*"`)

#### 4.8.2. Befehle

`rmodifier` wandelt Schlüsselwörter mit regulären Ausdrücken (regelt die Darstellung von Texten in WeeChat)

    /rmodifier  list|listdefault
                add <name> <modifiers> <groups> <regex>
                del <name>|-all [<name>...]
                missing
                default -yes

           list: zeigt alle rmodifier an
    listdefault: zeigt die Standardeinstellung für rmodifier an
            add: einen rmodifier hinzufügen
           name: Name des rmodifier
      modifiers: durch Kommata getrennte Liste der modifier
         groups: Aktion auf Gruppen (groups) anwenden, die durch reguläre Ausdrücke abgefragt werden (innerhalb der runden Klammern): durch Kommata getrennte Liste der Gruppen (von 1 bis 9). Optional kann nach der Nummer für die Gruppe ein "*" gesetzt werden um diese Gruppe auszublenden
          regex: regulärer Ausdruck (zwischen Groß- und Kleinschreibung wird nicht unterschieden. Um zwischen Groß- und Kleinschreibung zu unterscheiden muss zu Beginn "(?-i)" genutzt werden)
            del: löscht einen rmodifier Eintrag
           -all: löscht alle rmodifiers Einträge
        missing: fügt fehlende rmodifiers hinzu
        default: setzt die rmodifier auf seine Standardwerte zurück

    Beispiele:
      verbirgt die Eingabe nach dem Befehl /passwort:
        /rmodifier add passwort input_text_display 1,2* ^(/passwort +)(.*)
      lösche rmodifier "passwort":
        /rmodifier del passwort
      lösche alle rmodifiers:
        /rmodifier del -all

#### 4.8.3. Erstellen eines rmodifier

Ein rmodifier besteht aus drei Elementen:

1. ein oder mehrere "modifiers"

2. ein regulärer Ausdruck um "Gruppen" zu erkennen

3. eine Zeichenkette die als Textausgabe von "Gruppen" erkannt werden soll

Um eine Auflistung der modifiers zu erhalten die von WeeChat oder einer Erweiterung genutzt werden siehe 'WeeChat Plugin API Reference, Funktion weechat_hook_modifier.

Für jede erkannte Gruppe sind folgende Aktionen möglich:

- Gruppe wird in der vorliegenden Form beibehalten (wenn man die Gruppennummer nutzt)

- alle Zeichen der Gruppe werden ersetzt um deren Inhalt zu verbergen (Gruppennummer + `*`)

- Gruppe wird entfernt (falls Gruppe nicht in Zeichenkette genutzt wird)

Beispiel der rmodifier-Standardeinstellung für den Befehl `/oper`:

- modifiers: `history_add,input_text_display`

  - `history_add`: wird aufgerufen sobald WeeChat einen Befehl im Befehlsverlauf sichert

  - `input_text_display`: wird aufgerufen sobald sich die Eingabezeile ändert (dies hat nur Einfluss auf die Darstellung aber nicht auf den Inhalt der Befehlszeile)

- regulärer Ausdruck: `^(/oper +\S+ +)(.*)`

- Gruppen: `1,2*`

Bei jedem Aufruf von "history_add" oder "input_text_display" durch modifier wird der reguläre Ausdruck überprüft. Stimmen die Zeichenketten überein wird die Zeichenkette durch das definierte Zeichen ersetzt.

In obigem Beispiel wird die Ausgabe für Gruppe 1 beibehalten und für die Gruppe 2 werden alle Zeichen ersetzt. Das Zeichen welches zum Ersetzten genutzt werden soll kann in der Konfiguration bestimmt werden (Option: rmodifier.look.hide_char).

Lautet die Befehlszeile `/oper nick password` wird diese in der Befehlszeile als `/oper nick ********` dargestellt.

### 4.9. Erweiterungen für Skripten

WeeChat unterstützt sechs Skript-Erweiterungen: Python, Perl, Ruby, Lua, Tcl und Guile (scheme). 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: http://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.9.1. Script Optionen (script.conf)

Sektionen:

Section | Control command | 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 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 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 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 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 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 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 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 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 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 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 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 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 unterstrichen (Standardwert: `darkgray`)

- 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Option 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 Option 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: `60`)

- script.scripts.dir

  - Beschreibung: `lokales Cache-Verzeichnis für Skripten`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `"%h/script"`)

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

  - Beschreibung: `URL für Datei mit Inhalt der unterstützten Skripten`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `"http://www.weechat.org/files/plugins.xml.gz"`)

#### 4.9.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 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 installierten Skripten, die obsolet sind (wenn 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.9.3. Python Befehle

`python` auflisten/installieren/deinstallieren 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: installiert automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut installiert (wird kein Name angegeben, dann werden alle Skripten entfernt und erneut installiert)
      unload: deinstalliert ein Skript (wird kein Name angegeben, dann werden alle Skripten deinstalliert)
    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.9.4. Perl Befehle

`perl` auflisten/installieren/deinstallieren 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: installiert automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut installiert (wird kein Name angegeben, dann werden alle Skripten entfernt und erneut installiert)
      unload: deinstalliert ein Skript (wird kein Name angegeben, dann werden alle Skripten deinstalliert)
    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.9.5. Ruby Befehle

`ruby` auflisten/installieren/deinstallieren 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: installiert automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut installiert (wird kein Name angegeben, dann werden alle Skripten entfernt und erneut installiert)
      unload: deinstalliert ein Skript (wird kein Name angegeben, dann werden alle Skripten deinstalliert)
    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.9.6. Lua Befehle

`lua` auflisten/installieren/deinstallieren 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: installiert automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut installiert (wird kein Name angegeben, dann werden alle Skripten entfernt und erneut installiert)
      unload: deinstalliert ein Skript (wird kein Name angegeben, dann werden alle Skripten deinstalliert)
    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.9.7. Tcl Befehle

`tcl` auflisten/installieren/deinstallieren 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: installiert automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut installiert (wird kein Name angegeben, dann werden alle Skripten entfernt und erneut installiert)
      unload: deinstalliert ein Skript (wird kein Name angegeben, dann werden alle Skripten deinstalliert)
    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.9.8. Guile Befehle

`guile` auflisten/installieren/deinstallieren 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: installiert automatisch alle Skripten aus dem "autoload" Verzeichnis
      reload: ein Skript wird erneut installiert (wird kein Name angegeben, dann werden alle Skripten entfernt und erneut installiert)
      unload: deinstalliert ein Skript (wird kein Name angegeben, dann werden alle Skripten deinstalliert)
    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. 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.10.1. Optionen (xfer.conf)

Sektionen:

Section | Control command | 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 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 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 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 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 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 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 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 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 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_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 von Dateien werden Leerzeichen im Dateinamen durch einen Unterstrich ersetzt`

  - Typ: boolesch

  - Werte: on, off (Standardwert: `on`)

- xfer.file.download_path

  - Beschreibung: `Pfad in welchem die ankommenden Dateien gespeichert werden ("%h" wird durch das WeeChat Verzeichnis ersetzt, Standardverzeichnis: "~/.weechat")`

  - Typ: Zeichenkette

  - Werte: beliebige Zeichenkette (Standardwert: `"%h/xfer"`)

- xfer.file.upload_path

  - Beschreibung: `Pfad in welchem sich die Quelldatei befindet (falls vom Anwender kein Pfad angegeben wurde) ("%h" wird durch das WeeChat Verzeichnis ersetzt, Standardverzeichnis: "~/.weechat")`

  - 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. 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.10.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 Sie um Unterstützung nachsuchen lesen Sie bitte die Dokumentation und die FAQ von WeeChat durch (mit Dokumentation ist dieses Dokument gemeint. Falls Sie nicht alles gelesen haben sollten und trotzdem diese Zeilen lesen, dann beginnen Sie bitte noch mal von vorne!).

Wie erhalte ich Unterstützung:

- IRC: Server irc.freenode.net, Channels #weechat (englisch) und #weechat-fr (französisch)

- Mailing Liste:

  - Bestellen: http://mail.nongnu.org/mailman/listinfo/weechat-support

  - sende email an: weechat-support@nongnu.org

  - Archiv: http://mail.nongnu.org/archive/html/weechat-support