Was macht man, wenn das Auto einen neuen Zahnriemen und neue Stoßdämpfer braucht, deshalb in der Werkstatt hockt und man sich frei genommen hat, weil man keine Lust hat, 90 Minuten mit den Öffentlichen zu fahren, obwohl man mit dem Auto gerade mal 17 bis 20 Minuten braucht?
Richtig.
Man startet ein kleines Nebenprojekt.
Ich habe mich vor einiger Zeit dazu entschlossen, auf meinem alten Laptop von 2011 statt Debian mal Void zu installieren. Irgendwie erschien mir das sinnvoller: lieber langsam rollend unterwegs sein, als den Kleinen alle paar Jahre mit einem größeren Versionssprung zu quälen.
Also habe ich erstmal auf dem Main-Rechner Void auf eine externe Platte geklatscht, ganz klassisch mit der offiziellen Void-ISO mit XFCE. Soweit so gut. Die Installation lief brav durch, danach wurde Void entspannt aktualisiert.
Und da war ich tatsächlich erstmal baff: Die ISO ist gefühlt fast anderthalb Jahre alt, ich habe sogar erst die lokale Version installiert und danach aktualisiert — und es lief einfach problemlos durch. Keine Explosion. Kein Paketmanager, der in Flammen aufgeht. Einfach Update. Frech.
Da war ich natürlich erstmal hochmotiviert.
Das Problem: Bei meinen letzten Void-Ausflügen bin ich öfter mal auf die Schnauze gefallen, weil Hyprland nicht offiziell in den Void-Repos liegt. Mit Fremdrepos hatte ich dann öfter das Vergnügen, dass normale Void-Updates plötzlich schwierig wurden, weil der Hyprland-Stack gerne mal Mischmasch macht. Vielleicht bin ich auch einfach zu dämlich für Paketmanager, will ich gar nicht ausschließen.
Jedenfalls kam ich auf die glorreiche Idee:
Bauste dir den Scheiß halt selber zusammen.
Wie gesagt: Ich war noch motiviert.
Also Hyprland-Repo geklont und angefangen zu basteln. Nur baut man bei Hyprland eben nicht „mal eben Hyprland“. Da hängen gefühlt 37 kleine Hypr*-Puzzleteile dran, die alle gerne in genau der richtigen Reihenfolge, mit genau den richtigen Versionen, genau den richtigen Patches und genau der passenden Laune gebaut werden möchten.
Ein bisschen wie IKEA, nur dass die Anleitung aus CMake-Fehlern besteht.
Zwischendurch durfte ich mich dann mit Dingen wie GCC-/libstdc++-Eigenheiten, fehlenden Funktionen, kleinen Source-Patches und dem üblichen „warum zur Hölle findet er diese Library jetzt wieder nicht?“-Ballett beschäftigen.
Nach fast jedem Puzzleteil war irgendwo Handarbeit nötig. Ich bin dabei nur leicht wahnsinnig geworden.
Aber naja: Was man anfängt, muss man auch zu Ende bringen.
So oder so ähnlich.
Ganz ehrlich: Es ist ein Wunder, wenn ich mal etwas zu Ende bringe. Passiert ungefähr so oft wie ein wirklich entspannter Kernel-Build bei Vollmond.
Nach ungefähr fünf Stunden Hin und Her stand der Hyprland-Stack dann endlich. Fehlte nur noch eine einigermaßen vernünftige hyprland.lua.
Zum Glück habe ich davon gefühlt eine Massentierhaltung. Also irgendeine genommen, etwas angepasst, in ~/.config/hypr/ geworfen und siehe da: Es funktionierte halbwegs.
Aber ich sage es euch: Void hasst mich, glaube ich.
Was bei Ubuntu ungefähr eine Stunde gedauert hat, hat bei Void fünf Stunden gedauert. Gut, sei’s drum. Ich wollte es ja so.
Dann fehlte natürlich noch Noctalia.
Und weil ich Hyprland ja schon selbst gebaut hatte, dachte ich mir: Wenn quälen, dann richtig.
Also Noctalia auch noch selbst gebaut. Das war gar nicht mal so nervig wie Hyprland, aber gut, da hängen auch weniger Einzelteile dran. Trotzdem gab es wieder kleine Nettigkeiten: fehlende Qt-Abhängigkeiten, QuickShell/Noctalia-QS-Gedöns und dieses typische „ach, das Binary heißt jetzt hier anders als erwartet“-Gefühl.
Danach kam noch der Runtime-Kleinkram. Portale, Polkit-Agent, PipeWire, LightDM-Session und dieser schöne Moment, wenn man von XFCE Richtung Hyprland wechseln will und plötzlich merkt: alte Sitzungsreste sind auch nur Geister mit Prozess-ID.
Nach rund acht Stunden — nein, nicht komplett am Stück, um Gottes willen, dann wäre ich endgültig durchgedreht — hatte ich am Ende einen reproduzierbaren Hyprland-&-Noctalia-Baukasten für Void.
Mit Build-Skripten, Runtime-Wrappern, LightDM-Session, Dotfiles, generischer Hyprland-Konfig und einer Kiru-NVIDIA-Konfig. Also nicht nur „läuft irgendwie lokal“, sondern eher „könnte man tatsächlich nochmal nachbauen“.
Aber den Nerv, das Ganze heute noch auf den alten Laptop zu schaufeln, habe ich nicht mehr.
Warum schreibe ich das alles?
Wahrscheinlich, um mich abzureagieren und mir den Build-Frust von der Seele zu tippen. Funktioniert bei mir ganz gut.
Wenigstens ist es mir gelungen, den XFCE- und Void-Geist farblich irgendwie nach Hyprland und Noctalia mitzunehmen. Dieses dunkle, grünlich-tealige Void-Gefühl ist geblieben, nur jetzt mit schickerer Shell und deutlich mehr selbstverschuldetem Schmerz im Hintergrund.
Danke und sorry, falls ihr euch das wirklich bis zum Ende durchgelesen habt.