<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home-Manager on Fuchsbau</title><link>https://this-is-fine.io/tags/home-manager/</link><description>Recent content in Home-Manager on Fuchsbau</description><generator>Hugo</generator><language>de-DE</language><lastBuildDate>Fri, 26 Sep 2025 19:42:30 +0200</lastBuildDate><atom:link href="https://this-is-fine.io/tags/home-manager/index.xml" rel="self" type="application/rss+xml"/><item><title>Mein WeeChat-Setup: Deklarativ mit Nix, eingeklinkt am Bouncer</title><link>https://this-is-fine.io/posts/20250926-weechat-nix-bouncer/</link><pubDate>Fri, 26 Sep 2025 19:42:30 +0200</pubDate><guid>https://this-is-fine.io/posts/20250926-weechat-nix-bouncer/</guid><description>&lt;p&gt;Mal etwas, das nichts mit dem Lab zu tun hat: mein IRC-Client. Ich nutze seit Jahren 

&lt;a href="https://weechat.org/" rel="external noopener" target="_blank"&gt;WeeChat&lt;/a&gt;
, und wie bei fast allem auf meinen Maschinen gilt auch hier — nichts wird von Hand zusammengeklickt, alles ist reproduzierbar. WeeChat samt Konfiguration kommt deshalb aus einem 

&lt;a href="https://nix-community.github.io/home-manager/" rel="external noopener" target="_blank"&gt;Home-Manager&lt;/a&gt;
-Modul und verbindet sich ausschließlich mit meinem Bouncer.&lt;/p&gt;
&lt;h2 id="weechat-als-nix-modul"&gt;WeeChat als Nix-Modul&lt;/h2&gt;
&lt;p&gt;Der Client soll auf jeder meiner Maschinen identisch dastehen — gleiche Plugins, gleiche Skripte, gleiche Tastenbelegung. Genau dafür ist Nix gemacht. Mein Modul baut WeeChat über &lt;code&gt;pkgs.weechat.override&lt;/code&gt; mit exakt den Bausteinen, die ich brauche, und nicht mehr:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;weechat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pkgs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;weechat&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;override&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;configure&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;availablePlugins&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;plugins&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;availablePlugins&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;withPackages&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_ps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;scripts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;pkgs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;weechatScripts&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="n"&gt;autosort&lt;/span&gt; &lt;span class="n"&gt;weechat-grep&lt;/span&gt; &lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Das Python-Plugin und die beiden Skripte — 

&lt;a href="https://weechat.org/scripts/source/autosort.py.html/" rel="external noopener" target="_blank"&gt;autosort&lt;/a&gt;
 zum automatischen Einsortieren der Buffer und &lt;code&gt;weechat-grep&lt;/code&gt; zum Durchsuchen der Logs — sind damit Teil des Build-Outputs, nicht etwas, das ich nach der Installation noch nachziehen müsste.&lt;/p&gt;</description></item></channel></rss>