Hyprland 0.55 Lua-Migration - kleiner Erfahrungsbericht
Moin zusammen,
ich bin vermutlich recht früh in die Hyprland-0.55-Lua-Migration reingestolpert und wollte mal kurz festhalten, was hier so passiert ist. Vielleicht erspart es irgendwem ein paar graue Haare.
Kurzfassung: Die neue Lua-Config funktioniert, aber sie fühlt sich am Anfang schon ein bisschen so an, als hätte jemand aus einer übersichtlichen Config ein kleines Softwareprojekt gemacht. Mächtig, ja. Übersichtlich? Naja. Kommt drauf an, wie viel Kaffee schon im Blut ist.
Ausgangslage:
- Hyprland 0.55.0
- vorher klassische hyprland.conf
- Noctalia Shell / Quickshell
- hyprexpo per hyprpm
- verschiedene Layout-Binds für dwindle, master und scrolling
- Mouse-Binds für Fenster bewegen/resizen
Was bei mir kaputtging oder angepasst werden musste:
1. Einige alte Config-Optionen waren nicht mehr gültig
gibt es so nicht mehr und musste raus.
2. Alte Dispatcher-Aufrufe funktionieren unter Lua anders
Einige Sachen, die vorher in der .conf simpel waren, mussten in Lua anders gebaut werden.
Beispiel: Fenster per Super + linke Maustaste bewegen.
Alt:
In Lua musste daraus sinngemäß werden:
3. Layout-Wechsel per hyprctl keyword ging nicht mehr
Meine alten Binds zum Umschalten zwischen dwindle/master/scrolling liefen über:
Hyprland 0.55 meldete dazu bei Lua-Configs:
Ich habe das dann direkt in Lua gelöst:
local function set_layout(name)
return function()
hl.config({
general = {
layout = name,
},
})
end
end
Und dann:
hl.bind(mainMod .. " + CTRL + 8", set_layout("master"))
hl.bind(mainMod .. " + CTRL + 7", set_layout("dwindle"))
hl.bind(mainMod .. " + CTRL + 9", set_layout("scrolling"))
4. hyprexpo / Hyprland-Plugins
Bei mir war hyprexpo zwar in "hyprpm list" noch als enabled markiert, aber:
sagte:
"hyprpm reload" wollte nicht sauber, und "hyprpm update" kam nicht komplett durch. Soweit ich gesehen habe, war der offizielle hyprland-plugins Stand zu dem Zeitpunkt noch nicht sauber für meine laufende Hyprland-0.55-Version gebaut bzw. geladen. Also: Expo erstmal auskommentiert und warten, bis upstream nachzieht.
5. Noctalia App-Launcher
Das war der fiesere Teil.
Noctalia startete Apps in meinem Setup intern über:
Mit Lua-Config wurde daraus bei mir quasi ein ungültiger Lua-Ausdruck. Ergebnis: Apps wie Vivaldi, Thunar, Texteditor usw. starteten aus dem Launcher nicht mehr richtig.
Gefixt wurde es bei mir in:
Die Spawn-Funktion musste von altem
auf Lua-kompatibles
umgebaut werden. Ich gehe aber davon aus, dass Noctalia das bald selbst patcht, falls Hyprland 0.55 breiter ankommt und das Problem dort ebenfalls auftritt.
6. Struktur der Config
Früh bei der Migration ist mir aufgefallen, wie unübersichtlich die Umstellung auf Lua wirkt, wenn alles in einer einzigen Config landet. Aus einer vorher recht direkt lesbaren hyprland.conf wurde sehr schnell ein großer Lua-Klumpen: funktional, aber schön ist anders.
Deswegen habe ich die Config relativ früh in Module zerlegt:
- "hyprland.lua" als Einstieg
- "modules/environment.lua"
- "modules/monitor.lua"
- "modules/autostart.lua"
- "modules/options.lua"
- "modules/animations.lua"
- "modules/binds.lua"
- "modules/rules.lua"
Das macht Lua nicht automatisch schön, aber wenigstens findet man Dinge wieder, ohne innerlich zu altern.
Mein Fazit:
Lua ist für Hyprland sicher mächtig und langfristig wahrscheinlich spannend. Aber für normale Desktop-Configs ist es erstmal deutlich weniger direkt als die alte ".conf". Wer nur Windowrules, Binds, Layouts und ein bisschen Optik hat, wird sich vermutlich fragen, warum aus drei lesbaren Zeilen plötzlich eine kleine Funktion wurde.
Trotzdem: Es läuft jetzt. Die meisten Probleme waren keine Totalschäden, sondern eher neue Syntax, neue Dispatch-Logik und Tools, die noch vom alten Verhalten ausgehen.
Und ja: Ich will mein altes hyprland.conf-Gefühl trotzdem ein bisschen zurück. ![]()