feat: bump to NixOS 26.05 (Yarara) — WIP, desktop unverified on hardware

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>
This commit is contained in:
Bernardo Magri
2026-06-06 15:46:17 +01:00
parent 83218a01f3
commit 3bdfc3552e
16 changed files with 128 additions and 95 deletions

View File

@@ -7,9 +7,9 @@ in
config = lib.mkIf cfg.enable {
# Wait this long after suspend before hibernating, and use the same
# delay as the idle-action timeout so the two paths agree.
systemd.sleep.extraConfig = ''
HibernateDelaySec=${toString (cfg.idleMinutes * 60)}
'';
# nixpkgs 26.05 replaced systemd.sleep.extraConfig with the RFC42-style
# `settings` attrset.
systemd.sleep.settings.Sleep.HibernateDelaySec = cfg.idleMinutes * 60;
services.logind = {
settings.Login = {

View File

@@ -19,11 +19,13 @@ in
services.resolved = {
enable = lib.mkDefault (cfg.dns != "DHCP");
dnssec = lib.mkDefault "allow-downgrade";
domains = lib.mkDefault [ "~." ];
fallbackDns = lib.mkDefault [ "9.9.9.9" "149.112.112.112" ];
extraConfig = lib.mkDefault ''
DNSOverTLS=opportunistic
'';
# nixpkgs 26.05 moved resolved.conf options into the RFC42-style `settings`
# attrset (extraConfig dropped; domains/fallbackDns renamed).
settings.Resolve = {
Domains = lib.mkDefault [ "~." ];
FallbackDNS = lib.mkDefault [ "9.9.9.9" "149.112.112.112" ];
DNSOverTLS = lib.mkDefault "opportunistic";
};
};
environment.systemPackages = [

View File

@@ -15,7 +15,9 @@
# Improve VM resolution and guest experience
services.spice-vdagentd.enable = true;
services.qemuGuest.enable = true;
services.xserver.videoDrivers = [ "qxl" "virtio" "modesetting" ];
# nixpkgs 26.05 removed the standalone X11 'virtio' driver; modesetting
# drives virtio-gpu via KMS, so it covers the same hardware.
services.xserver.videoDrivers = [ "qxl" "modesetting" ];
# Provide the flake to the VM for local rebuilding
environment.etc."nomarchy".source = lib.mkDefault inputs.self;