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:
@@ -8,7 +8,7 @@
|
||||
- **Modular Merging Architecture:** Distro code and user code are strictly separated. You can update the distro core without ever touching or breaking your personal configurations.
|
||||
- **Interactive "Smart" Installer:** Detects hardware, sets up networking, localizes timezones/keymaps, and offers multi-select software profiles.
|
||||
- **Erase Your Darlings (Optional):** Optional BTRFS root-wipe on boot ensures your system stays pristine and 100% declarative.
|
||||
- **Dynamic Theming Engine:** 20+ built-in themes with instant UI feedback via IPC (swww, waybar, and stylix).
|
||||
- **Dynamic Theming Engine:** 20+ built-in themes with instant UI feedback via IPC (swaybg, waybar, and stylix).
|
||||
- **Portable State (`nomarchy-sync`):** Easily backup and sync your declarative config and dynamic state (theme/wallpaper choices) to a private Git repo.
|
||||
|
||||
---
|
||||
|
||||
@@ -50,6 +50,16 @@ let
|
||||
|
||||
forced = x: (builtins.tryEval (builtins.seq x true)).success;
|
||||
|
||||
# Real impermanence installs define /persist + /home via disko; the eval
|
||||
# scenarios must too, because nixpkgs 26.05's systemd stage-1 maps fsType
|
||||
# over every neededForBoot filesystem and impermanence marks both
|
||||
# neededForBoot (core/system/impermanence.nix). Without device+fsType here,
|
||||
# the toplevel eval throws on a config that has no disko layer.
|
||||
impermanenceFs = {
|
||||
"/persist" = { device = "/dev/disk/by-label/persist"; fsType = "ext4"; };
|
||||
"/home" = { device = "/dev/disk/by-label/home"; fsType = "ext4"; };
|
||||
};
|
||||
|
||||
# Combined opt-in scenarios. Each enables as many compatible toggles as
|
||||
# possible so CI does ~3 full-system evals, not one per toggle. Home-side
|
||||
# options go under home-manager.users.nomarchy.nomarchy.*.
|
||||
@@ -75,6 +85,7 @@ let
|
||||
keymap = { layout = "de"; variant = "nodeadkeys"; };
|
||||
toggles = { waybar = false; idle = false; nightlight = false; };
|
||||
};
|
||||
fileSystems = impermanenceFs;
|
||||
};
|
||||
|
||||
# desktop preset — conflicts with the laptop formFactor, so its own eval.
|
||||
@@ -85,6 +96,7 @@ let
|
||||
# impermanence multi-disk variant (alternate mainLuksName).
|
||||
"impermanence-multi" = {
|
||||
nomarchy.system.impermanence = { enable = true; mainLuksName = "crypted_main"; };
|
||||
fileSystems = impermanenceFs;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -135,7 +135,7 @@ create minimal versions to start:
|
||||
mpv
|
||||
fastfetch
|
||||
chromium
|
||||
# …add anything you want; mako/hyprlock/swww/rofi/etc. ship with Nomarchy.
|
||||
# …add anything you want; mako/hyprlock/swaybg/rofi/etc. ship with Nomarchy.
|
||||
];
|
||||
|
||||
# Enable Nomarchy's curated app configurations
|
||||
|
||||
@@ -122,8 +122,8 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`,
|
||||
| `nomarchy-show-done` | `themes/engine/scripts` | features/scripts/utils/nomarchy-launch-floating-terminal-with-presentation | `kept` | |
|
||||
| `nomarchy-show-logo` | `themes/engine/scripts` | features/scripts/utils/nomarchy-launch-floating-terminal-with-presentation | `kept` | |
|
||||
| `nomarchy-skill` | `features/scripts/utils` | core/home/configs.nix | `kept` | |
|
||||
| `nomarchy-state` | `features/scripts/utils` | core/system/scripts/nomarchy-system-reboot,core/system/scripts/nomarchy-system-shutdown, +14 more | `kept` | |
|
||||
| `nomarchy-state-write` | `features/scripts/utils` | core/system/scripts/nomarchy-toggle-idle,features/scripts/utils/nomarchy-hyprland-monitor-scaling-cycle, +9 more | `kept` | |
|
||||
| `nomarchy-state` | `features/scripts/utils` | core/system/scripts/nomarchy-system-reboot,core/system/scripts/nomarchy-system-shutdown, +13 more | `kept` | |
|
||||
| `nomarchy-state-write` | `features/scripts/utils` | core/system/scripts/nomarchy-toggle-idle,features/scripts/utils/nomarchy-hyprland-monitor-scaling-cycle, +8 more | `kept` | |
|
||||
| `nomarchy-sudo-passwordless-toggle` | `core/system/scripts` | core/home/config/nomarchy-skill/SKILL.md | `kept` | |
|
||||
| `nomarchy-sudo-reset` | `core/system/scripts` | core/home/config/nomarchy-skill/SKILL.md | `kept` | |
|
||||
| `nomarchy-swayosd-brightness` | `core/system/scripts` | core/system/scripts/nomarchy-brightness-display,core/system/scripts/nomarchy-brightness-display-apple | `kept` | |
|
||||
@@ -137,10 +137,10 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`,
|
||||
| `nomarchy-test-installer` | `features/scripts/utils` | README.md,features/scripts/utils/nomarchy-test-vm | `kept` | |
|
||||
| `nomarchy-test-live-iso` | `features/scripts/utils` | hosts/nomarchy-live.nix | `kept` | |
|
||||
| `nomarchy-test-vm` | `features/scripts/utils` | features/scripts/utils/nomarchy-test-live-iso | `kept` | |
|
||||
| `nomarchy-theme` | `features/scripts/utils` | README.md,bin/utils/nomarchy-docs-scripts, +17 more | `kept` | |
|
||||
| `nomarchy-theme` | `features/scripts/utils` | README.md,bin/utils/nomarchy-docs-scripts, +18 more | `kept` | |
|
||||
| `nomarchy-theme-bg-install` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md | `kept` | |
|
||||
| `nomarchy-theme-bg-next` | `themes/engine/scripts` | README.md,core/home/config/nomarchy-skill/SKILL.md, +1 more | `kept` | |
|
||||
| `nomarchy-theme-bg-set` | `themes/engine/scripts` | features/apps/elephant/config/menus/nomarchy_background_selector.lua,features/scripts/utils/nomarchy-wallpaper | `kept` | |
|
||||
| `nomarchy-theme-bg-set` | `themes/engine/scripts` | features/apps/elephant/config/menus/nomarchy_background_selector.lua,features/scripts/utils/nomarchy-wallpaper, +1 more | `kept` | |
|
||||
| `nomarchy-theme-current` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md,themes/engine/scripts/nomarchy-theme-next | `kept` | |
|
||||
| `nomarchy-theme-install` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md | `kept` | |
|
||||
| `nomarchy-theme-list` | `themes/engine/scripts` | core/home/config/nomarchy-skill/SKILL.md,features/scripts/utils/nomarchy-theme, +2 more | `kept` | |
|
||||
|
||||
@@ -45,7 +45,6 @@ in
|
||||
# hyprlock, mpv, etc. — which broke notifications and the lock screen.
|
||||
home.packages = (with pkgs; [
|
||||
# Hyprland ecosystem
|
||||
swww # Wallpaper daemon
|
||||
mako # Notification daemon
|
||||
hyprlock # Lock screen
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ let
|
||||
# Category-specific dependencies
|
||||
categoryDeps = with pkgs; {
|
||||
appearance = [
|
||||
swww
|
||||
libnotify
|
||||
];
|
||||
|
||||
|
||||
113
flake.lock
generated
113
flake.lock
generated
@@ -38,11 +38,11 @@
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1760703920,
|
||||
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
|
||||
"lastModified": 1776754714,
|
||||
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
|
||||
"rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -91,11 +91,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773889306,
|
||||
"narHash": "sha256-PAqwnsBSI9SVC2QugvQ3xeYCB0otOwCacB1ueQj2tgw=",
|
||||
"lastModified": 1780290312,
|
||||
"narHash": "sha256-eTAlX0CwgB84Ts3GaBd944A3DRXVMzgA0EqroZBISUo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "5ad85c82cc52264f4beddc934ba57f3789f28347",
|
||||
"rev": "115e5211780054d8a890b41f0b7734cafad54dfe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -132,11 +132,11 @@
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1775176642,
|
||||
"narHash": "sha256-2veEED0Fg7Fsh81tvVDNYR6SzjqQxa7hbi18Jv4LWpM=",
|
||||
"lastModified": 1779670703,
|
||||
"narHash": "sha256-UdfMivNMwCCqQsYDg5pSz8X2IOaOrIZLIIy+Bg3CO2o=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "179704030c5286c729b5b0522037d1d51341022c",
|
||||
"rev": "942159e73e40bf785816f7f1f5feed9ef3d7c8f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -153,11 +153,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775087534,
|
||||
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
|
||||
"lastModified": 1778716662,
|
||||
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
|
||||
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -206,16 +206,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775425411,
|
||||
"narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=",
|
||||
"lastModified": 1780361225,
|
||||
"narHash": "sha256-wnV9ttf4fPWNonBIQmvlrSlNpQYgx5HgWWd007mwIFA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe",
|
||||
"rev": "e28654b71096e08c019d4861ca26acb646f583d8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.11",
|
||||
"ref": "release-26.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -282,12 +282,15 @@
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775490113,
|
||||
"narHash": "sha256-2ZBhDNZZwYkRmefK5XLOusCJHnoeKkoN95hoSGgMxWM=",
|
||||
"lastModified": 1780310866,
|
||||
"narHash": "sha256-fPBRVf6A5xlACYcOI59shGrjURuvwu0lRsDoSCEXt/I=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "c775c2772ba56e906cbeb4e0b2db19079ef11ff7",
|
||||
"rev": "4ed851c979641e28597a05086332d75cdc9e395f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -298,18 +301,15 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1775811116,
|
||||
"narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "54170c54449ea4d6725efd30d719c5e505f1c10e",
|
||||
"type": "github"
|
||||
"lastModified": 1767892417,
|
||||
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
|
||||
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"type": "tarball",
|
||||
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
@@ -327,6 +327,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1780453794,
|
||||
"narHash": "sha256-bXMRa9VTsHSPXL4Cw8R6JJLQeY3Y/IP4+YJCYVmQ7FY=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6b316287bae2ee04c9b93c8c858d930fd07d7338",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-26.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
@@ -339,11 +355,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775228139,
|
||||
"narHash": "sha256-ebbeHmg+V7w8050bwQOuhmQHoLOEOfqKzM1KgCTexK4=",
|
||||
"lastModified": 1779766384,
|
||||
"narHash": "sha256-P7Ohnlq8b8b2fU+Sgkrej7LBTM60LBTkHleLuYzmLmU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "601971b9c89e0304561977f2c28fa25e73aa7132",
|
||||
"rev": "57800b7ab648725ccd33551d01484ee14952ad3f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -359,7 +375,7 @@
|
||||
"impermanence": "impermanence",
|
||||
"nix-colors": "nix-colors",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"stylix": "stylix",
|
||||
"walker": "walker"
|
||||
}
|
||||
@@ -384,15 +400,16 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775927784,
|
||||
"narHash": "sha256-9Gm33hvgcy4hR7O9EjWrw2kipyVBIHgNUtAHyWgLDhg=",
|
||||
"lastModified": 1780702455,
|
||||
"narHash": "sha256-+srjPGNy67nKytYwdlepycL51IG6S34sS4MKRZXK8G0=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "8f6e6b3844b3b0b59470e276bd3fe9ab04600081",
|
||||
"rev": "54fa19702f4f2c7f6a981a92850678933588af9a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "danth",
|
||||
"ref": "release-26.05",
|
||||
"repo": "stylix",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -446,11 +463,11 @@
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1772661346,
|
||||
"narHash": "sha256-4eu3LqB9tPqe0Vaqxd4wkZiBbthLbpb7llcoE/p5HT0=",
|
||||
"lastModified": 1777806186,
|
||||
"narHash": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "13b5b0c299982bb361039601e2d72587d6846294",
|
||||
"rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -462,11 +479,11 @@
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1772934010,
|
||||
"narHash": "sha256-x+6+4UvaG+RBRQ6UaX+o6DjEg28u4eqhVRM9kpgJGjQ=",
|
||||
"lastModified": 1778379944,
|
||||
"narHash": "sha256-wPDFzMGSlARlw0Sfsn48Q2+jPSfk6N0Ng6BC/d+7Q24=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "c3529673a5ab6e1b6830f618c45d9ce1bcdd829d",
|
||||
"rev": "fe0203a198690e71a5ff11e08812a4673de3678d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -478,11 +495,11 @@
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1772909925,
|
||||
"narHash": "sha256-jx/5+pgYR0noHa3hk2esin18VMbnPSvWPL5bBjfTIAU=",
|
||||
"lastModified": 1778378178,
|
||||
"narHash": "sha256-OXPXRIQgGwV77HjYRryOHguh4ALX96jkg+tseLkGgHA=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "b4d3a1b3bcbd090937ef609a0a3b37237af974df",
|
||||
"rev": "9cd816033ff969415b190722cddf134e78a5665f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -500,11 +517,11 @@
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775815794,
|
||||
"narHash": "sha256-4aYljsM+f09YLERdo+kQjg9lvxVc6yxc+rPRFdgeXxw=",
|
||||
"lastModified": 1777789924,
|
||||
"narHash": "sha256-fX3ErzTmHRO9z1SzHC2VZUgKOgRfO13X/joC5a3QN7Q=",
|
||||
"owner": "abenz1267",
|
||||
"repo": "walker",
|
||||
"rev": "a0b5fa92e05c7d52936472c5027265b14e746bae",
|
||||
"rev": "93d44d1cb41732e1370e4b949429ae8e34ea05a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
15
flake.nix
15
flake.nix
@@ -2,7 +2,7 @@
|
||||
description = "Nomarchy - A NixOS-based distribution with Omarchy flavour";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||
|
||||
disko = {
|
||||
@@ -16,7 +16,7 @@
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.11";
|
||||
url = "github:nix-community/home-manager/release-26.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
# input" warning. Just URL it.
|
||||
nix-colors.url = "github:misterio77/nix-colors";
|
||||
stylix = {
|
||||
url = "github:danth/stylix";
|
||||
# Pinned to the matching release branch (tested against nixpkgs 26.05)
|
||||
# rather than master, which targets unstable.
|
||||
url = "github:danth/stylix/release-26.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
walker = {
|
||||
@@ -237,6 +239,13 @@
|
||||
system.stateVersion = "25.11";
|
||||
networking.hostName = "nomarchy";
|
||||
|
||||
# This config is only ever built as a VM (`.build.vm`), where the
|
||||
# qemu-vm module supplies the real root fs (via mkVMOverride). But
|
||||
# nixpkgs 26.05's systemd stage-1 forces `fileSystems."/".fsType`
|
||||
# during plain toplevel evaluation (`nix flake check`), so provide a
|
||||
# placeholder root fs for eval; the VM build overrides it.
|
||||
fileSystems."/" = lib.mkDefault { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; };
|
||||
|
||||
virtualisation.vmVariant.virtualisation.memorySize = 4096;
|
||||
virtualisation.vmVariant.virtualisation.cores = 2;
|
||||
|
||||
|
||||
@@ -47,7 +47,9 @@
|
||||
boot.initrd.availableKernelModules = [
|
||||
"amdgpu" "radeon" "nouveau" "i915" "virtio_gpu"
|
||||
];
|
||||
services.xserver.videoDrivers = [ "amdgpu" "radeon" "nouveau" "modesetting" "fbdev" "virtio" ];
|
||||
# 'virtio' X11 driver was removed in nixpkgs 26.05; modesetting drives
|
||||
# virtio-gpu via KMS.
|
||||
services.xserver.videoDrivers = [ "amdgpu" "radeon" "nouveau" "modesetting" "fbdev" ];
|
||||
|
||||
# VM guest agents. Without these the virtio-gpu connector only advertises
|
||||
# its 1024x768 fallback mode, so Hyprland's `monitor = , highres, …` rule
|
||||
|
||||
@@ -1773,7 +1773,7 @@ EOF
|
||||
|
||||
# User-level packages (Home Manager).
|
||||
#
|
||||
# Nomarchy already ships the core Hyprland ecosystem (mako, hyprlock, swww,
|
||||
# Nomarchy already ships the core Hyprland ecosystem (mako, hyprlock, swaybg,
|
||||
# wl-clipboard, grim, slurp, rofi, etc.). The list below includes the
|
||||
# default user apps and a menu of extras — uncomment what you want and
|
||||
# run \`nomarchy-env-update\`.
|
||||
|
||||
@@ -11,7 +11,7 @@ let
|
||||
findutils
|
||||
gawk
|
||||
jq
|
||||
swww
|
||||
swaybg
|
||||
libnotify
|
||||
gum
|
||||
brightnessctl
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# Cycles through the background images available for the current theme.
|
||||
# Declarative + Hybrid (instant swww) for Nomarchy NixOS.
|
||||
# Cycles through the background images available for the current theme,
|
||||
# then applies the pick via nomarchy-theme-bg-set (see the note at the end).
|
||||
|
||||
STATE_DIR="$HOME/.config/nomarchy"
|
||||
STATE_FILE="$STATE_DIR/state.json"
|
||||
@@ -45,13 +45,11 @@ done
|
||||
NEXT_INDEX=$(((INDEX + 1) % TOTAL))
|
||||
NEW_BG="$BG_DIR/${BACKGROUNDS[$NEXT_INDEX]}"
|
||||
|
||||
nomarchy-state-write wallpaper "$NEW_BG"
|
||||
|
||||
# Instant feedback via swww
|
||||
if pgrep -x swww-daemon >/dev/null; then
|
||||
swww img "$NEW_BG" --transition-type outer --transition-pos 0.85,0.97 --transition-step 90
|
||||
else
|
||||
swww init && swww img "$NEW_BG"
|
||||
fi
|
||||
|
||||
echo "Background set to $NEW_BG declaratively."
|
||||
# Apply through the shared setter: it persists state.json, updates the
|
||||
# ~/.config/nomarchy/current/background symlink, and restarts swaybg — the
|
||||
# single wallpaper daemon this distro actually runs. Previously this script
|
||||
# drove swww directly, but it gated on `swww-daemon` (never running, since
|
||||
# swaybg owns the wallpaper), so it spawned a second daemon competing with
|
||||
# swaybg. swww was also renamed to awww and dropped its `init` subcommand in
|
||||
# nixpkgs 26.05, so unifying on swaybg fixes both at once.
|
||||
exec nomarchy-theme-bg-set "$NEW_BG"
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
{ config, lib, ... }:
|
||||
{ lib, ... }:
|
||||
|
||||
# Compatibility shims for stylix target modules
|
||||
# Stylix unconditionally imports all target modules, which expect certain
|
||||
# program options to exist. This module defines stub options for programs
|
||||
# we don't use to prevent evaluation errors.
|
||||
#
|
||||
# Note: the neovim `initLua` shim was dropped at the 26.05 bump — Home Manager
|
||||
# now declares `programs.neovim.initLua` natively, so re-declaring it here is
|
||||
# both redundant and a duplicate-option error.
|
||||
|
||||
{
|
||||
options = {
|
||||
# Neovim: stylix uses initLua but home-manager uses extraLuaConfig
|
||||
programs.neovim.initLua = lib.mkOption {
|
||||
type = lib.types.lines;
|
||||
default = "";
|
||||
description = "Lua code to run at init (compatibility shim for stylix)";
|
||||
};
|
||||
|
||||
# OpenCode: stylix expects programs.opencode options
|
||||
programs.opencode = {
|
||||
tui = lib.mkOption {
|
||||
@@ -28,8 +25,4 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf (config.programs.neovim.initLua != "") {
|
||||
programs.neovim.extraLuaConfig = config.programs.neovim.initLua;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user