Bumps nixpkgs nixos-25.11 -> nixos-26.05, home-manager release-25.11 ->
release-26.05, and pins stylix to release-26.05 (was unpinned master).
`nix flake check --no-build` and `nomarchy-eval-matrix` are both clean and
the full system builds (nixos-system-nomarchy-26.05).
Breaking-change fixes required by 26.05:
- stylix-compat: drop the `programs.neovim.initLua` shim — HM 26.05 declares
it natively, so the shim was a duplicate-option error.
- swww was renamed to awww (binaries gone, no `init` subcommand). Dropped swww
entirely and unified the wallpaper path on swaybg (the daemon this distro
actually runs): nomarchy-theme-bg-next now delegates to nomarchy-theme-bg-set,
swaybg added to the theme-engine script deps, swww removed from package lists.
- default config: add a placeholder `fileSystems."/"` — 26.05's systemd stage-1
forces fsType during plain toplevel eval (the VM build overrides it).
- services.resolved: extraConfig removed, domains/fallbackDns renamed -> migrated
to settings.Resolve.* (RFC42).
- systemd.sleep.extraConfig removed -> settings.Sleep.HibernateDelaySec (RFC42).
- X11 'virtio' video driver removed -> dropped from vm-guest.nix and
nomarchy-live.nix (modesetting drives virtio-gpu).
- nomarchy-eval-matrix: define /persist + /home in the impermanence scenarios
(26.05 maps fsType over every neededForBoot filesystem).
- README/MIGRATION/installer: stale swww references -> swaybg.
KNOWN BLOCKER (why this is on a branch, not main):
In a headless QEMU VM, Hyprland boots and inits GL (virgl) fine but is
OOM-killed after ~19s (3.4 GB peak). Likely a no-display-consumer artifact of
headless rendering (unthrottled frames), but a real Hyprland-26.05 memory
regression can't be ruled out without a real display. Verify on real hardware
(a fresh ISO install) before merging to main; if the desktop is stable there,
the OOM was the headless VM and this can merge.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
These three settings.Login fields were set at default priority, so a
downstream system.nix that wrote (e.g.) `services.logind.settings.Login.HandlePowerKey = "poweroff"`
would collide with Nomarchy's value instead of overriding it. Same
mkDefault treatment as the other lid-switch settings in this block.
Found during Pillar 8 audit of core/system modules.
Five opt-in modules lifted from bernardo/nixos and adapted to Nomarchy's
nomarchy.system.* option namespace. All default off (except keyring which
defaults on); evaluation of the existing VM/ISO is unchanged when the
toggles are unset.
- core/system/snapper.nix: BTRFS timeline snapshots (5h/7d), nixos-rebuild-snap
wrapper that pre-snaps before each switch using the running hostname.
Auto-skips when / isn't BTRFS so impermanence/non-BTRFS hosts are safe.
- core/system/hibernate.nix: suspend-then-hibernate on lid/idle/power-key
with configurable idleMinutes (default 30). Description warns swap is
required.
- core/system/containers.nix: rootless Podman with dockerCompat + dns +
podman-compose, podman-tui, dive. Better default than the docker daemon
for a desktop distro.
- core/system/virtualization.nix: extends the existing uwsm/Hyprland file
with a libvirt + virt-manager + OVMF branch behind
nomarchy.system.virtualization.libvirt.enable.
- core/system/pam.nix: GNOME Keyring auto-unlock at SDDM/login/hyprlock
plus gcr-ssh-agent so SSH keys flow through the keyring instead of a
separate ssh-agent. Default on.
- core/system/options.nix: declares the five new options.
- core/system/default.nix: imports the four new files.
- installer/install.sh: surfaces all five toggles as commented one-liners
in the "Optional Nomarchy modules" section of the generated system.nix.
Verified via the existing dry-run / generator smoke test.
Verified each toggle lights up the right NixOS option (services.snapper,
logind IdleAction, virtualisation.podman/libvirtd, pam.sddm.enableGnomeKeyring)
via nix eval against extendModules. VM and live-ISO toplevels still build.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>