- Switch from hyprlang (hyprland.conf) to lua (hyprland.lua) config format
- Use configType = "lua" explicitly for clarity
- Replace exec-once with on = { _args = [...] } hook for startup commands
- Convert windowrule strings to window_rule attribute-set syntax with
mkLuaInline match objects and option sets per Home Manager module
- Change mkIf guard from config.desktop.wm.hyprland.enable to
config.wayland.windowManager.hyprland.enable (correct option path)
- Preserve all existing host-specific monitor layouts and window rules
- Both configs: m3-ares (eDP-1 + HDMI) and m3-kratos (DP-1 + DP-2)
- Run alejandra after changes; parse validation passes (exit 0)
Refs:
- https://github.com/nix-community/home-manager/blob/master/modules/services/window-managers/hyprland.nix
- https://wiki.hypr.land/Configuring/Start/
- Delete home/features.old/ (archived old flat feature modules)
- All content migrated to new profile-based structure
- Run alejandra formatter over 13 changed files
- nix flake check passes cleanly
- Update opencode to v1.1.34
- Add new opencode agents (Prometheus, Metis, Momus, Atlas) and categories
- Switch m3ta-nixpkgs back to local path
- Add basecamp client credentials for m3-ares and m3-kratos
- Set NIXOS_OZONE_WL=1 for better Wayland app support in Hyprland
- Remove redundant wrl.enable from flatpak portal config
The unstable tuxedo-drivers module has a type error where cfg.settings
(a set) is passed directly to lib.any which expects a list. This was
introduced in commit 15d9ec6 and fixed in a77e30e, but the fix hasn't
propagated to our nixpkgs input yet.
Workaround: disable the unstable module and import from nixpkgs-stable.