Ich nutze WeeChat als IRC-Frontend im Zusammenspiel mit dem ZNC + InspIRCd-Setup im Lab.

Setup#
Für die deklarative Konfiguration und den Rollout verwende ich Home-Manager — wie WeeChat dabei als reproduzierbares Nix-Artefakt entsteht und sich am Bouncer einklinkt, habe ich separat beschrieben . Hier geht es um die Konfiguration selbst. Mein Flake zur Verwaltung aller Systeme findest du hier ; einen ausführlicheren Blogpost dazu schreibe ich bei Gelegenheit.
Netzwerke und ZNC#
Vier IRC-Server stehen in irc.conf — drei laufen über den Bouncer, einer (Quakenet, mehr Gewohnheit als Vernunft) direkt:
- libera, hackint und local — den cluster-internen IRCd
— erreiche ich über den ZNC-Bouncer, der unter
bnc.this-is-fine.social/+6697via TLS hängt. Für ZNC aktiviere ich zusätzliche IRC-Capabilities (znc.in/server-time-iso,znc.in/self-message, …).
${sec.data} und die Passphrase hierfür wird beim Startup von WeeChat über pass mit
passphrase_command = "pass show apps/weechat/passphrase" entschlüsselt.Layout: Bars und Buffer#
weechat.conf definiert ein eigenes Bar-Set — die Statuszeile unten ist absichtlich weg; Kontext steckt in der Title-Bar:
1+-- buflist (oben) ----------------------------------+
2| title: buffer_title | nicklist count | typing |
3+-- chat (Mitte) ---------------------+-- nicklist --+
4| | (w>200) |
5+-- input (unten) --------------------+-------------+
6status: hidden (Kontext aus title-Bar)
autosort.conf (v3-Regeln) hält highmon oben, Channels unten:
1[v3]
2rules = "["${if:${buffer.name}==highmon?100:0}", "${if:${buffer.full_name}==core.weechat?0:1}", "${if:${type}==server?0:1}", "${if:${type}==private?0:2}", "${if:${type}==channel?99}"]"
Look, Farben, Lesefluss#
Die [color]-Section ist eine volle Grau/Orange-Palette (z. B. chat_highlight_bg = 202, Nick-Grautöne 238–246) — nicht das eingebaute Theme.
Python Scripts#
Konfigurierte Script-Optionen (script.conf: autoload an):
- buffer_autohide — Inaktive Buffer verstecken; Ausnahmen für
coreund BitlBee. - histman — Buffer-History beim Schließen; global speichern; Duplikate überspringen.
- histsearch — Farbige In-Buffer-Suche (
ctrl-rinweechat.conf). - grep — Log-Dateien durchsuchen mit Limits.
- text_item — Eigenes chan_name-Bar-Item:
${color:243}${buffer.short_name}.
