Diese Dokumentation bezieht sich auf die WeeChat Version ≥ 0.3.0. Es sollte aber vorzugsweise immer die aktuell veröffentlichte Version von WeeChat genutzt werden.

Übersetzer:

1. Allgemein

1.1. Woher kommt eigentlich der Name "WeeChat"?

"Wee" ist ein sich selbst nutzendes Akronym und bedeutet "Wee Enhanced Environment". Somit lautet der vollständige Name "Wee Enhanced Environment for Chat".

"Wee" bedeutet außerdem "sehr klein" (und ja, es gibt noch eine andere Bedeutung des Wortes. Aber diese Bedeutung trifft nicht auf WeeChat zu!)

1.2. Weshalb sollte man WeeChat nutzen? - X-Chat und Irssi sind doch auch sehr gut…​

WeeChat ist sehr speicherschonend und besticht durch innovative Funktionen.

Weitere Informationen findet man auf der WeeChat Seite: https://weechat.org/about/features

2. Kompilierung / Installation

2.1. Ich habe gehört es gibt verschiedene GUIs für WeeChat. Wie kann ich diese kompilieren bzw. nutzen?

Es sind einige Remote-Oberflächen verfügbar. Diese findet man auf der Homepage: https://weechat.org/about/interfaces

2.2. Ich kann WeeChat nach Cloning des git Repository nicht kompilieren - weshalb?

Es wird empfohlen CMake zum kompilieren von WeeChat zu nutzen.

Falls Du WeeChat mit Hilfe der autotools kompilieren solltest (dich also nicht für CMake entscheidest), stelle sicher, dass Du die neueste Version von autoconf und automake besitzt.

Die zweite Möglichkeit besteht darin, das "Entwickler-Paket" zu installieren, denn dies besitzt weniger Abhängigkeiten. Das Paket wird quasi täglich aus dem git Repository erstellt. Beachte, dass dieses Paket nicht immer exakt mit dem git Repository übereinstimmen muss und daher auch weniger brauchbar sein kann. Im Gegensatz zu der Möglichkeit, dass man selbst das Repository klont und daraus Updates installiert.

2.3. Wie installiere ich WeeChat auf macOS?

Wir empfehlen, dass zur Installation Homebrew genutzt wird. Hilfe erhält man mittels:

brew info weechat

WeeChat kann durch folgenden Befehl installiert werden:

brew install weechat

2.4. Ich habe WeeChat gestartet, komme aber nicht mehr weiter - was kann ich tun?

Um Hilfe zu erhalten, nutze den /help Befehl. Jeder Befehl besitzt einen Hilfstext, den man sich durch /help Befehlsname anzeigen lassen kann. Die Standard Tastenbelegung sowie Befehle und Optionen sind im Benutzerhandbuch aufgeführt.

Neuen Anwendern wird empfohlen, die Quickstart Anleitung zu lesen.

3. Anzeige

3.1. Bei einigen Zeichen fehlen die Akzente. Wie kann ich das beheben?

Dies ist ein bekanntes Problem und kann viele Ursachen haben. Es ist deshalb wichtig, ALLE der folgenden Lösungsmöglichkeiten zu prüfen:

  • Überprüfe, ob WeeChat mit libncursesw verlinkt ist (Warnung: Dies ist bei den meisten Distributionen nötig - jedoch nicht bei allen). Zur Prüfung der Verlinkung ldd /path/to/weechat in einem Terminal ausführen. Den Installationspfad liefert der Befehl whereis weechat.

  • Prüfe mit dem WeeChat-Befehl /plugin, ob die "charset"-Erweiterung geladen ist (falls dies nicht der Fall sein sollte, benötigst Du wahrscheinlich noch das Paket "weechat-plugins").

  • Überprüfe die Ausgabe des /charset Befehls (im Server-Buffer). Du solltest für den Terminal ISO-XXXXXX oder UTF-8 als Antwort erhalten. Sollte hingegen ANSI_X3.4-1968 oder ein anderer Wert angezeigt werden, ist deine lokale Einstellung möglicherweise falsch. Um die Lokalisation zu reparieren, überprüfe selbige mittels locale -a und füge einen entsprechenden Wert in $LANG ein, beispielsweise export LANG=de_DE.UTF-8.

  • Einstellen des globalen decode Wertes. Beispiel: /set charset.default.decode "ISO-8859-15"

  • Falls Du UTF-8 lokal nutzt,

    • prüfe, ob Dein Terminal überhaupt UTF-8 fähig ist (der empfohlene Terminal für UTF-8 ist rxvt-unicode),

    • und wenn Du zusätzlich screen nutzt, prüfe ob screen im UTF-8 Modus läuft (“defutf8 on” in der Datei ~/.screenrc oder screen -U beim Starten von screen).

  • Überprüfe die Option weechat.look.eat_newline_glitch (diese Option kann schwerwiegenden Darstellungsfehler verursachen, wenn man die Option aktiviert hat).

Für WeeChat wird die Nutzung des UTF-8-Gebietsschemas empfohlen. Nutzt Du jedoch ISO oder andere Schemata, bitte vergewissere Dich, dass sich alle deine Einstellungen (Terminal, screen, …​) auf diese ISO beziehen und nicht auf UTF-8.

3.2. Einige Unicode-Zeichen werden im Terminal angezeigt aber in WeeChat nicht - warum?

Dies kann durch einen Fehler in der Funktion wcwidth von libc hervorgerufen werden. Dieser Fehler sollte durch glibc 2.22 behoben sein (vielleicht ist diese Version in der verwendeten Distributionen noch nicht verfügbar).

Es gibt folgende Übergangslösung, um das Problem mit der wcwidth zu umgehen: https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat

Siehe auch diese Fehlermeldung für weitere Informationen: https://github.com/weechat/weechat/issues/79

3.3. Weshalb haben Bars, z.B. Titel und Status, keine Hintergrundfarbe bzw. diese endet direkt nach dem Text?

Dies kann durch einen falschen Wert in der TERM-Umgebungsvariablen deiner Shell hervorgerufen werden. Bitte überprüfe dazu die Ausgabe von echo $TERM in deinem Terminal.

Abhängig davon von wo WeeChat gestartet wird, solltest Du folgenden Wert nutzen:

  • läuft WeeChat auf einem lokalen oder entfernten Rechner, ohne screen oder tmux, ist entscheidend welcher Terminal genutzt wird: xterm, xterm-256color, rxvt-unicode, rxvt-256color, …​

  • wird WeeChat in screen gestartet: screen oder screen-256color,

  • wird WeeChat in tmux gestartet: tmux, tmux-256color, screen oder screen-256color.

Falls notwendig, korrigiere den Wert der TERM-Variable wie folgt: export TERM="xxx".

3.4. Wenn ich WeeChat mit screen/tmux nutze, habe ich merkwürdige Zeichen - wie kann ich dies beheben?

Dies kann durch einen falschen Wert in der TERM-Umgebungsvariablen deiner Shell hervorgerufen werden. Bitte überprüfe dazu die Ausgabe von echo $TERM in deinem Terminal, jedoch außerhalb von screen/tmux.
Ist der Wert xterm-color gesetzt, können solche merkwürdigen Zeichen produziert werden. Nutzte stattdessen xterm (oder andere [von xterm-color verschiedene] Argumente).
Falls notwendig, korrigiere den Wert der TERM-Variable wie folgt: export TERM="xxx".

Wird das GNOME-Terminal genutzt, sollte unter Bearbeiten/Profileinstellungen/Kompatibilität die Option "Zeichen mit unbekannter Breite" auf schmal stehen.

3.5. Ich habe WeeChat unter macOS kompiliert und erhalte nur "(null)" als Textausgabe. Was läuft da schief?

Wenn Du ncursesw selber kompiliert haben solltest, dann probiere einmal die Standard ncurses aus, welche mit dem System ausgeliefert wird.

Darüber hinaus ist es unter macOS ratsam, WeeChat mittels des Homebrew Package Managers zu installieren.

3.6. Ich habe von "Buffern" und "Fenstern" gehört - Worin besteht der Unterschied?

Ein Buffer besitzt einen Namen und es wird ihm eine Buffer-Nummer zugeordnet. In einem Buffer werden vor allem Textzeilen (aber auch andere Daten) angezeigt.

Ein Fenster ist ein Bildschirmbereich, der Buffer darstellt. Es ist möglich den Bildschirm in mehrere Fenster aufzuteilen.

In jedem Fenster wird entweder ein Buffer oder ein zusammengefügter Buffer dargestellt. Ein Buffer kann entweder versteckt sein (wird nicht durch ein Fenster angezeigt) oder von einem oder mehreren Fenstern gleichzeitig angezeigt werden.

3.7. Wie kann ich eine Liste mit den Buffern z.B. auf der linken Seite anzeigen lassen?

Ab WeeChat ≥ 1.8 wird standardmäßig die "buflist"-Erweiterung automatisch geladen und verwendet.

Bei älteren Versionen kann stattdessen das Skript buffers.pl installiert werden:

/script install buffers.pl

Um die maximale Breite der buflist-Spalte zu reduzieren (ersetze "buflist" durch "buffers", wenn das Skript buffers.pl genutzt wird), nutze folgende Option:

/set weechat.bar.buflist.size_max 15

Um die Bar an den unteren Rand zu bewegen:

/set weechat.bar.buflist.position bottom

In der buflist kann mit Hilfe des Mausrads gescrollt werden. Dazu muss die Maus mit Alt+m aktiviert werden.

Die Standardtastenbelegung zum Bewegen in der buflist Bar ist folgende: F1 oder Ctrl+F1) zum Hoch-Scrollen, F2 oder Ctrl+F2 zum Runter-Scrollen, Alt+F1 und Alt+F2 um an den Anfang bzw. an das Ende der Liste zu springen.

Wird das Skript buffers.pl verwendet, müssen die entsprechenden Tasten selbst definiert werden. Sie sind dann vergleichbar mit den vorhanden Tasten für die Nicklist.
Um zum Beispiel folgende Tasten nutzen zu können: F1, F2 um zu scrollen, oder Alt+F1 und Alt+F2 um an den Anfang bzw. das Ende zu springen, finden folgende WeeChat-Befehle Anwendung:

/key bind meta-OP /bar scroll buffers * -100%
/key bind meta-OQ /bar scroll buffers * +100%
/key bind meta-meta-OP /bar scroll buffers * b
/key bind meta-meta-OQ /bar scroll buffers * e
Die Tasten "meta-OP" und "meta-OQ" können im Hinblick auf das jeweils genutzte Terminal variieren. Um die korrekten Tasten zu finden, sollte man mit Alt+k die gewünschte Tastenkombination einfangen. Siehe auch: Benutzerhandbuch / Tastenbelegung.

3.8. Wie kann ich die Länge eines Nicknamens begrenzen oder die Ausrichtung des Nicks im Chatbereich entfernen?

Um die Länge des Nicknamens im Chatbereich auf eine maximale Größe (z.B. 15 Zeichen) zu begrenzen:

/set weechat.look.prefix_align_max 15

Um die Ausrichtung für Nicks zu entfernen:

/set weechat.look.prefix_align none

3.9. Was bedeutet die Anzeige [H: 3(1,8), 2(4)] in der Status-Bar?

Dabei handelt es sich um die sogenannte "hotlist", eine Auflistung der Buffer mit der Anzahl der ungelesenen Nachrichten. Die Reihenfolge ist: highlights (hervorgehobene Nachrichten), private Nachrichten, Nachrichten, Nachrichten mit niedriger Priorität (z.B. join/part).
Die Anzahl der "ungelesen Nachrichten" ist die Anzahl der neuen Nachrichten, die man empfangen hat bzw. angezeigt werden, seitdem man den Buffer das letzte mal betreten hat.

Im Beispiel [H: 3(1,8), 2(4)], handelt es sich um:

  • 1 highlight (hervorgehobene) Nachricht und 8 ungelesene Nachrichten im Buffer #3

  • 4 ungelesene Nachrichten im Buffer #2.

Die Farbe des Buffers/Zählers ist abhängig von der Art der Nachrichten. Die Standardfarben sind:

  • highlight (hervorgehobene Nachricht): lightmagenta / magenta

  • private Nachrichten: lightgreen / green

  • Nachrichten: yellow / brown

  • Nachrichten mit niedriger Priorität: default / default (Textfarbe des Terminals)

Diese Farben können mit den Optionen weechat.color.status_data_* (Buffers) und weechat.color.status_count_* (Zähler) angepasst werden.
Weitere hotlist Eigenschaften können mit Hilfe der Optionen weechat.look.hotlist_* verändert werden.

Siehe Benutzerhandbuch / Screen layout für weitere Informationen zur Hotlist.

3.10. Wie kann man eine mehrzeilige Eingabezeile einstellen?

Mit der Option size kann man angeben, aus wie vielen Zeilen die Eingabezeile bestehen soll (der Standardwert für die Eingabezeile ist 1). Ist der Wert auf "0" gesetzt, wird die Anzahl der Zeilen dynamisch verwaltet. Nutzt man zusätzlich die Option size_max, kann man angeben, wie viele Zeilen für die Eingabezeile maximal genutzt werden dürfen (0 = keine Begrenzung).

Beispiele für die Nutzung einer dynamischen Anpassung der Eingabezeile(n):

/set weechat.bar.input.size 0

maximal zwei Zeilen:

/set weechat.bar.input.size_max 2

3.11. Ist es möglich, nur eine Eingabezeile für alle Fenster zu nutzen (auch falls diese geteilt sind)?

Ja, dazu muss eine Bar des Typs "root" erstellt werden. Diese wiederum muss ein Item besitzen, welches anzeigt, in welchem Fenster man sich aktuell befindet. Außerdem muss die aktuelle Eingabezeile gelöscht werden.

Ein Beispiel:

/bar add rootinput root bottom 1 0 [buffer_name]+[input_prompt]+(away),[input_search],[input_paste],input_text
/bar del input

Falls Du doch nicht zufrieden sein solltest, dann lösche einfach die neue Bar. WeeChat erstellt automatisch eine neue Eingabezeile, sobald das Item "input_text" in keiner anderen Bar genutzt wird:

/bar del rootinput

3.12. Wie kann ich einen Text kopieren und einfügen, ohne dass die Nickliste (Benutzerliste) mit kopiert wird?

Seit WeeChat ≥ 1.0 gibt es den "einfachen Anzeigemodus". Dieser kann mit der Tastenkombination Alt+l (<l> wie in Lima) aktiviert werden. Der Inhalt des aktuellen Fensters wird nach der Aktivierung ohne Formatierung angezeigt.

Jetzt kannst Du die Block-Auswahl nutzen, insofern dein Terminal diesen Modus unterstützt (rxvt-unicode, konsole, gnome-terminal, …​ um nur einige zu nennen ). Im Normalfall erfolgt die Markierung des Textes mittels der Tasten Ctrl+Alt in Verbindung mit der Auswahl durch die Maus.

Eine weitere Möglichkeit besteht darin, die Benutzerliste am oberen oder unteren Rand des WeeChat-Bildschirmes zu positionieren:

/set weechat.bar.nicklist.position top

3.13. Wie kann ich eine URL aufrufen, die einen Zeilenumbruch besitzt?

Seit WeeChat ≥ 1.0 gibt es den "einfachen Anzeigemodus". Dieser kann mit der Tastenkombination Alt+l (<l> wie in Lima) aktiviert werden.

Um URLs einfacher zu öffnen, können alternativ folgende Optionen gesetzt werden:

  • Die Benutzerliste am oberen Bildschirmbereich positionieren.

/set weechat.bar.nicklist.position top
  • Die Ausrichtung bei einem Zeilenumbruch innerhalb eines Wortes deaktivieren (WeeChat ≥ 1.7).

/set weechat.look.align_multiline_words off
  • Die Ausrichtung bei allen Zeilenumbrüchen deaktivieren:

/set weechat.look.align_end_of_lines time

Ab der WeeChat Version ≥ 0.3.6, kann die Option "eat_newline_glitch" aktiviert werden. Damit wird das Zeichen für einen Zeilenumbruch nicht an die dargestellten Zeilen angefügt (dies führt dazu, dass URLs beim Markieren korrekt erkannt werden):

/set weechat.look.eat_newline_glitch on
Bei der Nutzung dieser Option kann es zu Darstellungsfehlern kommen. Wenn dies auftritt, sollte diese Option wieder deaktiviert werden.

Eine weitere Möglichkeit ist, ein Skript zu nutzen:

/script search url

3.14. Ich möchte die Meldungen von WeeChat in einer anderen Sprache ausgeben lassen, ohne WeeChat zu beenden. Ist dies möglich?

Ja, mit WeeChat ≥ 1.0:

/set env LANG de_DE.UTF-8
/upgrade

Mit einer älteren Version von WeeChat:

/script install shell.py
/shell setenv LANG=de_DE.UTF-8
/upgrade

3.15. Wie kann ich 256 Farben in WeeChat nutzen?

256 Farben werden ab der WeeChat Version ≥ 0.3.4 unterstützt.

Zuerst sollte überprüft werden, ob die TERM-Umgebungsvariable korrekt hinterlegt ist. Folgende Werte sind zu empfehlen:

  • falls screen genutzt wird: screen-256color

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

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

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

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

term screen-256color

Falls die Umgebungsvariable TERM einen falschen Wert haben sollte und WeeChat schon gestartet wurde, kann man die Umgebungsvariable mit folgenden WeeChat Befehlen anpassen (WeeChat ≥ 1.0):

/set env TERM screen-256color
/upgrade

Mit der WeeChat Version 0.3.4 muss der Befehl /color genutzt werden, um neue Farben zu erstellen.

Ab Version ≥ 0.3.5 kann in den Optionen für eine zu nutzende Farbe die entsprechende Zahl der Farbe eingetragen werden (optional: mit dem Befehl /color kann man einen Alias für eine Farbe definieren).

Bitte lese Benutzerhandbuch / Farben für weitere Informationen die das Farbmanagement betreffen.

3.16. Wie kann ich in einem Buffer nach einem Text suchen (vergleichbar /lastlog in irssi)?

Die Standardtastenbelegung lautet Ctrl+r (der dazugehörige Befehl: /input search_text_here). Um zu Highlight-Nachrichten zu springen: Alt+p für vorherige, Alt+n für die nächste Nachricht.

siehe Benutzerhandbuch / Standard Tastenbelegung für weitere Informationen zu dieser Funktion.

3.17. Wie kann ich Befehle ausführen, wenn der Terminal (keinen) Fokus hat?

Dazu muss ein spezieller Code an das Terminal gesendet werden, um diese Funktionalität zu aktivieren.

Wichtig:

  • Dazu muss ein moderner xterm-kompatibler Terminal genutzt werden.

  • Des Weiteren scheint es wichtig zu sein, dass die TERM Variable eines der folgenden Werte besitzt: xterm oder xterm-256color.

  • Sollte tmux genutzt werden, muss zusätzlich der Fokus aktiviert werden. Dazu die Zeile set -g focus-events on der Datei .tmux.conf hinzufügen.

  • Dies funktioniert nicht mit screen.

Um den speziellen Code während des Startvorgangs von WeeChat zu aktivieren:

/set weechat.startup.command_after_plugins "/print -stdout \033[?1004h\n"

Zusätzlich sollten noch zwei Tastenbefehle eingebunden werden (der Befehl /print sollte durch einen Befehl Ihrer Wahl ersetzt werden):

/key bind meta2-I /print -core focus
/key bind meta2-O /print -core unfocus

Um zum Beispiel Buffer als gelesen zu markieren, wenn das Terminal den Fokus verlieren sollte:

/key bind meta2-O /input set_unread

3.18. Wird WeeChat in screen ausgeführt, kommt es vor, dass dem eingefügten Text in einem anderen screen-Fenster ~0 und ~1 hinzugefügt wird, weshalb?

Dies wird durch die bracketed paste Option hervorgerufen, die standardmäßig aktiviert ist und nicht korrekt von screen unterstützt wird.

Der bracketed paste Modus kann wie folgt deaktiviert werden:

/set weechat.look.paste_bracketed off

4. Tastaturbelegung

4.1. Aus welchem Grund funktionieren manche Meta-Tasten (alt + Taste) nicht?

Wenn Du einen Terminal wie xterm oder uxterm nutzten solltest, werden einige Meta-Tasten standardmäßig nicht unterstützt. In einem solchen Fall sollte folgende Zeile der Konfigurationsdatei ~/.Xresources hinzugefügt werden:

  • für xterm:

XTerm*metaSendsEscape: true
  • für uxterm:

UXTerm*metaSendsEscape: true

Danach muss resources neu geladen werden (xrdb -override ~/.Xresources) oder man startet X neu.

Sollte die macOS Terminal Applikation genutzt werden, empfiehlt es sich, die Option "Use option as meta key" in den Menü-Einstellungen zu aktivieren. Dadurch kann man die Option Taste als Meta-Taste verwenden.

4.2. Wie kann ich die Tastaturbelegung anpassen?

Die Tasten werden mit dem Befehl /key belegt.

Mit der voreingestellten Tastenkombination Alt+k, kann der Tastaturcode der danach eingetippten Tastenkombination in die Eingabezeile eingefügt werden.

4.3. Mit welcher Tastenkombination kann ich zum Buffer 11 (oder höher) wechseln?

Die Tastenkombination lautet Alt+j, gefolgt von den zwei Ziffern des Buffers. Zum Beispiel, Alt+j, 1, 1 um zum Buffer 11 zu wechseln.

Es kann auch eine neue Taste eingebunden werden um zu einem Buffer zu wechseln:

/key bind meta-q /buffer *11

Eine Auflistung der Standardtastenbelegung findet man in Benutzerhandbuch / Standard Tastenbelegung.

Um zu Buffern zu wechseln die an Position ≥ 100 sind kann ein Trigger definiert werden um dann z.B. mit einem Kurzbefehl /123 zum Buffer #123 zu springen:

/trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none"

4.4. Wie kann ich den globalen Verlaufsspeicher (anstelle des Buffer eigenen) mit den Up-/Down-Tasten nutzen?

Du kannst die Up-/Down-Tasten für den globalen Verlaufsspeicher belegen (als Standardtasten werden genutzt: Ctrl+ und Ctrl+).

Beispiele:

/key bind meta2-A /input history_global_previous
/key bind meta2-B /input history_global_next
Die Tasten "meta2-A" und "meta2-B" können im Hinblick auf das jeweils genutzte Terminal variieren. Um die korrekten Tasten zu finden, sollte man mit Alt+k die gewünschte Tastenkombination einfangen.

5. Mausunterstützung

5.1. Die Mausunterstützung funktioniert nicht, was kann ich tun?

Eine Unterstützung von Mausfunktionen ist seit WeeChat ≥ 0.3.6 verfügbar.

Als erstes sollte man die Mausunterstützung einschalten:

/mouse enable

Falls die Maus von WeeChat nicht erkannt werden sollte, muss die TERM Variable des Terminals überprüft werden (dies geschieht im Terminal mittels echo $TERM). Entsprechend der ausgegebenen Information, wird ggf. eine Maus nicht unterstützt.

Um zu testen ob eine Mausunterstützung vom Terminal bereitgestellt wird, sollte man folgende Zeile im Terminal eingeben:

$ printf '\033[?1002h'

Jetzt klickt man mit der Maus auf das erste Zeichen im Terminal (linke obere Ecke). Als Ergebnis sollte man folgende Zeichenkette erhalten: " !!#!!".

Um die Mausunterstützung im Terminal zu beenden:

$ printf '\033[?1002l'

5.2. Mausunterstützung funktioniert nicht falls x/y Koordinaten größer 94 (oder 222) Pixel sind, weshalb?

Einige Terminals senden ausschließlich ISO Zeichen für die Mauskoordinaten. Deshalb ist eine Nutzung über 94 (oder 222) Pixel hinausgehend, sowohl in den x- wie auch den y-Koordinaten, nicht gegeben.

Als Abhilfe muss man einen Terminal nutzen, der eine Unterstützung von UTF-8 Koordinaten für die Maus bietet, beispielsweise rxvt-unicode.

5.3. Wie kann ich bei aktivierter Mausunterstützung im Terminal einen Text markieren oder einfügen?

Ist die Mausunterstützung aktiviert, kann mittels gedrückter Shift-Taste (Umschalttaste) ein Text im Terminal markiert oder eingefügt werden, als sei die Mausunterstützung deaktiviert (bei einigen Terminals muss die Alt-Taste anstelle der Shift-Taste gedrückt werden).

6. IRC

6.1. Es treten Probleme bei einer Serververbindung mittels SSL auf. Was kann ich tun?

Falls macOS genutzt wird, muss mittels Homebrew openssl installiert werden. Eine CA-Datei wird mittels Zertifikaten vom Systemschlüssel geladen. Der Pfad zu den Zertifikaten kann in WeeChat eingestellt werden:

/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"

Falls Fehlermeldungen auftreten, die besagen, dass der gnutls Handshake fehlgeschlagen ist, sollte ein kleinerer Diffie-Hellman-Schlüssel verwendet werden (Standardgröße: 2048):

/set irc.server.example.ssl_dhkey_size 1024

Falls Fehlermeldungen auftreten, die besagen, dass das Zertifikat ungültig ist, dann kann die "ssl_verify" Überprüfung deaktiviert werden (die Verbindung ist in diesem Fall weniger sicher):

/set irc.server.example.ssl_verify off

Sollte das Zertifikat für den Server (laut CA) ungültig sein, doch der Benutzer kennt es und vertraut dem Aussteller, dann kann (ersatzweise) der Fingerabdruck (SHA-512, SHA-256 or SHA-1) des Zertifikats von Hand eingetragen werden:

/set irc.server.example.ssl_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b

6.2. Bei einem Verbindungsaufbau zum Server via SSL erhalte ich "TLS Handshake fehlgeschlagen". Wie kann ich das beheben?

Man sollte versuchen, eine andere Priorität zu nutzen (nur WeeChat ≥ 0.3.5); Im folgenden Beispiel muss "xxx" durch den betroffenen Servernamen ersetzt werden:

/set irc.server.xxx.ssl_priorities "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-SSL3.0:%COMPAT"

6.3. Wie kann ich eine SSL gesicherte Verbindung zum freenode Server herstellen?

Die Option weechat.network.gnutls_ca_file sollte auf die Zertifikationsdatei zeigen:

/set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt"

Wenn openssl mit homebrew unter macOS installiert wurde, könnte es sein, dass die Zertifikate in einer anderen Datei bereitgestellt werden:

/set weechat.network.gnutls_ca_file "/usr/local/etc/openssl/cert.pem"
Überprüfe, ob die Zertifikationsdatei auf deinem System installiert wurde. Üblicherweise wird diese Datei durch das Paket "ca-certificates" bereitgestellt.

Konfiguration des Servers, Port angeben, SSL aktivieren und Verbindung herstellen:

/set irc.server.freenode.addresses "chat.freenode.net/7000"
/set irc.server.freenode.ssl on
/connect freenode

6.4. Wie stellt man eine Verbindung zu einem Server her, der "oauth" verlangt?

Einige Server, wie z.B. twitch, verlangen oauth für eine Verbindung.

Bei oauth handelt es sich lediglich um ein Passwort in dem Format "oauth:XXXX".

Um einen solchen Server hinzuzufügen und sich mit diesem zu verbinden, müssen "name", Serveradresse und das OAuth-Token durch passende Werte ersetzt werden:

/server add name irc.server.org -password=oauth:XXXX
/connect name

6.5. Wie kann ich mich vor dem Betreten von Channels identifizieren?

Sollte der Server SASL unterstützen, ist es ratsam auf diese Funktion zurückzugreifen und sich nicht mittels "nickserv" zu authentifizieren:

/set irc.server.freenode.sasl_username "meinNick"
/set irc.server.freenode.sasl_password "xxxxxxx"

Unterstützt der Server keine SASL Authentifizierung, kann eine Verzögerung aktiviert werden, um sich vor dem Betreten von Channels bei "nickserv" zu identifizieren:

/set irc.server.freenode.command_delay 5

6.6. Wie kann ich Channels zur autojoin Option entfernen/hinzufügen?

Um die Liste der autojoin Channels zu editieren, kann der Befehl /set genutzt werden. In folgendem Beispiel wird der "freenode"-Server angepasst:

/set irc.server.freenode.autojoin [TAB]
Man kann den Namen oder den Wert einer Option mit Tab vervollständigen oder mittels Shift+Tab eine teilweise Vervollständigung durchführen, was bei Namen sinnvoll ist, denn so braucht nicht die komplette Liste der Channels neu geschrieben werden.

Es kann auch der /fset Befehl verwendet werden, um die Liste der Channels zu editieren:

/fset autojoin

oder man nutzt ein Skript:

/script search autojoin

6.7. Was ist der Unterschied zwischen dem Befehl /ignore und /filter?

Der Befehl /ignore ist ein (clientseitiger) IRC-Befehl und beeinflusst direkt, welche vom Server empfangenen Nachrichten im IRC-Buffer (Server und Channel) landen. Durch diesen Befehl können bestimmte Nicks oder Hostnamen von bestimmten Servern oder Channels ignoriert werden. Der Befehl wird nicht auf den Inhalt eines IRC-Buffers angewandt. Zutreffende Meldungen werden, bevor sie dem Buffer zugeführt werden, von der "irc"-Erweiterung gelöscht. Es gibt somit keine Möglichkeit, diese Nachrichten rückwirkend anzuzeigen, auch dann nicht, wenn die Ignorierung wieder entfernt wird.

Der Befehl /filter ist im WeeChat core angesiedelt und beeinflusst die Darstellung der Inhalte aller Buffer. Dieser Befehl eröffnet die Möglichkeit, bestimmte Zeilen in Buffern mittels Tags und regulären Ausdrücken nach Präfix und Zeileninhalt zu filtern. Die Zeilen werden dabei nicht gelöscht, lediglich die Darstellung im Buffer wird unterdrückt. Die gefilterten Zeilen können zu jeder Zeit dargestellt werden, indem der Filter deaktiviert wird. Die voreingestellte Tastenkombination zum Aktivieren bzw. Deaktivieren aller Filter ist Alt+-.

6.8. Wie kann ich join/part/quit Meldungen in den IRC Channels filtern/unterdrücken?

Zum einen mit dem Smart-Filter. Bei dessen Anwendung werden join/part/quit-Meldungen von Usern angezeigt, die kürzlich noch etwas geschrieben haben:

/set irc.look.smart_filter on
/filter add irc_smart * irc_smart_filter *

Es besteht auch die Möglichkeit einer globalen Filterung. Dabei werden alle join/part/quit Nachrichten unterdrückt:

/filter add joinquit * irc_join,irc_part,irc_quit *
Für weitere Hilfe: /help filter, /help irc.look.smart_filter und Benutzerhandbuch / einfacher Filter für join/part/quit Nachrichten.

6.9. Wie kann ich Server-Nachrichten filtern, wenn ich einen IRC Channel betrete?

Ab WeeChat ≥ 0.4.1 kann man auswählen, welche Server-Nachrichten beim Betreten eines Channels angezeigt und welche verborgen werden sollen. Dazu nutzt man die Option irc.look.display_join_message (für weitere Informationen, siehe /help irc.look.display_join_message).

Um Nachrichten visuell zu verbergen, können diese gefiltert werden. Dazu wird der Befehl /filter auf bestimmte Nachrichten-Tags angewandt. Das Tag irc_329 kennzeichnet beispielsweise das Erstellungsdatum des Channels. Siehe /help filter, um weitere Informationen über die Filterfunktion zu erhalten.

6.10. Wie kann ich voice Nachrichten filtern (z.B. auf Bitlbee Servern)?

Voice Nachrichten zu filtern ist nicht einfach, da der Voice-Modus mit anderen Modi in einer IRC Nachricht kombiniert werden kann.

Möchte man Voice-Nachrichten z.B. bei Bitlbee unterdrücken, da diese dazu genutzt werden um den Abwesenheitsstatus anderer User anzuzeigen und man nicht von diesen Mitteilungen überflutet werden möchte, kann man WeeChat anweisen, abwesende Nicks in einer anderen Farbe darzustellen.

Nutzt man Bitlbee ≥ 3, sollte man im &bitlbee Channel folgendes eingeben:

channel set show_users online,away

für ältere Versionen von Bitlbee gibt man im &bitlbee Channel ein:

set away_devoice false

Um sich in WeeChat anzeigen zu lassen, welche Nicks abwesend sind siehe: abwesende Nicks.

Wenn man wirklich Voice-Nachrichten filtern möchte, kann folgender Befehl angewandt werden. Allerdings ist diese Lösung nicht perfekt, da bei mehren Modi als erstes der Voice Modus aufgeführt sein muss:

/filter add hidevoices * irc_mode (\+|\-)v

6.11. Wie kann ich Nicks in der Benutzerliste anzeigen lassen die abwesend sind?

Dazu wird mit der Option irc.server_default.away_check eingestellt, in welchem Zeitintervall die Überprüfungen auf Abwesenheit stattfinden sollen. Die Angabe des Wertes erfolgt in Minuten.

Mit der Option irc.server_default.away_check_max_nicks kann festgelegt werden, in welchen Channels eine Überprüfung stattfinden soll. Hierbei stellt der angegebene Wert die maximale Anzahl an Nicks in einem Channel dar, die den Channel gleichzeitig besuchen dürfen.

Im folgenden Beispiel wird der Abwesenheitsstatus alle fünf Minuten überprüft. Dabei werden aber nur solche Channels berücksichtigt, die nicht mehr als 25 Teilnehmer haben:

/set irc.server_default.away_check 5
/set irc.server_default.away_check_max_nicks 25
Für WeeChat ≤ 0.3.3, lauten die Optionen irc.network.away_check und irc.network.away_check_max_nicks.

6.12. Wie kann ich mich benachrichtigen lassen, falls mich jemand in einem Channel direkt anspricht (highlight)?

Seit WeeChat ≥ 1.0 gibt es standardmäßig den Trigger "beep", der an das Terminal ein BEL Signal schickt, sobald man eine highlight (hervorgehobene) oder private Nachricht erhält. Nun muss man lediglich im Terminalprogramm oder dem Multiplexer (screen/tmux) einstellen, welcher Befehl ausgeführt werden soll, sobald das Terminal das BEL Signal erhält.

Der Trigger "beep" kann auch direkt an einen externen Befehl gekoppelt werden:

/set trigger.trigger.beep.command "/print -beep;/exec -bg /Pfad/zum/Befehl Argumente"

Wird eine ältere Version von WeeChat genutzt, können auch die Skripten beep.pl oder launcher.pl genutzt werden.

Beim launcher.pl Skript müssen noch die Befehle angepasst werden:

/set plugins.var.perl.launcher.signal.weechat_highlight "/Pfad/zum/Befehl Argumente"

Es gibt weitere Skripten, die auch zu diesem Thema passen:

/script search notify

6.13. Wie kann ich Highlights (Hervorhebungen) von bestimmten Nicks deaktivieren?

Ab WeeChat ≥ 0.3.4 kann die Eigenschaft hotlist_max_level_nicks_add für den entsprechenden Buffer gesetzt werden. Dies kann für einzelne Nicks, einen Buffer oder eine Gruppe von Buffern (z.B. IRC Server) gelten.

Um nun Highlights (Hervorhebungen) für bestimmte Nicks zu deaktivieren, muss man die entsprechende Eigenschaft auf 2 setzen:

/buffer set hotlist_max_level_nicks_add joe:2,mike:2

Diese Buffereigenschaft wird aber nicht permanent in der Konfiguration gespeichert. Um diese Eigenschaften permanent zu verwenden, muss man das Skript buffer_autoset.py nutzen:

/script install buffer_autoset.py

Um zum Beispiel Highlights (Hervorhebungen) von Nick "mike" im Channel #weechat auf dem IRC Server freenode zu deaktivieren:

/buffer_autoset add irc.freenode.#weechat hotlist_max_level_nicks_add mike:2

Um dies auf den kompletten freenode Server anzuwenden:

/buffer_autoset add irc.freenode hotlist_max_level_nicks_add mike:2

Für weitere Beispiele, siehe /help buffer_autoset.

6.14. Wie kann ich bei zusammengefügten Buffern den Zielbuffer ändern (z.B. bei einem Server-Buffer)?

Die Standardtastenkombination ist Ctrl+x. Der entsprechende Befehl lautet: /input switch_active_buffer.

7. Erweiterungen / Skripten

7.1. Ich benutze OpenBSD aber WeeChat lädt keine Erweiterungen - weshalb?

Unter OpenBSD enden die Dateinamen von Erweiterungen mit ".so.0.0" (".so" bei Linux).

Um dies zu beheben, muss folgendes konfiguriert werden:

/set weechat.plugin.extension ".so.0.0"
/plugin autoload

7.2. Wie kann ich Skripten installieren? Sind Skripten kompatibel mit anderen IRC Clients?

Seit WeeChat ≥ 0.3.9 gibt es den Befehl /script um Skripten zu installieren und zu verwalten (siehe /help script um eine Hilfe zu erhalten). Nutzt man eine ältere Version von WeeChat kann man die Skripten weeget.py und script.pl nutzen.

Die Skripten für WeeChat sind mit anderen IRC-Clients nicht kompatibel und vice versa.

7.3. Der Befehl "/script update" liest die Skriptliste nicht ein, wie kann ich das beheben?

Als erstes sollte das Kapitel über SSL Verbindungen in dieser FAQ gelesen werden (besonders über die Option weechat.network.gnutls_ca_file).

Wenn das nicht hilft, sollte die Skriptliste von Hand gelöscht werden. Dazu folgenden Befehl in der Shell ausführen:

$ rm ~/.weechat/script/plugins.xml.gz

Danach sollte man noch einmal versuchen die Datei herunter zu laden:

/script update

Wenn der Fehler weiterhin auftritt, kann alternativ die automatische Updatefunktion in WeeChat deaktiviert werden. Das bedeutet aber auch, dass die Skripten von Hand aktuell gehalten werden müssen.

  • dazu in WeeChat:

/set script.scripts.cache_expire -1
  • und in der Shell, mit installiertem curl:

$ cd ~/.weechat/script
$ curl -O https://weechat.org/files/plugins.xml.gz

7.4. Ich habe aspell Wörterbücher auf mein System installiert. Wie kann ich diese nutzen, ohne WeeChat neu starten zu müssen?

Du brauchst lediglich die "spell"-Erweiterung neu zu laden:

/plugin reload spell
Bis WeeChat ≤ 2.4, hieß die "spell"-Erweiterung, "aspell". Somit lautet der Befehl: /plugin reload aspell.

8. Einstellungen

8.1. Kann ich die Konfigurationsdateien (*.conf) händisch verändern?

Das ist möglich, wird aber NICHT empfohlen.

Der interne WeeChat Befehl /set sollte nach folgenden Regeln genutzt werden:

  • Mittels Tab-Taste kann man sehr einfach Namen und Werte von Optionen vervollständigen. (Mittels Shift+Tab kann eine teilweise Vervollständigung durchgeführt werden, was beim Namen nützlich ist.)

  • Der neue Wert wird auf Plausibilität geprüft und bei einem Fehler eine entsprechende Meldung ausgegeben.

  • Der neue Wert wird umgehend genutzt. Es ist nicht notwendig, WeeChat neu zu starten oder Daten neu zu laden.

Solltest Du die Dateien weiterhin von Hand ändern wollen, dann solltest Du folgendes beachten:

  • Wird ein ungültiger Wert eingetragen, gibt WeeChat beim Start einen Fehler aus und der ungültige Wert wird verworfen. (Der Standardwert für die entsprechende Option wird dann genutzt.)

  • Wird der WeeChat-Befehl /reload angewandt, sollten vor dem Editieren der *.conf-Dateien die aktuellen Einstellungen mit Hilfe des Befehls /save gesichert werden. Ansonsten droht Datenverlust.

8.2. Wie kann ich erreichen, dass WeeChat weniger Speicher verbraucht?

Damit WeeChat weniger Speicher benötigt, solltest Du folgende Tipps umsetzen:

  • nutze die aktuelle Version (man kann davon ausgehen das eine aktuelle Version weniger Speicherlecks besitzt, als eine vorherige Version)

  • lade keine Erweiterungen die Du nicht benötigst. Zum Beispiel: Buflist, Fifo, Logger, Perl, Python, Ruby, Lua, Tcl, Guile, JavaScript, PHP, Spell, Xfer (wird für DCC benötigst), siehe /help weechat.plugin.autoload.

  • installiere ausschließlich Skripten die Du auch nutzt

  • falls man SSL NICHT nutzt, sollte kein Zertifikat geladen werden. In diesem Fall, einfach den Eintrag in folgender Option leer lassen: weechat.network.gnutls_ca_file

  • der Wert der Option weechat.history.max_buffer_lines_number sollte möglichst niedrig eingestellt werden oder die Option weechat.history.max_buffer_lines_minutes verwendet werden.

  • nutze einen kleineren Wert für die Option weechat.history.max_commands

8.3. Wie kann ich WeeChat dazu bewegen die CPU weniger zu beanspruchen?

Man sollte sich die Tipps zum Speicherverbrauch ansehen und zusätzlich diese Tipps beherzigen:

  • "nicklist"-Bar sollte versteckt werden: /bar hide nicklist

  • die Sekundenanzeigen in der Statusbar sollte deaktiviert werden: /set weechat.look.item_time_format "%H:%M" (dies ist die Standardeinstellung)

  • die Echtzeit Rechtschreibkorrektur sollte deaktiviert werden (falls sie aktiviert wurde): /set spell.check.real_time off

  • die Umgebungsvariable TZ sollte gesetzt sein (zum Beispiel: export TZ="Europe/Berlin"). Dadurch wird verhindert, dass auf die Datei /etc/localtime häufig zugegriffen wird.

8.4. Ich bin ein bisschen paranoid was Sicherheit betrifft. Welche Einstellungen kann ich vornehmen, um noch mehr Privatsphäre zu erlangen?

Deaktiviere IRC part und quit Nachrichten:

/set irc.server_default.msg_part ""
/set irc.server_default.msg_quit ""

Deaktiviere die automatische Antwort für alle CTCP Anfragen:

/set irc.ctcp.clientinfo ""
/set irc.ctcp.finger ""
/set irc.ctcp.source ""
/set irc.ctcp.time ""
/set irc.ctcp.userinfo ""
/set irc.ctcp.version ""
/set irc.ctcp.ping ""

Entferne und deaktiviere das automatische Ausführen der "xfer"-Erweiterung, die beispielsweise für "IRC DCC" verantwortlich ist:

/plugin unload xfer
/set weechat.plugin.autoload "*,!xfer"

Definiere eine Passphrase und nutze ausschließlich geschützte Daten wann immer es möglich ist, wie z.B. bei Passwörtern: siehe /help secure und nutze /help bei der entsprechenden Option (falls man geschützte Daten nutzen kann, wird es im Hilfstext erwähnt). Siehe auch Benutzerhandbuch / sensible Daten.

Beispiel:

/secure passphrase xxxxxxxxxx
/secure set freenode_username username
/secure set freenode_password xxxxxxxx
/set irc.server.freenode.sasl_username "${sec.data.freenode_username}"
/set irc.server.freenode.sasl_password "${sec.data.freenode_password}"

8.5. Ich möchte meine WeeChat Konfiguration teilen. Welche Dateien kann ich weitergeben und welche sollte ich behalten?

Es können alle ~/.weechat/*.conf Dateien geteilt werden. Hiervon ausgenommen ist die Datei sec.conf, die durch eine Passphrase verschlüsselte sensible Daten enthalten kann.

In einigen Dateien wie irc.conf können sensible Daten, z.B. Passwörter für Server oder Channels im Klartext hinterlegt sein. (Das heißt, insofern diese nicht mit Hilfe des Befehls /secure verschlüsselt in der Datei sec.conf gesichert wurden).

Siehe Benutzerhandbuch / Dateien und Verzeichnisse für weitere Informationen über Konfigurationsdateien.

9. Entwicklung

9.1. Was kann ich machen, falls ich einen Fehler gefunden habe, mich nach neuen Funktionen erkundigen oder Patches einsenden möchte?

9.2. Wenn man WeeChat in gdb startet, kann ein Thread-Fehler auftreten. Was beudeutet das?

Falls man WeeChat in gdb ausführt, kann folgende Fehlermeldung erscheinen:

$ gdb /Pfad/zu/weechat
(gdb) run
[Thread debugging using libthread_db enabled]
Cannot find new threads: generic error

Um diesen Fehler zu beheben, sollte man gdb wie folgt aufrufen (der Pfad zu libpthread und WeeChat muss natürlich an das eigene System angepasst werden):

$ LD_PRELOAD=/lib/libpthread.so.0 gdb /Pfad/zu/weechat
(gdb) run

9.3. Auf welchen Plattformen läuft WeeChat und wird es noch auf andere Betriebssysteme portiert?

Eine vollständige Liste der Portierungen findest Du unter: https://weechat.org/download.

Wir geben unser Bestes, WeeChat auf möglichst viele Plattformen zu portieren. Deshalb ist jede Hilfe gerne gesehen, die es uns ermöglicht, WeeChat auf noch nicht unterstützten Betriebssystemen testen zu können. Das Gleiche gilt für Systeme, zu denen wir keinen Zugang haben.

9.4. Ich möchte den Entwicklern von WeeChat helfen. Was kann ich tun?

Es gibt einiges zu tun - z.B. testen, programmieren, dokumentieren, …​

Bitte kontaktiere uns via IRC oder E-Mail, wirf einen Blick auf die Support-Seite: https://weechat.org/about/support

Du kannst uns Geld zur Unterstützung der weiteren Entwicklung spenden. Details hierzu gibt es auf: https://weechat.org/donate