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

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

1. Einleitung

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

1.1. Funktionen

wesentliche Merkmale:

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

1.2. Vorbereitung

Um WeeChat zu installieren wird folgendes benötigt:

2. Installation

2.1. Binärpaket

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

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

Für andere Distributionen schauen Sie bitte in die jeweilige Anleitung der Distribution, wie man Pakete installiert.

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) benötigt Funktion

cmake

ja

zum kompilieren (autotools ist möglich. cmake wird aber empfohlen)

libncursesw5-dev (2)

ja

ncurses Oberfläche

libgcrypt11-dev

nein

SASL Authentifikation am IRC Server mittels DH-BLOWFISH Methode

libgnutls-dev

nein

SSL Verbindung zu einem IRC Server

libaspell-dev

nein

aspell Erweiterung

libperl-dev

nein

perl Erweiterung

python-dev

nein

python Erweiterung

ruby1.8-dev

nein

ruby Erweiterung

liblua5.1-0-dev

nein

lua Erweiterung

tcl-dev

nein

tcl Erweiterung

asciidoc (>= 8.2)

nein

erstellt Dokumentation (HTML Dateien)

source-highlight

nein

Syntax highlight für Quelltext in HTML Dokumentation

Note
(1) Paketnamen wurden von der Debian GNU/Linux Distribution übernommen. Versions- 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).

2.2.2. Kompilieren mit cmake

$ mkdir build
$ cd build
$ cmake ..
$ make
% make install    (als root)
$ mkdir build
$ cd build
$ cmake .. -DPREFIX=/Pfad/zum/Verzeichnis
$ make
$ make install

2.2.3. Kompilieren mit autotools

$ ./configure
$ make
% make install    (als root)
$ ./configure --prefix=/Pfad/zum/Verzeichnis
$ make
$ make install

2.3. Git Quellen

Warnung: GIT Quellen sollten nur von erfahrenen Nutzern verwendet werden: evtl. 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

Sollten die autotools genutzt werden (und nicht cmake), muss dieses Skript ausgeführt werden:

$ ./autogen.sh

Dann folgen Sie der Anleitung für Quellpakete (siehe Quellpakete).

2.4. Abstürze melden

Falls ein Absturz mit WeeChat aufgetreten ist und Sie diesen Fehler melden wollen:

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 muss der ulimit Befehl genutzt werden.

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-curses 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-curses /home/xxx/core
Note
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-curses

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

3. Nutzung

3.1. WeeChat starten

Befehlszeile:

-a, --no-connect

deaktiviert das automatische Verbinden mit den Servern beim Start von WeeChat

-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

-k, --keys

zeigt die Standard-Tastaturbelegung an

-l, --license

zeigt die Lizenz von WeeChat an

-p, --no-plugin

unterbindet das Laden der Erweiterungen beim Programmstart

-s, --no-script

Skripten werden beim Programmstart nicht geladen

-v, --version

zeigt die Version von WeeChat an

plugin:option

Option für Erweiterung (siehe Dokumentation für weitere Einzelheiten)

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

$ weechat-curses

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

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

3.2. Screen layout

Beispiel des WeeChat-Terminals:

┌─────────────────────────────────────────────────────────────────────────────────────────┐
│Welcome to #test, this is a test channel                                                 │
│12:52:27    --> | flashy (n=flashcod@hellix.flashtux.org) has joined #test    │@ChanServ │
│12:52:27     -- | Nicks #test: [@ChanServ @flashy +_FlashB0t joe mike]        │@flashy   │
│12:52:27     -- | Channel #test: 5 nicks (2 ops, 0 halfop, 1 voice, 2 normal) │+_FlashB0t│
│12:52:27     -- | Channel created on Tue Jan 27 06:30:17 2009                 │joe       │
│12:54:15 flashy | hey!                                                        │mike      │
│12:55:01    joe | hi flashy!                                                  │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│                                                                              │          │
│[12:55] [4] [irc/freenode] 3:#test(+n){5}* [Act: 4,2]                                    │
│[flashy] hi joe!█                                                                        │
└─────────────────────────────────────────────────────────────────────────────────────────┘

Der Bildschirm setzt sich aus folgenden Bereichen zusammen:

Die status-Bar besitzt als Standardeinträge:

Item Beispiel Beschreibung

time

 [12:55]        

Uhrzeit

buffer_count

 [4]            

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(+n)      

Name des aktuellen Buffers

buffer_nicklist_count

 {5}            

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,2]     

Liste der Buffer mit Aktivität (ungelesene Nachrichten)

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

[nick]

input prompt (Nickname für den IRC)

away

(away)

Abwesenheitsanzeige

input_search

[Text search]

Textsuche

input_text

bla bla…

Text der eingegeben wird

3.3. Standard Tastenbelegung

3.3.1. Tastenbefehle für die Befehlszeile

Taste Beschreibung und Befehl

Pfeil links
Ctrl + B

setzt den Cursor eine Position nach links
/input move_previous_char

Pfeil rechts
Ctrl + F

setzt den Cursor eine Position nach rechts
/input move_next_char

Ctrl + Pfeil links
Alt + B

springt zum Anfang des vorherigen Wortes in der Befehlszeile
/input move_previous_word

Ctrl + Pfeil rechts
Alt + F

sprint zum Anfang des nächsten Wortes in der Befehlszeile
/input move_next_word

Home
Ctrl + A

sprint zum Anfang der Befehlszeile
/input move_beginning_of_line

End
Ctrl + E

springt ans Ende der Befehlszeile
/input move_end_of_line

Ctrl + C dann B

Fügt Steuerzeichen für fett geschrieben Text ein
/input insert \x02

Ctrl + C dann C

Fügt Steuerzeichen für Textfarbe ein
/input insert \x03

Ctrl + C dann I

Fügt Steuerzeichen für kursiven Text ein
/input insert \x1D

Ctrl + C dann O

Fügt Steuerzeichen für Standardfarbe ein
/input insert \x0F

Ctrl + C dann R

Fügt Steuerzeichen für Hintergrundfarbe ein
/input insert \x12

Ctrl + C dann U

Fügt Steuerzeichen für unterstrichenen Text ein
/input insert \x15

Delete
Ctrl + D

entfernt nächstes Zeichen in der Befehlszeile
/input delete_next_char

Backspace
Ctrl + H

entfernt vorheriges Zeichen in der Befehlszeile
/input delete_previous_char

Ctrl + K

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

Ctrl + R

Sucht nach einem Text in der Protokolldatei (zweimaliges Drücken: sucht nach exaktem Text)
/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 in Befehlszeile
/input undo

Alt + _

Wiederherstellen 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

jedwedes Zeichen

schreibt das Zeichen in die Befehlszeile

Enter
Ctrl + J
Ctrl + M

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

Pfeil hoch

ruft vorherigen Befehl oder Nachricht aus dem Befehlsspeicher auf (im Such-Modus: rückwärts suchen)
/input history_previous

Pfeil runter

ruft nächsten Befehl oder Nachricht aus dem Befehlsspeicher auf (im Such-Modus: vorwärts suchen)
/input history_next

Ctrl + Pfeil hoch

ruft vorherigen Befehl/Nachricht aus dem globalen Befehlsspeicher auf (für alle Buffer)
/input history_global_previous

Ctrl + Pfeil runter

ruft nächsten Befehl/Nachricht aus dem globalen Befehlsspeicher 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 (inklusive des eingebundenen Befehls) einer Tastenkombination an und fügt ihn in die Befehlszeile ein
/input grab_key_command

Alt + R

löscht komplette Eingabezeile
/input delete_line

3.3.2. Tastenbefehle für Buffer / Fenster

Keys Description and command

Ctrl + L

zeichnet das Fenster neu
/window refresh

Ctrl + S dann Ctrl + U

Setzt die ungelesen Markierung für alle Buffer
/input set_unread

Ctrl + X

sind mehrere Buffer zu einem Buffer zusammen gefügt wechselt man diese durch
/input switch_active_buffer

Seite hoch

Eine Seite im Buffer Verlaufsspeicher nach oben blättern
/window page_up

Seite runter

Eine Seite im Buffer Verlaufsspeicher nach unten blättern
/window page_down

Alt + Seite hoch

einige Zeilen im Buffer Verlaufsspeicher nach oben blättern
/window scroll_up

Alt + Seite runter

einige Zeilen im Buffer Verlaufsspeicher nach unten blättern
/window scroll_down

Alt + Home

springt zur ersten Zeile im Buffer Verlaufsspeicher
/window scroll_top

Alt + End

springt zur letzten Zeile im Buffer Verlaufsspeicher
/window scroll_bottom

Alt + Pfeil links
Alt + Pfeil hoch
Ctrl + P
F5

zum vorherigen Buffer springen
/buffer -1

Alt + Pfeil rechts
Alt + Pfeil runter
Ctrl + N
F6

zum nächsten Buffer springen
/buffer +1

F7

zum vorherigen Fenster wechseln
/window -1

F8

zum nächsten Fenster wechseln
/window +1

F9

Buffer Title nach links verschieben
/bar scroll title * x-50%

F10

Buffer Titel nach rechts verschieben
/bar scroll title * x+50%

F11

Nickliste um eine Seite nach oben scrollen
/bar scroll nicklist * y-100%

F12

Nickliste um eine Seite nach unten scrollen
/bar scroll nicklist * y+100%

Alt + F11

springt zum Anfang der Nickliste
/bar scroll nicklist * yb

Alt + F12

springt zum Ende der Nickliste
/bar scroll nicklist * ye

Alt + A

wechselt zum nächsten Buffer mit Aktivität (nach Priorität: highlight, Nachricht, …)
/input jump_smart

Alt + J dann Alt + L

wechselt zum letzten Buffer
/input jump_last_buffer

Alt + J dann Alt + R

wechselt zum IRC raw Buffer
/server raw

Alt + J dann Alt + S

wechselt zum IRC Server Buffer
/server jump

Alt + Ziffer (0-9)

wechselt zum Buffer mit der Nummer (0 = 10)
/buffer *N

Alt + J dann Ziffern (01-99)

wechselt zum Buffer mit der Nummer
/buffer NN

Alt + N

springe zur nächsten Highlight Nachricht
/window scroll_next_highlight

Alt + P

springe zur vorherigen Highlight Nachricht
/window scroll_previous_highlight

Alt + U

springe zur ersten ungelesenen Zeile im Buffer
/input scroll_unread

Alt + W dann Alt + Pfeiltaste

wechselt zum Fenster durch Richtungsanweisung
/window up
/window down
/window left
/window right

Alt + Z

Zoom für aktuelles Fenster (nochmals Alt + Z: stellt die vorherigen Einstellungen wieder her)
/window zoom

Alt + <

wechselt zum vorherigen Buffer der letzten aufgerufenen Buffer
/input jump_previously_visited_buffer

Alt + >

wechselt zum nächsten Buffer der letzten aufgerufenen Buffer
/input jump_next_visited_buffer

3.3.3. andere Tastenbefehle

Tasten Beschreibung und Befehl

Alt + H

löscht Hotliste (Aktivitätsanzeige für die Buffer)
/input hotlist_clear

Alt + =

schaltet Filterfunktion an/aus
/filter toggle

3.4. Befehlszeile

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

3.4.1. Syntax

Ein Befehl wird durch das Zeichen "/" eingeleitet, gefolgt von dem Namen des Befehls. In folgendem Beispiel werden alle Konfigurationsoptionen angezeigt:

/set

Jeder Text der nicht mit dem Zeichen "/" beginnt wird in den Buffer geschickt. In folgendem Beispiel wird der Text Hallo in den aktuellen Buffer geschickt:

Hallo

Dennoch ist es möglich einen Text in den Buffer zu schicken der mit dem Zeichen "/" beginnt. Dazu muss ein zweites "/" vorangestellt werden. Um den Befehl'/set' als Text zu senden:

//set

3.4.2. Farben

Für einige Erweiterungen wie z.B. die IRC Erweiterung können Farbcodes und Attribute für den Text gesetzt werden. Dazu muss die Tastenkombination "Ctrl-C" gefolgt von einem der folgenden Zeichen genutzt werden:

^Cb

fett dargestellter Text

^Ccxx

Textfarbe xx (siehe Farbtabelle)

^Ccxx,yy

Textfarbe xx und Hintergrundfarbe yy (siehe Farbtabelle)

^Co

deaktiviert Farben und Attribute

^Cr

Farben umkehren (kehrt Textfarbe und Hintergrundfarbe um)

^Cu

Text wird mit unterstrich dargestellt

Note
Der selbe Befehl (ohne den Wert für ^Cc) sollte genutzt werden um die Farbcodes bzw. Attribute wieder zu deaktivieren.

Farbtabelle für ^Cc:

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

default

15

hellgrau

white

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

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

3.5. WeeChat Optionen (weechat.conf)

3.5.1. Farben für Curses GUI

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

white

weiß

3.6. WeeChat Befehle

/away [-all] [message]
  Abwesenheitsstatus ein-/ausschalten

     -all: Abwesenheitszustand auf allen Servern ändern
  message: Abwesenheitsnachricht (ohne eine Nachricht wird der Abwesenheitszustand deaktivieren)
/bar [add barname type[,cond1,cond2,...] position size separator item1,item2,...] | [default] | [del barname|-all] | [set barname option value] | [hide|show|toggle barname] | [scroll barname buffer scroll_value] | [list] | [listfull] | [listitems]
  Infobars verwalten

            add: füge eine neue Infobar hinzu
        barname: Name der Infobar (muss einmalig sein)
           type:   root: außerhalb des Fensters,
                 window: innerhalb des Fensters, mit optionalen Merkmalen (siehe unten)
      cond1,...: 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
                 werden keine Merkmale angegeben, ist die Infobar immer sichtbar
       position: bottom (unten), top (oben), left (links) oder right (rechts)
           size: Größe der Infobar (in Zeichen)
      separator: 1 um eine Trennlinien zu zeichnen, 0 (oder keine Angabe) es 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: Optionen die geändert werden (für eine List der möglichen Optionen, bitte folgenden Befehl nutzen: /set weechat.bar.<barname>.*)
          value: neuer Wert für Option
           hide: verbirgt eine Infobar
           show: zeigt eine verborgene Infobar an
         toggle: zeigt/versteckt eine Infobar
         scroll: scrollt Infobar hoch/runter
         buffer: Name des Buffer der gescrollt werden soll ('*' für aktuellen Buffer, man sollte '*' für root-Infobars nutzen)
   scroll_value: Werte für Scroll-Funktion: 'x' oder 'y', gefolgt von '+', '-', 'b' (Beginn) oder 'e' (Ende), Wert (für +/-), und Optional %% (zum Scrollen für %% der Breite/Höhe, ansonsten wird der Wert als Anzahl der Zeichen interpretiert um die gescrollt werden soll)
           list: listet alle Infobars auf
       listfull: listet alle Infobars detailliert auf (Standardaufruf)
      listitems: listet alle Items auf, die in den Infobars genutzt werden

  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 die Nickliste im Buffer #weechat eine ganze Seite nach oben:
      /bar scroll nicklist #weechat y-100%
    scrollt zum Ende der Nicklist im aktuellen Buffer:
      /bar scroll nicklist * ye
/buffer [clear [number | -merged | -all] | move number | merge number | unmerge [number] | close [n1[-n2]] | list | notify level | localvar | set property value | get property | number | name]
  Buffer verwalten

     clear: leert den Bufferinhalt. Entweder durch Angabe der Buffer-Nummer, -merged für zusammengefügte Buffer, -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)
     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)
      list: alle offenen Buffer auflisten (Standardvorgabe)
    notify: setzt Benachrichtigung-Status für 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: auf Standardwert zurück setzen (all)
  localvar: zeigt die lokalen Variablen für den aktuellen Buffer an
       set: setzt eine Eigenschaft für aktuellen Buffer
       get: zeigt eine Eigenschaft für den aktuellen Buffer an
    number: Sprung von einem Buffer zu einem anderen, mögliche Optionen:
            '+': relativer Sprung um 'n'-Buffer
            '-': relativer Sprung, um 'n'-Buffer
            '*': springt zum Buffer mit der Nummer 'n', nutzt die interne Option "weechat.look.jump_current_to_previous_buffer"
      name: springt zum Buffer mit dem Namen 'xyz'

  Beispiele:
   leert den aktuellen Buffer:
   /buffer clear
   verschiebt Buffer auf Position 5:
   /buffer move 5
   verbindetn 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
/command Erweiterungs-Befehl
  führe explizit einen WeeChat Befehl oder eine Erweiterung aus

  Erweiterung: Name der Erweiterung ('weechat' für interne WeeChat Befehle)
      Befehl: auszuführender Befehl (es wird automatisch ein '/' vorangestellt, falls dieser nicht angegeben wurde)
/debug [list | set plugin level | dump | buffer | windows | term]
  Debug-Kontrolle für Hauptprogramm und/oder Erweiterung

      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 das Debug)
     dump: Speicherabbild in die WeeChat Protokolldatei schreiben (wie bei einem Programmabsturz)
   buffer: speichert den Bufferinhalt als hexadezimale Ausgabe in die Protokolldatei
  windows: zeigt die Fensterstruktur an
     term: gibt Informationen über das Terminal und verfügbare Farben aus.
/filter [list] | [enable|disable|toggle [name]] | [add name plugin.buffer tags regex] | [del name|-all]
  Filterfunktion um Nachrichten in Buffern zu verbergen oder anzuzeigen, dazu können Tags oder regulären Ausdrücken verwendet werden

           list: alle Filter auflisten
         enable: aktiviert den Filter (Filter sind standardmäßig aktiviert)
        disable: deaktiviert den Filter
         toggle: Filterfunktion ein-/ausschalten
           name: Filtername
            add: fügt einen Filter hinzu
            del: entfernt einen Filter
           -all: entfernt alle Filter
  plugin.buffer: Erweiterung und Buffer in denen die Filterfunktion aktiviert ist ("*" betrifft alle Buffer)
           tags: durch Kommata  getrennte Liste mit Tags, Beispiel: "irc_join,irc_part,irc_quit"
          regex: regulärer Ausdruck um in einer Zeile zu suchen
                 - nutze '\t' um Präfix von Nachricht zu trennen. Sonderzeichen wie '|' müssen in einer Escapesequenz : '\|' eingebunden werden)
                 - falls ein regulärer Ausdruck mit '!' beginnt dann wird das übereinstimmende Ergebnis umgekehrt  (nutze '\!' um mit '!' zu beginnen)

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

  Die am häufigsten gebrauchten Tags lauten:
    no_filter, no_highlight, log0..log9 (log level),
    notify_message, notify_private, notify_highlight,
    irc_xxx (xxx ist der IRC Befehl oder die IRC Nummer, siehe /server raw), irc_numeric, irc_error, irc_action, irc_ctcp, irc_ctcp_reply, irc_smart_filter, away_info.

  Beispiele:
    aktiviert einen einfachen IRC Filter für join/part/quit Nachrichten:
      /filter add irc_smart * 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 * toto\t
    nur der Nick "tutu" wird im IRC Channel #test angezeigt:
      /filter add tutu irc.freenode.#test * !tutu\t
    filtert Zeilen die das Wort "spam" enthalten:
      /filter add filterspam * * spam
    filtert Zeilen die "weechat sucks" im IRC Channel #weechat enthalten:
      /filter add sucks irc.freenode.#weechat * weechat sucks
/help [command | option]
  Zeigt eine Hilfe für Befehle und Optionen an

  command: Name des Befehls
   option: Name der Option (verwende /set um eine Liste der Optionen anzuzeigen)
/history [clear | value]
  Zeigt den Befehlsverlauf des Buffers

  clear: Löscht den Befehlsverlauf
  value: zeigt die gewünschte Anzahl an Einträgen im Befehlsverlauf
/input return | complete_next | complete_previous | search_next | delete_previous_char | delete_next_char | delete_previous_word | delete_next_word | delete_beginning_of_line | delete_end_of_line | delete_line | clipboard_paste | transpose_chars | undo | redo | move_beginning_of_line | move_end_of_line | move_previous_char | move_next_char | move_previous_word | move_next_word | history_previous | history_next | history_global_previous | history_global_next | jump_smart | jump_last_buffer | jump_previously_visited_buffer | jump_next_visited_buffer | hotlist_clear | grab_key | grab_key_command | scroll_unread | set_unread | set_unread_current_buffer | switch_active_buffer | switch_active_buffer_previous | insert [args]
  Funktionen für die Befehlszeile

  Dieser Befehl wird von Tastenbelegungen oder Erweiterungen verwendet
/key [list | listdefault | listdiff] | [bind key [command [args]]] | [unbind key] | [reset key] | [resetall -yes] | [missing]
  Einer Taste einen Befehl zuordnen oder entfernen

         list: Zeigt die aktuelle Tastenbelegungen an (Standardaufruf)
  listdefault: Zeigt die 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)
         bind: belegt eine Taste mit einem Befehl oder zeigt an welcher Befehl auf eine Taste gelegt wurde
       unbind: hebt eine Tastenbelegung auf
        reset: die Tastenbelegung wird für die ausgewählte Taste auf die Standardeinstellung zurück gesetzt
     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 dies mittels alt+k (oder Esc und k) zu machen um dann die Taste auszuwählen, die belegt werden soll. Durch diesen Schritt wird der entsprechende Tasten-Code in die Befehlszeile übernommen.

  Beispiele:
    Mit der Tastenkombination "alt-x" kann die Nicklist-Bar an-und aus geschaltet werden:
      /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
/layout [[save | apply | reset] [buffers | windows]]
  Layout für Buffer und Fenster speichern, anwenden oder zurücksetzen

     save: speichert das aktuelle Layout
    apply: das gespeicherte Layout anwenden
    reset: das gespeicherte Layout entfernen
  buffers: speichere/verwende nur Buffer (Reihenfolge der Buffer)
  windows: speichere/verwende nur Fenster (Buffer welche im jeweiligen Fenster dargestellt werden)

  Wird der Befehl ohne Argumente aufgerufen wird das gespeicherte Layout dargestellt.
/mute [-current | -buffer name | -all] command
  Führt einen Befehl ohne Textausgabe aus

  -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 [list [Name]] | [listfull [Name]] | [load Dateiname] | [autoload] | [reload [Name]] | [unload [Name]]
  Erweiterungen verwalten (auflisten/installieren/deinstallieren)

      list: installierte Erweiterungen werden aufgelistet
  listfull: detaillierte Auflistung aller installierten Erweiterungen
      load: installiert eine Erweiterung
  autoload: installiert automatisch alle Erweiterungen aus System- oder Benutzerverzeichnis
    reload: installiert eine Erweiterung erneut (falls kein Name angegeben wird, werden alle Erweiterungen entfernt und dann neu installiert)
    unload: deinstalliere eine oder alle Erweiterungen

  Ohne Angabe eines Argumentes listet /plugin alle geladenen Erweiterungen auf.
/proxy [add proxyname type address port [username [password]]] | [del proxyname|-all] | [set proxyname option value] | [list]
  Proxies verwalten

            add: füge neuen Proxy hinzu
      proxyname: Name des neuen Proxy (der Name muss einmalig sein)
           type: http, socks4 oder socks5
        address: IP oder Hostname
           port: port
       username: Username (optional)
       password: Passwort (optional)
            del: entfernt einen Proxy (alle Proxies werden mittels -all entfernt)
            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
           list: zeige alle Proxies an

  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 127.0.0.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 [-yes] [arguments]
  WeeChat beenden

       -yes: Option muß 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 [Datei [Datei...]]
  Konfiguration neu laden

  Datei: Konfigurationsdatei die erneut geladen werden soll

  wird keine Datei angegeben, werden alle Konfigurationen (WeeChat und Erweiterungen) neu geladen.
/save [Datei [Datei...]]
  Konfiguration abspeichern

  Datei: Konfigurationsdatei die gesichert werden soll

  sollte keine Datei angegeben werden, dann werden alle Konfigurationen (WeeChat und Erweiterungen) gesichert.
/set [Option [Wert]]
  Konfigurationsparameter setzen

  option: Name der zu ändernden Option
   value: neuer Wert, den die Option erhalten soll

  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 bei einigen Erweiterungen genutzt werden.
/unset [Option]
  Konfigurationsparameter freigeben/zurücksetzen

  Option: Name einer Option (darf mit Joker ("*") beginnen oder enden um viele Optionen zu resetten. Nutzen Sie diese Funktion mit viel Sorgfalt!)

  Gemäß der jeweiligen Option wird diese resettet (bei Standard-Optionen) oder komplett entfernt (bei optionalen Einstellungen, wie zum Beispiel bei der Server-Einstellung).
/upgrade [Pfad_zur_Binärdatei]
  Aktualisiert WeeChat ohne die Verbindung zum Server zu trennen

  Pfad_zur_Binärdatei: Pfad zu einer ausführbaren WeeChat Version (Standardeinstellung ist die aktuell ausführbare Datei)

  Dieser Befehl startet eine weitere WeeChat-Binärdatei. Aus diesem Grund muss diese kompiliert oder mit einem Paketmanager installiert sein, bevor der Befehl ausgeführt wird.
/uptime [-o | -ol]
  Zeigt die Uptime von Weechat an

   -o: sendet die WeeChat Laufzeit in den aktuellen Buffer (englisch)
  -ol: sendet die WeeChat Laufzeit in den aktuellen Buffer (in der voreingestellten Landessprache)
/version [-o | -ol]
  Zeigt die WeeChat-Version und das Datum der Kompilierung an

   -o: sendet die WeeChat Version in den aktuellen Buffer (englisch)
  -ol: sendet die WeeChat Version in den aktuellen Buffer (in der Voreingestellten Landessprache)
/wait Zeit[Einheit] Befehl
  Terminiere einen Befehl der ausgeführt werden soll

     Zeit: die Zeit, die gewartet werden soll (dies muss eine natürlich Zahl sein)
  Einheit: mögliche Werte (optional):
             ms: Millisekunden
              s: Sekunden (Vorgabewert)
              m: Minuten
              h: Stunden
   Befehl: 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 in dem Buffer ausgeführt in dem der Befehl /wait gestartet wurde. Falls dieser Buffer nicht gefunden werden sollte, z.B.  weil er in der Zwischenzeit geschlossen wurde, wird der Befehl im WeeChat Haupt-Buffer gestartet.

  Beispiele:
    Betritt einen Channel in 10 Sekunden:
    /wait 10 /join #test
    Setzt eine Abwesenheit in 15 Minuten:
    /wait 15m /away -all Bin dann mal eben weg
    Schickt den Text 'Hallo' nach zwei Minuten ab:
    /wait 2m Hallo
/window [list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv [pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | scroll_up | scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | scroll_next_highlight | zoom]
  Fenster verwalten

           list: listet die geöffneten Fenster (ohne Angabe von Parametern wird diese Funktion aufgerufen)
             -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
         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ß
          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 gewissen Zeit: s=Sekunden, m=Minuten, h=Stunden, d=Tage, M=Monate, y=Jahre
      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_previous_highlight: Scrollt zum vorherigen Hightlight
  scroll_next_highlight: Scrollt zum nächsten Highlight
           zoom: vergrößert auf Fenster

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

  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

4. Erweiterungen

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

4.1. Erweiterungen in WeeChat

Eine WeeChat Erweiterung ist eine dynamische Bibliothek (library), die in C geschrieben und kompiliert wurde. 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. perl mittels dem Befehl /perl 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:

Erweit. Beschreibung

alias

definiert Alias für Befehle

aspell

Rechtschreibprüfung für Befehlszeile

charset

Zeichensatz (de)-kodierung in Buffern

demo

Demo Erweiterung (nicht standardmäßig kompiliert)

fifo

FIFO Pipe die zur Fernsteuerung von WeeChat genutzt werden kann

irc

IRC Chat-Protokoll

logger

erstellt Protokolldateien von Buffern

perl

Perl-Skript API

python

Python-Skript API

ruby

Ruby-Skript API

lua

Lua-Skript API

tcl

Tcl-Skript API

xfer

Datentransfer und Direktchat

4.2. Alias Erweiterung

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

4.2.1. Befehle

/alias [[-completion completion] alias_name [command [arguments]]]
  Einem Befehl wird ein Alias zugewiesen

  completion: optionale Vervollständigung für einen Alias-Befehl (Standardverhalten: Vervollständigung wird auf den Zielbefehl angewendet)
  alias_name: Name des Alias (kann mit Joker "*" beginnen oder enden für Alias-Listing)
     command: Name des zuzuordnenden Befehls (WeeChat- oder IRC-Befehl ohne führenden '/', mehrere Befehle müssen durch Semikolon getrennt werden)
   arguments: Argumente für Befehl

  Ohne Angabe von Argumenten werden alle definierten Alias angezeigt.

  Anmerkung: im Befehl können Variablen gesetzt 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
       $nick: aktueller Nick
    $channel: aktueller Channel
     $server: aktueller Server

  Um ein Alias zu löschen, nutze "/unalias".

  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.3. Aspell Erweiterung

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

4.3.1. Optionen (aspell.conf)

4.3.2. Befehle

/aspell dictlist | enable lang | disable | addword [lang] word
  Konfiguration für aspell-Erweiterung

  dictlist: listet installierte Wörterbücher auf
    enable: aktiviert aspell in aktuellem Buffer [lang = Wörterbuch)
   disable: deaktiviert aspell in aktuellem Buffer
   addword: fügt ein Wort in das persönliche Wörterbuch von aspell hinzu

  Eingaben die mit '/' beginnen werden nicht überprüft, außer bei einigen Befehle.

4.4. Charset Erweiterung

Die Charset Erweiterung übernimmt das de-/kodieren der Zeichensätze.

Es existiert ein Standardzeichensatz zum de-/kodieren und spezielle Zeichensätze für Buffer (oder Gruppen von Buffern).

Diese Erweiterung ist optional, sie wird aber empfohlen. Wenn diese Erweiterung nicht genutzt wird steht WeeChat lediglich UTF-8 zur Verfügung.

Die Charset Erweiterung wird automatisch von WeeChat geladen. Um sicher zu gehen dass diese Erweiterung geladen wurde führen Sie folgenden Befehl aus:

/charset

Wird der Befehl nicht gefunden dann kann die Erweiterung mit dem nachfolgenden Befehl nachgeladen werden:

/plugin load charset

Wird die Erweiterung nicht geladen dann sollten Sie WeeChat nochmals mit allen Erweiterungen und der Charset Unterstützung kompilieren.

Wird die Charset Erweiterung gestartet dann wird der Terminal und der interne Zeichensatz genutzt. Welcher Terminal Zeichensatz genutzt wird hängt davon ab welchen Zeichensatz Sie lokal nutzen. Intern wird UTF-8 genutzt.

Beispiel:

charset: terminal: ISO-8859-15, internal: UTF-8

4.4.1. Optionen (charset.conf)

4.4.2. Befehle

/charset [[dekodiere | kodieren] Zeichensatz] | [Reset]
  ändere Zeichensatz für aktuellen Buffer

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

4.4.3. Zeichensatz auswählen

Um den Zeichensatz zum kodieren und dekodieren 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 im 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.4.4. Fehlersuche

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

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

$ echo 'irc.server.freenode */nick newnick' >~/.weechat/weechat_fifo_12345
$ echo 'irc.freenode.#weechat *Hallo!' >~/.weechat/weechat_fifo_12345
$ echo '*hello!' >~/.weechat/weechat_fifo_12345
$ echo -e '*/perl unload\n*/perl 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.6. 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.6.1. Kommandozeilen Befehle

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

irc[6][s]://[pseudo[:mot_passe]@]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-curses irc://nono@irc.freenode.net/#weechat,#toto

4.6.2. Optionen (irc.conf)

4.6.3. Befehle

/admin [Ziel]
  Information über den Server-Administrator abfragen

  Ziel: Server
/allchan [-current] [-exclude=channel[,channel...]] command [arguments]
  Führt einen Befehl aus der an alle Channels gesendet wird, die mit einem Server verbunden sind

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

  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 [-exclude=server[,server...]] command [arguments]
  Führt einen Befehl aus, der zu allen verbundenen Server gesendet wird

   -exclude: dient zum Ausschluss ausgewählter Server ('*' wird zu Beginn oder am Ende des Server-Namens akzeptiert, um mehrere Server auszuschließen)
    command: Befehl der ausgeführt werden soll
  arguments: Argumente des Befehls

  Beispiele:
    Ändere den Nick auf allen Servern:
      /allserv nick newnick
    Setzt den Status, auf allen Servern,auf abwesend:
      /allserv away I'm away
/ban [Channel] [Nickname [Nickname ...]]
  Nicknamen oder Hosts sperren/verbannen

   Channel: Channel für die Sperre
  Nickname: zu sperrender User oder Host
/connect [-all [-nojoin] | -open [-nojoin] | servername [servername ...] [-nojoin] | hostname[/port] [-option[=value]] [-nooption]]
  Mit IRC-Server(n) verbinden

        -all: Verbindet mit allen Servern
       -open: stellt eine Verbindung zu allen geöffneten Servern her, zu denen es aktuell keine Verbindung gibt
  servername: intern genutzter Servername, mit dem verbunden werden soll (Der Server muss zuerst mittels "/server add" angelegt werden)
     -nojoin: betrete (/join) keinen Channel (auch wenn die Funktion "autojoin" aktiviert sein sollte)
    hostname: Hostname, oder IP, eines Servers
        port: Port den der Server nutzen soll (Standardport: 6667)
      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)

  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
/ctcp Empfänger Typ [Argumente]
  CTCP-Nachricht verschicken

   Empfänger: User, an den die CTCP-Nachricht geschickt werden soll
       Typ: Typ der CTCP-Nachricht (z.B. "version", "ping", ..)
  Argumente: Argumente für CTCP
/cycle [Channel[,Channel]] [Abschiedsnachricht]
  Einen Channel verlassen und wieder betreten

       Channel: zu verlassender Channel
  Abschiedsnachricht: Abschiedsnachricht (die den anderen Usern angezeigt wird)
/dcc Aktion [Nickname [Datei]]
  Starte DCC (Datentransfer oder Chat)

    Aktion: 'send' (Datei) oder 'chat'
  Nickname: Empfänger einer Datei bzw. eines Chats
      Datei: zu versendende (lokal vorliegende) Datei

  Beispiel:
    Sende eine Chat-Anfrage an den User "toto"
      /dcc chat toto
    Sende die Datei "/home/foo/bar.txt" an den User "toto"
      /dcc send toto /home/foo/bar.txt
/dehalfop Nickname [Nickname]
  Halb-Operator-Privilegien einem oder mehreren Nicknamen aberkennen
/deop Nickname [Nickname]
  Operator-Privilegien einem oder mehreren Nicknamen aberkennen
/devoice Nickname [Nickname]
  Voice-Privilegien einem oder mehreren Nicknamen wegnehmen
/die
  Server herunterfahren
/disconnect [-all | Servername [Servername ...]]
  Verbindung, zu einem oder mehreren IRC-Server(n), trennen

        -all: Trenne von allen Servern
  servername: Servername, von dem getrennt werden soll
/halfop Nickname [Nickname]
  Vergebe halbe Operator Privilegien an einen oder mehrere Nicknamen
/ignore [list] | [add [re:]nick/host [server [channel]]] | [del number|-all]
  Ignoriert Nicks/Hosts von Channels oder Servern

       list: zeigt an, wer/was ignoriert wird
        add: füge eine Ignorierung hinzu
        del: entferne eine Ignorierung
     number: Nummer der Ignorierung die entfernt werden soll (nutze "list" )
       -all: entfernt alle Einträge
  nick/host: Nick oder Host der ignoriert werden soll: Syntax ist "re:regex" oder "mask" (mask ist eine Zeichenkette in der mittels "*" (Joker) ein oder mehrere Zeichen ersetzt werden können)
     server: interner Name des Server, in dem die Ignorierung statt finden soll
    channel: Name des Channel, in dem die Ignorierung statt finden soll

  Beispiele:
    ignoriert den Nick "toto":
      /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 [Ziel]
  Information über den Server abfragen

  Ziel: Servername
/invite Nickname Channel
  Jemanden in einen Channel einladen

  Nickname: Chatname des Einzuladenden
  Channel: Channel, in den er eingeladen werden soll
/ison Nickname [Nickname ...]
  Überprüfen, ob jemand zur Zeit im IRC ist

  Nickname: Nickname
/join [channel1[,channel2[,channel3]] [key1[,key2]]]
  einen Channel betreten

  channel: Name des Channels der betreten werden soll
      key: Zugriffsschlüssel für einen Channel (Channels die einen Zugriffsschlüssel benötigen müssen zuerst aufgeführt werden)

  Examples:
    /join #weechat
    /join #geschützterChannel,#weechat Zugriffsschlüssel
/kick [channel] nickname [comment]
  Einen User aus einem Channel herauskicken

   channel: Channel des Benutzers
  nickname: Nickname des Benutzers
   comment: Begründung für den Kick
/kickban [channel] nickname [comment]
  Kickt und verbannt jemanden aus einem Channel

   channel: Channel, in dem sich der User befindet
  nickname: Nickname der ge-kick-t und gebannt werden soll
   comment: Kommentar, weshalb der User ge-kick-t 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 Nickname Kommentar
  Jemanden vom Server werfen

   Nickname: Chatname
  Kommentar: Begründung
/links [[Server] Servermaske]
  Alle dem antwortenden Server bekannten Servernamen auflisten

       Server: dieser Server soll die Anfrage beantworten
  Servermaske: die aufzulistenden Server sollen diesem Muster entsprechen
/list [channel[,channel] [server] [-re regexp]]
  Channels mit ihren Topics auflisten

  channel: aufzulistender Channel
   server: Servername
   regexp: regulärer Ausdruck der auf das Ergebnis angewendet werden soll

  Beispiele:
    listet alle Channels des Servers auf (dies kann bei umfangreichen Netzwerken sehr lange dauern):
      /list
    listet den Channel #weechat auf:
      /list #weechat
    listet alle Channels auf die mit "#weechat" beginnen (dies kann bei umfangreichen Netzwerken sehr lange dauern):
      /list -re #weechat.*
/lusers [Maske [Ziel]]
  Statistik über die Größe dieses IRC-Netzwerks abfragen

    Maske: Nur Server, die diesem Muster entsprechen
  Ziel: Server, der die Anfrage weiterleiten soll
/map
  Zeigt das IRC Netzwerk, in Form einer Baumstruktur, an
/me Nachricht
  Eine CTCP ACTION an den aktuellen Channel senden

  Message: zu sendende Nachricht
/mode { [Channel] {[+|-]|o|p|s|i|t|n|b|v} [limit] [user] [ban mask] } | { Nickname {[+|-]|i|w|s|o} }
  Modus von einem Channel oder User ändern

  Channel-Modi:
    Channel: zu ändernder Channel (Standardmäßig der erste Channel)
    o: vergebe/nehme Operator Privilegien
    p: privater Channel
    s: geheimer Channel
    i: geschlossener Channel (Zutritt nur mit Einladung)
    t: nur Operatoren dürfen das Topic setzen
    n: keine Channeln-Nachrichten von außerhalb des Channels
    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: lege Ausnahmemaske fest
    v: vergebe/nehme Voice (d.h. Schreibrechte bei moderierten Channels)
    k: lege ein Passwort für den Channel fest
  User-Modi:
    Nickname: zu ändernder Nickname
    i: User als unsichtbar kennzeichnen
    s: User empfängt Server-Nachrichten
    w: User empfängt WALLOPS
    o: User ist Channel-Operator
/motd [Ziel]
  Die "Mitteilung des Tages" abfragen

  Ziel: Servername
/msg [-server Server] receiver[,Empfänger] Text
  Nachricht an Nick/Channel verschicken

   Server: schicke an diesen Server (interner Servername)
  Empfänger: Nick oder Channel (darf eine Maske sein, '*' = aktueller Channel)
  Text: zu sendender Text
/names [Channel[,Channel]]
  Nicknamen in Channels auflisten

  Channel: Channelname
/nick [-all] Nickname
  Aktuellen Nicknamen wechseln

      -all: Nickname auf allen verbundenen Servern ändern
  Nickname: neuer Nickname
/notice [-server Server] Nickname Text
  Mitteilung (notice) an einen User verschicken

    server: sende an diesen Server (interner Servername)
  Nickname: Empfänger der Nachricht
      Text: zu sendender Text
/op Nickname [Nickname]
  Channel-Operator Status an Nicknamen verleihen
/oper Benutzerpasswort
  Operator Privilegien anfordern

  Benutzername/Passwort: wird verwendet um Sonderrechte auf aktuellem IRC-Server zu erhalten
/part [Channel[,Channel]] [Abschiedsnachricht]
  Einen Channel verlassen

       Channel: Channelname welcher verlassen werden soll
  Abschiedsnachricht: Abschiedsnachricht (wird anderen Usern angezeigt)
/ping Server1 [Server2]
  Server anpingen

  Server1: Server der angepingt werden soll
  Server2: Ping an diesen Server weiterleiten
/pong Daemon [Daemon2]
  Auf Ping antworten

   Daemon: Daemon welcher auf die Ping-Nachricht geantwortet hat
  Daemon2: Nachricht an diesen Daemon weiterleiten
/query [-server server] nickname [text]
  Eine private Nachricht an einen Nick schicken

    server: an diesen Server senden (interner Name)
  nickname: Nickname für privaten Chat
      text: zu sendender Text
/quote [-server server] data
  Daten direkt an Server senden (siehe RFC 2812)

  server: an diesen Server senden (interner Name)
  data: unbearbeitete Daten die gesendet werden sollen
/reconnect [-all [-nojoin] | Servername [Servername ...] [-nojoin]]
  Mit einem oder mehreren Server(n) erneut verbinden

        -all: mit allen Servern neu verbinden
  Servername: Servername mit welchem verbunden werden soll
     -nojoin: Channels werden nicht betreten (selbst wenn autojoin für diesen Server aktiv ist)
/rehash [Option]
  Den Server dazu bringen seine Konfigurationsdatei neu zu laden

  option: zusätzliche Option, die von manchen Servern berücksichtigt wird.
/restart
  Den Server dazu bringen sich selbst neu zu starten
/sajoin nickname channel[,channel]
  Zwingt einen User einen oder mehrere Channel zu betreten

  nickname: Nickname
   channel: Name des Channels
/samode Channel Modus
  Ändert den Modus des Channels ohne das Operator-Privilegien vorliegen

  Channel: Name des Channel
     Mode: neuer Modus für Channel
/sanick nickname new_nickname
  Zwingt einen User den Nick zu ändern

      nickname: Nickname
  new_nickname: neuer Nickname
/sapart nickname channel[,channel]
  Zwingt einen User den/die Channel(s) zu verlassen

  nickname: Nickname
   channel: Name des Channels
/saquit nickname reason
  Zwingt einen User den Server zu beenden, mit Begründung

  nickname: Nickname
    reason: Grund der Abmeldung
/server [list [servername]] | [listfull [servername]] | [add servername hostname[/port] [-temp] [-option[=value]] [-nooption]] | [copy servername newservername] | [rename servername newservername] | [keep servername] | [del servername] | [deloutq] | [jump] | [raw]
  Auflisten, Hinzufügen oder Entfernen von IRC-Servern

        list: listet Server auf (Standardaufruf)
    listfull: listet Server mit detaillierten Informationen über jeden einzelnen Server auf
         add: erstellt einen neuen Server
  servername: 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 nickname reserved distribution type reserved info
  Einen neuen Service eintragen

  distribution: Sichtbarkeit des Services
         type: für spätere Verwendung reserviert
/servlist [mask [type]]
  Zur Zeit verbundene Services auflisten

  mask: nur zutreffende Services auflisten
  type: nur Services von diesem Typ auflisten
/squery service text
  Nachricht an einen Service senden

  service: Name des Service
  text: zu sendender Text
/squit server comment
  Serververbindungen trennen

  server: Servername
  comment: Trennungsgrund
/stats [query [server]]
  Serverstatistik abfragen

   query: c/h/i/k/l/m/o/y/u (siehe RFC1459)
  server: Name des Servers
/summon user [target [channel]]
  Nutzer die auf dem IRC-Server arbeiten darum bitten auf den IRC-Server zu kommen

     user: Benutzername
  target: Servername
  channel: Channelname
/time [Ziel]
  Ortszeit des Servers abfragen

  Ziel: Zeit des angegebenen Servers abfragen.
/topic [channel] [topic]
  Thema des Channels abfragen/setzen

  channel: Channelname
  topic: Thema für den Channel (oder "-delete" zum entfernen des Themas)
/trace [Ziel]
  Route zum angegebenen Server ermitteln

  Ziel: Server
/unban [channel] nickname [nickname ...]
  Bann aufheben (Nicks oder Hosts)

   Channel: Channel in dem der Bann aufzuheben ist
  Nickname: User für den der Bann aufzuheben ist
/userhost Nickname [Nickname ...]
  Zeigt Informationen zu Nicknamen an

  Nickname: Nickname
/users [Ziel]
  Auflistung der User die bei dem Server angemeldet sind

  Ziel: Server
/version [server | nickname]
  Versionsinformation des Nicknamen oder Servers ermitteln (des aktuellen oder angegebenen Nick/Server)

    server: Servername
  nickname: Nickname
/voice Nickname [Nickname]
  Voice an Nickname(n) vergeben
/wallchops [channel] text
  Nachricht an Channel-Operator verschicken

  channel: Name des Channel
     text: Text der versendet werden soll
/wallops Text
  Nachricht an alle User schicken die den 'w'-Mode gesetzt haben

  zu sendender Text
/who [Maske ["o"]]
  Erstellung einer Anfrage die eine Anzahl von Informationen zurück gibt.

  Maske: nur Information über betreffende Nicknamen abfragen
     o: nur Operatoren ausgeben, die dem Filter entsprechen
/whois [server] nickname[,nickname]
  Information über User abfragen

    server: Servername
  nickname: Nickname (oder eine Maske)
/whowas nickname [,nickname [,nickname ...]] [count [target]]
  Informationen eines Nicknamen abfragen welcher nicht mehr existiert

  Nickname: 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.6.4. SSL Zertifikate

Wenn eine Verbindung mittels SSL zu einem IRC Server hergestellt wird dann überprüft WeeChat immer ob dieser Verbindung sicher ist.

Einige Optionen dienen dazu eine SSL Verbindung zu nutzen:

weechat.network.gnutls_ca_file

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

irc.server.xxx.ssl_cert

Datei mit den SSL Zertifikaten die genutzt werden um automatisch Ihren Nick zu identifizieren (zum Beispiel CertFP auf oftc, siehe unten)

irc.server.xxx.ssl_dhkey_size

Größe des Schlüssels der genutzt werden soll beim Schlüsseltausch mittels der Diffie-Hellman Methode (Standardwert: 2048)

irc.server.xxx.ssl_verify

überprüft ob der SSL Verbindung uneingeschränkt vertraut werden kann (Standardwert: AN)

Note
Die Option "ssl_verify" ist Vorgabe mäßig immer eingeschaltet. Das gewährleistet dass die Verifizierung sehr streng genommen wird und dadurch vielleicht versagt. Auch wenn die Verbindung mit einer vorherigen Version (<0.3.1) funktioniert hat.
erstes Beispiel: Verbindung zu oftc und Überprüfung der Zertifikate
$ mkdir ~/.weechat/ssl
$ wget -O ~/.weechat/ssl/CAs.pem http://www.spi-inc.org/secretary/spi-cacert.crt

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

/connect oftc
zweites Beispiel: Verbindung zu oftc mittels CertFP
$ openssl req -nodes -newkey rsa:2048 -keyout nick.key -x509 -days 365 -out nick.cer
$ cat nick.cer nick.key > ~/.weechat/ssl/nick.pem
/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.6.5. einfacher Filter für join/part/quit Nachrichten

Es gibt einen einfachen Filter für join/part/quit Nachrichten falls ein Nick für eine vorgegebene Zeit in einem Channel inaktiv gewesen ist.

Diese Funktion ist passe 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.6.6. CTCP Antworten

Sie haben die Möglichkeit CTCP Antworten anzupassen oder aber bestimmte CTCP Anfragen zu sperren (es wird nicht darauf geantwortet).

Beispiel: Um eine Antwort auf die CTCP Anfrage "VERSION" anzupassen nutzen Sie folgenden Befehl:

/set irc.ctcp.version "I'm running WeeChat $version, it rocks!"

Wenn Sie die Anfrage CTCP "VERSION" blockieren möchten (es wird nicht darauf geantwortet) dann löschen Sie einfach den Rückgabe-String:

/set irc.ctcp.version ""

Selbst bisher unbekannte CTCP Anfragen können beantwortet werden. Nehmen wir zum Beispiel die Anfrage CTCP "BLABLA":

/set irc.ctcp.blabla "Dies ist meine Antwort auf CTCP BLABLA"

Auch kann man CTCP Antworten für jeden einzelnen Server anpassen. Dazu muss man lediglich den internen Servernamen vor die CTCP Anfrage setzen:

/set irc.ctcp.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.3.0
 $compilation 

Datum der Kompilierung

 Sep 13 2009
 $osinfo      

Info über das genutzte OS

 Linux 2.6.31 / i686
 $site        

WeeChat Seite

 http://www.weechat.org
 $download    

WeeChat, download Seite

 http://www.weechat.org/download
 $time        

aktuelle Uhrzeit/Datum

 Sun Sep 13 15:48:31 2009
 $username    

Username beim IRC Server

 Nick
 $realname    

Realname beim IRC Server

 mein Name

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 $version                
 WeeChat 0.3.0

SOURCE

 $download                       
 http://www.weechat.org/download

TIME

 $time                           
 Sun Sep 13 15:48:31 2009

USERINFO

 $username ($realname)           
 Nick (mein Name)

VERSION

 WeeChat $version ($compilation) 
 WeeChat 0.3.0 (Sep 13 2009)

4.6.7. Zielbuffer für IRC Nachrichten

Sie können einen Zielbuffer einstellen in dem 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)

weechat

WeeChat "core" Buffer

Vorgegeben ist der Server-Buffer falls keine Option ausgewählt wurde.

Unvollständige Liste der IRC Nachrichten bzw. Alias die angepasst werden können:

Nachricht alias Beschreibung

invite

Einladung in einen Channel

notice

Mitteilung

wallops

wallops

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)

330

whois

whois (eingelogged als)

335

whois

whois (ist ein Bot auf)

338

whois

whois (Host)

341

inviting

344

reop

channel reop

345

reop

channel reop (Ende)

351

Server Version

352

who

who

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)

901

Sie sind nun eingelogged

andere nummerische Befehle können angepasst werden.

Den IRC Nachrichten kann der Servername vorangestellt sein um zu spezifizieren von welchem IRC Server die Nachricht gekommen ist. Zum Beispiel: freenode.whois.

einige Beispiele:

/set irc.msgbuffer.whois private
/unset irc.msgbuffer.whois
/set irc.msgbuffer.freenode.invite current
/set irc.msgbuffer.303 weechat

4.7. Logger Erweiterung

Die Logger Erweiterung erlaubt es den Inhalt von Buffern in Dateien zu sichern. Dabei kann man über Optionen einfluß darauf nehmen was und wie es gesichert werden soll.

4.7.1. Optionen (logger.conf)

4.7.2. Befehle

/logger [list | set level | disable]
  Konfiguration für "logger" Erweiterung (dient zum Protokollieren der Buffer)

     list: zeigt, für geöffnete Buffer, den Status der Protokollierung an
      set: legt den Level fest, nach dem der aktuelle Buffer protokolliert werden soll
    level: legt fest, welche Nachrichten protokolliert werden sollen (0 = nichts protokollieren, 1 = nur die wichtigsten Nachrichten protokollieren .. 9 = protokolliere alle Nachrichten)
  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.

  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"

  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

4.7.3. Log Levels

Die Protokollierung wird durch 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:

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:

/set logger.level.irc.freenode.#weechat 3
/set logger.level.irc.server.freenode 3
/set logger.level.irc.freenode 3
/set logger.level.irc 2

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

Möchten Sie zum Beispiel ein Verzeichnis für jeden IRC Server in dem eine Datei für jeden Channel erstellt wird nutzen Sie:

/set logger.mask.irc "irc/$server/$channel.weechatlog"

In einer Baumstruktur sieht es dann wie folgt aus:

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

4.8. Skripten Erweiterungen

WeeChat unterstützt fünf Erweiterungen für Skripten: Perl, Python, Ruby, Lua und Tcl. Diese Erweiterungen können für die jeweilige Sprache die Skripten laden, ausführen und entfernen.

Sollten Sie Interesse daran haben wie man Skripten schreibt dann lesen Sie bitte die WeeChat Scripting Guide.

Skripten für WeeChat finden Sie auf: http://www.weechat.org/scripts

4.8.1. Perl Befehle

/perl [list [Name]] | [listfull [Name]] | [load Dateiname] | [autoload] | [reload [Name]] | [unload [Name]]
  auflisten/installieren/deinstallieren von Skripten

  Dateiname: Skript (Datei) die geladen werden soll
  Name: Name des Skripts

  Wird der Befehl ohne Argumente aufgerufen werden alle geladenen Skripten aufgelistet.

4.8.2. Python Befehle

/python [list [Name]] | [listfull [Name]] | [load Dateiname] | [autoload] | [reload [Name]] | [unload [Name]]
  auflisten/installieren/deinstallieren von Skripten

  Dateiname: Skript (Datei) die geladen werden soll
  Name: Name des Skripts

  Wird der Befehl ohne Argumente aufgerufen werden alle geladenen Skripten aufgelistet.

4.8.3. Ruby Befehle

/ruby [list [Name]] | [listfull [Name]] | [load Dateiname] | [autoload] | [reload [Name]] | [unload [Name]]
  auflisten/installieren/deinstallieren von Skripten

  Dateiname: Skript (Datei) die geladen werden soll
  Name: Name des Skripts

  Wird der Befehl ohne Argumente aufgerufen werden alle geladenen Skripten aufgelistet.

4.8.4. Lua Befehle

/lua [list [Name]] | [listfull [Name]] | [load Dateiname] | [autoload] | [reload [Name]] | [unload [Name]]
  auflisten/installieren/deinstallieren von Skripten

  Dateiname: Skript (Datei) die geladen werden soll
  Name: Name des Skripts

  Wird der Befehl ohne Argumente aufgerufen werden alle geladenen Skripten aufgelistet.

4.8.5. Tcl Befehle

/tcl [list [Name]] | [listfull [Name]] | [load Dateiname] | [autoload] | [reload [Name]] | [unload [Name]]
  auflisten/installieren/deinstallieren von Skripten

  Dateiname: Skript (Datei) die geladen werden soll
  Name: Name des Skripts

  Wird der Befehl ohne Argumente aufgerufen werden alle geladenen Skripten aufgelistet.

4.9. Xfer Erweiterung

Mit der Xfer Erweiterung kann man:

4.9.1. Optionen (xfer.conf)

4.9.2. Befehle

/me Nachricht
  Sendet CTCP Aktion an entfernten Host

  Message: zu sendende Nachricht
/xfer [list | listfull]
  Transfer-Steuerung

      list: zeigt Liste der Übertragungen
  listfull: zeigt eine ausführliche Liste der Übertragungen

  Ohne Angabe von Argumenten wird ein Buffer, mit Übertragungsliste, geöffnet.

5. Autoren

5.1. Entwickler

Sébastien Helleu (FlashCode)

Hauptentwickler

5.2. Liste der Beitragenden

Emmanuel Bouthenot (kolter)

Debian Paket Ersteller

Ptitlouis

Debian Paket Ersteller (alt)

Jiri Golembiovsky

tschechische Übersetzung, Patches

soltys

polnische Übersetzung

Nils Görs
rettub
Frank Zacharias

deutsche Übersetzung

Pavel Shevchuk

russische Übersetzung

m4v

spanische Übersetzung

Voroskoi

ungarische Übersetzung

Marco Paolone

italienische Übersetzung

Dmitry Kobylin

tcl Erweiterung

Rudolf Polzer
Jim Ramsay
Pistos
Gwenn
Dominik Honnef

Patches

Odin

SuSE RPM

6. Unterstützung

Bevor Sie um Unterstützung bitten 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: