hyprland: Migrate config to Lua, bump back to current

Hyprland 0.56.x dropped the hyprlang (.conf) config backend in favor
of Lua-only config. Switch configType to "lua" and rewrite monitors,
workspace/window rules, binds, env vars, and autostart using the new
hl.* dispatcher API. Un-pin the hyprland flake input (back to current,
following root nixpkgs) now that the config no longer depends on the
old hyprlang backend.

Every module that injects Hyprland keybinds (foot, wezterm, bemenu,
music, light, sound, screenshot, physlock, hyprlock) is converted to
the same Lua bind syntax, since the config is all-or-nothing per
configType. hyprlock's swayidle dpms toggle and the hyprland-monitors
hotplug script's hyprctl dispatch calls are updated to the new
hl.dsp.* expression syntax the same way.

One behavior change: hl.workspace_rule keeps only the last monitor set
per workspace (unlike hyprlang's rule list), so workspaces that used
to declare two candidate monitors now declare one static default;
the hyprland-monitors service still re-dispatches the correct monitor
on startup and hotplug.
This commit is contained in:
Alexander Heldt
2026-08-26 14:08:28 +02:00
parent 548507d60b
commit acebeaf180
12 changed files with 414 additions and 186 deletions
+2 -3
View File
@@ -33,9 +33,8 @@
};
hyprland = {
# Pinned pre-0.56.0: 0.56.0 dropped the hyprlang (.conf) config
# backend in favor of Lua-only config. Bump once migrated.
url = "github:hyprwm/Hyprland/79bc0ca16e7cca40c247a9200634d150fa8193d1";
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland-contrib = {