acebeaf180a8f5242f732c7fc9fed973fdbf30d4
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.
config-manager
./config-manager is a module that contains a script to make usage of this flake easier.
To install it
- first add the module to the nixOS system connfiguration
- set
config-manager.flakePath = <path to this flake> - run
nixos-rebuild switch --flake .#<configuration>after thatcmwill be available on$PATH.
Secrets
Secrets are managed by agenix (https://github.com/ryantm/agenix).
Creating new secrets
-
Update
secrets/secrets.nixwith the new secret. -
When inside
./secrets:
EDITOR=vim agenix -e "some-secret.age"
This will create a new secret. To view its content one can do:
EDITOR=vim agenix -d "some-secret.age" -i ~/.ssh/alex.pinwheel
Or use some other SSH key that is has been used to key the secret.
Test VM
Build the test VM with the command:
cm --build-test-vm
and test it with:
cm --run-test-vm
Languages
Nix
76.4%
HTML
20.1%
Shell
3.5%