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.
|
- **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.
|
- **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.
|
- **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.
|
- **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;
|
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
|
# 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
|
# possible so CI does ~3 full-system evals, not one per toggle. Home-side
|
||||||
# options go under home-manager.users.nomarchy.nomarchy.*.
|
# options go under home-manager.users.nomarchy.nomarchy.*.
|
||||||
@@ -75,6 +85,7 @@ let
|
|||||||
keymap = { layout = "de"; variant = "nodeadkeys"; };
|
keymap = { layout = "de"; variant = "nodeadkeys"; };
|
||||||
toggles = { waybar = false; idle = false; nightlight = false; };
|
toggles = { waybar = false; idle = false; nightlight = false; };
|
||||||
};
|
};
|
||||||
|
fileSystems = impermanenceFs;
|
||||||
};
|
};
|
||||||
|
|
||||||
# desktop preset — conflicts with the laptop formFactor, so its own eval.
|
# desktop preset — conflicts with the laptop formFactor, so its own eval.
|
||||||
@@ -85,6 +96,7 @@ let
|
|||||||
# impermanence multi-disk variant (alternate mainLuksName).
|
# impermanence multi-disk variant (alternate mainLuksName).
|
||||||
"impermanence-multi" = {
|
"impermanence-multi" = {
|
||||||
nomarchy.system.impermanence = { enable = true; mainLuksName = "crypted_main"; };
|
nomarchy.system.impermanence = { enable = true; mainLuksName = "crypted_main"; };
|
||||||
|
fileSystems = impermanenceFs;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ in
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
# Wait this long after suspend before hibernating, and use the same
|
# Wait this long after suspend before hibernating, and use the same
|
||||||
# delay as the idle-action timeout so the two paths agree.
|
# delay as the idle-action timeout so the two paths agree.
|
||||||
systemd.sleep.extraConfig = ''
|
# nixpkgs 26.05 replaced systemd.sleep.extraConfig with the RFC42-style
|
||||||
HibernateDelaySec=${toString (cfg.idleMinutes * 60)}
|
# `settings` attrset.
|
||||||
'';
|
systemd.sleep.settings.Sleep.HibernateDelaySec = cfg.idleMinutes * 60;
|
||||||
|
|
||||||
services.logind = {
|
services.logind = {
|
||||||
settings.Login = {
|
settings.Login = {
|
||||||
|
|||||||
@@ -19,11 +19,13 @@ in
|
|||||||
services.resolved = {
|
services.resolved = {
|
||||||
enable = lib.mkDefault (cfg.dns != "DHCP");
|
enable = lib.mkDefault (cfg.dns != "DHCP");
|
||||||
dnssec = lib.mkDefault "allow-downgrade";
|
dnssec = lib.mkDefault "allow-downgrade";
|
||||||
domains = lib.mkDefault [ "~." ];
|
# nixpkgs 26.05 moved resolved.conf options into the RFC42-style `settings`
|
||||||
fallbackDns = lib.mkDefault [ "9.9.9.9" "149.112.112.112" ];
|
# attrset (extraConfig dropped; domains/fallbackDns renamed).
|
||||||
extraConfig = lib.mkDefault ''
|
settings.Resolve = {
|
||||||
DNSOverTLS=opportunistic
|
Domains = lib.mkDefault [ "~." ];
|
||||||
'';
|
FallbackDNS = lib.mkDefault [ "9.9.9.9" "149.112.112.112" ];
|
||||||
|
DNSOverTLS = lib.mkDefault "opportunistic";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
|
|||||||
@@ -15,7 +15,9 @@
|
|||||||
# Improve VM resolution and guest experience
|
# Improve VM resolution and guest experience
|
||||||
services.spice-vdagentd.enable = true;
|
services.spice-vdagentd.enable = true;
|
||||||
services.qemuGuest.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
|
# Provide the flake to the VM for local rebuilding
|
||||||
environment.etc."nomarchy".source = lib.mkDefault inputs.self;
|
environment.etc."nomarchy".source = lib.mkDefault inputs.self;
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ create minimal versions to start:
|
|||||||
mpv
|
mpv
|
||||||
fastfetch
|
fastfetch
|
||||||
chromium
|
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
|
# 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-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-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-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` | `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, +9 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-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-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` | |
|
| `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-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-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-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-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-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-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-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` | |
|
| `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.
|
# hyprlock, mpv, etc. — which broke notifications and the lock screen.
|
||||||
home.packages = (with pkgs; [
|
home.packages = (with pkgs; [
|
||||||
# Hyprland ecosystem
|
# Hyprland ecosystem
|
||||||
swww # Wallpaper daemon
|
|
||||||
mako # Notification daemon
|
mako # Notification daemon
|
||||||
hyprlock # Lock screen
|
hyprlock # Lock screen
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ let
|
|||||||
# Category-specific dependencies
|
# Category-specific dependencies
|
||||||
categoryDeps = with pkgs; {
|
categoryDeps = with pkgs; {
|
||||||
appearance = [
|
appearance = [
|
||||||
swww
|
|
||||||
libnotify
|
libnotify
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
113
flake.lock
generated
113
flake.lock
generated
@@ -38,11 +38,11 @@
|
|||||||
"base16-helix": {
|
"base16-helix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760703920,
|
"lastModified": 1776754714,
|
||||||
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
|
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-helix",
|
"repo": "base16-helix",
|
||||||
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
|
"rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -91,11 +91,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773889306,
|
"lastModified": 1780290312,
|
||||||
"narHash": "sha256-PAqwnsBSI9SVC2QugvQ3xeYCB0otOwCacB1ueQj2tgw=",
|
"narHash": "sha256-eTAlX0CwgB84Ts3GaBd944A3DRXVMzgA0EqroZBISUo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "5ad85c82cc52264f4beddc934ba57f3789f28347",
|
"rev": "115e5211780054d8a890b41f0b7734cafad54dfe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -132,11 +132,11 @@
|
|||||||
"firefox-gnome-theme": {
|
"firefox-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775176642,
|
"lastModified": 1779670703,
|
||||||
"narHash": "sha256-2veEED0Fg7Fsh81tvVDNYR6SzjqQxa7hbi18Jv4LWpM=",
|
"narHash": "sha256-UdfMivNMwCCqQsYDg5pSz8X2IOaOrIZLIIy+Bg3CO2o=",
|
||||||
"owner": "rafaelmardojai",
|
"owner": "rafaelmardojai",
|
||||||
"repo": "firefox-gnome-theme",
|
"repo": "firefox-gnome-theme",
|
||||||
"rev": "179704030c5286c729b5b0522037d1d51341022c",
|
"rev": "942159e73e40bf785816f7f1f5feed9ef3d7c8f9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -153,11 +153,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775087534,
|
"lastModified": 1778716662,
|
||||||
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
|
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
|
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -206,16 +206,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775425411,
|
"lastModified": 1780361225,
|
||||||
"narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=",
|
"narHash": "sha256-wnV9ttf4fPWNonBIQmvlrSlNpQYgx5HgWWd007mwIFA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe",
|
"rev": "e28654b71096e08c019d4861ca26acb646f583d8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-25.11",
|
"ref": "release-26.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -282,12 +282,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775490113,
|
"lastModified": 1780310866,
|
||||||
"narHash": "sha256-2ZBhDNZZwYkRmefK5XLOusCJHnoeKkoN95hoSGgMxWM=",
|
"narHash": "sha256-fPBRVf6A5xlACYcOI59shGrjURuvwu0lRsDoSCEXt/I=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "c775c2772ba56e906cbeb4e0b2db19079ef11ff7",
|
"rev": "4ed851c979641e28597a05086332d75cdc9e395f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -298,18 +301,15 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775811116,
|
"lastModified": 1767892417,
|
||||||
"narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=",
|
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
|
||||||
"owner": "nixos",
|
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
|
||||||
"repo": "nixpkgs",
|
"type": "tarball",
|
||||||
"rev": "54170c54449ea4d6725efd30d719c5e505f1c10e",
|
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
|
||||||
"type": "github"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"type": "tarball",
|
||||||
"ref": "nixos-25.11",
|
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
@@ -327,6 +327,22 @@
|
|||||||
"type": "github"
|
"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": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": [
|
"flake-parts": [
|
||||||
@@ -339,11 +355,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775228139,
|
"lastModified": 1779766384,
|
||||||
"narHash": "sha256-ebbeHmg+V7w8050bwQOuhmQHoLOEOfqKzM1KgCTexK4=",
|
"narHash": "sha256-P7Ohnlq8b8b2fU+Sgkrej7LBTM60LBTkHleLuYzmLmU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "601971b9c89e0304561977f2c28fa25e73aa7132",
|
"rev": "57800b7ab648725ccd33551d01484ee14952ad3f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -359,7 +375,7 @@
|
|||||||
"impermanence": "impermanence",
|
"impermanence": "impermanence",
|
||||||
"nix-colors": "nix-colors",
|
"nix-colors": "nix-colors",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
"walker": "walker"
|
"walker": "walker"
|
||||||
}
|
}
|
||||||
@@ -384,15 +400,16 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775927784,
|
"lastModified": 1780702455,
|
||||||
"narHash": "sha256-9Gm33hvgcy4hR7O9EjWrw2kipyVBIHgNUtAHyWgLDhg=",
|
"narHash": "sha256-+srjPGNy67nKytYwdlepycL51IG6S34sS4MKRZXK8G0=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "8f6e6b3844b3b0b59470e276bd3fe9ab04600081",
|
"rev": "54fa19702f4f2c7f6a981a92850678933588af9a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
|
"ref": "release-26.05",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -446,11 +463,11 @@
|
|||||||
"tinted-schemes": {
|
"tinted-schemes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772661346,
|
"lastModified": 1777806186,
|
||||||
"narHash": "sha256-4eu3LqB9tPqe0Vaqxd4wkZiBbthLbpb7llcoE/p5HT0=",
|
"narHash": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "schemes",
|
"repo": "schemes",
|
||||||
"rev": "13b5b0c299982bb361039601e2d72587d6846294",
|
"rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -462,11 +479,11 @@
|
|||||||
"tinted-tmux": {
|
"tinted-tmux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772934010,
|
"lastModified": 1778379944,
|
||||||
"narHash": "sha256-x+6+4UvaG+RBRQ6UaX+o6DjEg28u4eqhVRM9kpgJGjQ=",
|
"narHash": "sha256-wPDFzMGSlARlw0Sfsn48Q2+jPSfk6N0Ng6BC/d+7Q24=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "tinted-tmux",
|
"repo": "tinted-tmux",
|
||||||
"rev": "c3529673a5ab6e1b6830f618c45d9ce1bcdd829d",
|
"rev": "fe0203a198690e71a5ff11e08812a4673de3678d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -478,11 +495,11 @@
|
|||||||
"tinted-zed": {
|
"tinted-zed": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772909925,
|
"lastModified": 1778378178,
|
||||||
"narHash": "sha256-jx/5+pgYR0noHa3hk2esin18VMbnPSvWPL5bBjfTIAU=",
|
"narHash": "sha256-OXPXRIQgGwV77HjYRryOHguh4ALX96jkg+tseLkGgHA=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-zed",
|
"repo": "base16-zed",
|
||||||
"rev": "b4d3a1b3bcbd090937ef609a0a3b37237af974df",
|
"rev": "9cd816033ff969415b190722cddf134e78a5665f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -500,11 +517,11 @@
|
|||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775815794,
|
"lastModified": 1777789924,
|
||||||
"narHash": "sha256-4aYljsM+f09YLERdo+kQjg9lvxVc6yxc+rPRFdgeXxw=",
|
"narHash": "sha256-fX3ErzTmHRO9z1SzHC2VZUgKOgRfO13X/joC5a3QN7Q=",
|
||||||
"owner": "abenz1267",
|
"owner": "abenz1267",
|
||||||
"repo": "walker",
|
"repo": "walker",
|
||||||
"rev": "a0b5fa92e05c7d52936472c5027265b14e746bae",
|
"rev": "93d44d1cb41732e1370e4b949429ae8e34ea05a4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
15
flake.nix
15
flake.nix
@@ -2,7 +2,7 @@
|
|||||||
description = "Nomarchy - A NixOS-based distribution with Omarchy flavour";
|
description = "Nomarchy - A NixOS-based distribution with Omarchy flavour";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||||
|
|
||||||
disko = {
|
disko = {
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-25.11";
|
url = "github:nix-community/home-manager/release-26.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -25,7 +25,9 @@
|
|||||||
# input" warning. Just URL it.
|
# input" warning. Just URL it.
|
||||||
nix-colors.url = "github:misterio77/nix-colors";
|
nix-colors.url = "github:misterio77/nix-colors";
|
||||||
stylix = {
|
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";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
walker = {
|
walker = {
|
||||||
@@ -237,6 +239,13 @@
|
|||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
networking.hostName = "nomarchy";
|
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.memorySize = 4096;
|
||||||
virtualisation.vmVariant.virtualisation.cores = 2;
|
virtualisation.vmVariant.virtualisation.cores = 2;
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,9 @@
|
|||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"amdgpu" "radeon" "nouveau" "i915" "virtio_gpu"
|
"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
|
# VM guest agents. Without these the virtio-gpu connector only advertises
|
||||||
# its 1024x768 fallback mode, so Hyprland's `monitor = , highres, …` rule
|
# its 1024x768 fallback mode, so Hyprland's `monitor = , highres, …` rule
|
||||||
|
|||||||
@@ -1773,7 +1773,7 @@ EOF
|
|||||||
|
|
||||||
# User-level packages (Home Manager).
|
# 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
|
# wl-clipboard, grim, slurp, rofi, etc.). The list below includes the
|
||||||
# default user apps and a menu of extras — uncomment what you want and
|
# default user apps and a menu of extras — uncomment what you want and
|
||||||
# run \`nomarchy-env-update\`.
|
# run \`nomarchy-env-update\`.
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ let
|
|||||||
findutils
|
findutils
|
||||||
gawk
|
gawk
|
||||||
jq
|
jq
|
||||||
swww
|
swaybg
|
||||||
libnotify
|
libnotify
|
||||||
gum
|
gum
|
||||||
brightnessctl
|
brightnessctl
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Cycles through the background images available for the current theme.
|
# Cycles through the background images available for the current theme,
|
||||||
# Declarative + Hybrid (instant swww) for Nomarchy NixOS.
|
# then applies the pick via nomarchy-theme-bg-set (see the note at the end).
|
||||||
|
|
||||||
STATE_DIR="$HOME/.config/nomarchy"
|
STATE_DIR="$HOME/.config/nomarchy"
|
||||||
STATE_FILE="$STATE_DIR/state.json"
|
STATE_FILE="$STATE_DIR/state.json"
|
||||||
@@ -45,13 +45,11 @@ done
|
|||||||
NEXT_INDEX=$(((INDEX + 1) % TOTAL))
|
NEXT_INDEX=$(((INDEX + 1) % TOTAL))
|
||||||
NEW_BG="$BG_DIR/${BACKGROUNDS[$NEXT_INDEX]}"
|
NEW_BG="$BG_DIR/${BACKGROUNDS[$NEXT_INDEX]}"
|
||||||
|
|
||||||
nomarchy-state-write wallpaper "$NEW_BG"
|
# Apply through the shared setter: it persists state.json, updates the
|
||||||
|
# ~/.config/nomarchy/current/background symlink, and restarts swaybg — the
|
||||||
# Instant feedback via swww
|
# single wallpaper daemon this distro actually runs. Previously this script
|
||||||
if pgrep -x swww-daemon >/dev/null; then
|
# drove swww directly, but it gated on `swww-daemon` (never running, since
|
||||||
swww img "$NEW_BG" --transition-type outer --transition-pos 0.85,0.97 --transition-step 90
|
# swaybg owns the wallpaper), so it spawned a second daemon competing with
|
||||||
else
|
# swaybg. swww was also renamed to awww and dropped its `init` subcommand in
|
||||||
swww init && swww img "$NEW_BG"
|
# nixpkgs 26.05, so unifying on swaybg fixes both at once.
|
||||||
fi
|
exec nomarchy-theme-bg-set "$NEW_BG"
|
||||||
|
|
||||||
echo "Background set to $NEW_BG declaratively."
|
|
||||||
|
|||||||
@@ -1,19 +1,16 @@
|
|||||||
{ config, lib, ... }:
|
{ lib, ... }:
|
||||||
|
|
||||||
# Compatibility shims for stylix target modules
|
# Compatibility shims for stylix target modules
|
||||||
# Stylix unconditionally imports all target modules, which expect certain
|
# Stylix unconditionally imports all target modules, which expect certain
|
||||||
# program options to exist. This module defines stub options for programs
|
# program options to exist. This module defines stub options for programs
|
||||||
# we don't use to prevent evaluation errors.
|
# 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 = {
|
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
|
# OpenCode: stylix expects programs.opencode options
|
||||||
programs.opencode = {
|
programs.opencode = {
|
||||||
tui = lib.mkOption {
|
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