flake: update Stylix to master and scope import to desktop hosts

Switch Stylix from release-25.11 to master, which fixes hyprpaper's
wallpaper config generation for 0.8.4 (structured attributes instead
of raw string concatenation).

Move the Stylix module import from common.nix to flake.nix extraModules
so the Mediaserver (on nixpkgs-stable) doesn't pull in options that
only exist in unstable nixpkgs (services.displayManager.generic).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
rope 2026-05-18 10:44:16 +01:00
parent d89706736c
commit cea4d37bfb
4 changed files with 41 additions and 64 deletions

View file

@ -11,7 +11,6 @@
# Generic settings # # Generic settings #
./settings/desktop.nix ./settings/desktop.nix
./settings/hyprland.nix ./settings/hyprland.nix
./settings/stylix.nix
./settings/locale.nix ./settings/locale.nix
./settings/audio.nix ./settings/audio.nix
./settings/users.nix ./settings/users.nix

83
flake.lock generated
View file

@ -71,11 +71,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": {
@ -136,11 +136,11 @@
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1764873433, "lastModified": 1776136500,
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=", "narHash": "sha256-r0gN2brVWA351zwMV0Flmlcd6SGMvYqFbvC3DfKFM8Y=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92", "rev": "0f8ba203d475587f477e7ae12661bd8459e225b7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -207,11 +207,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767609335, "lastModified": 1775087534,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca", "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -261,20 +261,18 @@
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
"host": "gitlab.gnome.org",
"lastModified": 1767737596, "lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49", "rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "gitlab" "type": "github"
}, },
"original": { "original": {
"host": "gitlab.gnome.org",
"owner": "GNOME", "owner": "GNOME",
"ref": "gnome-49",
"repo": "gnome-shell", "repo": "gnome-shell",
"type": "gitlab" "rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
} }
}, },
"home-manager": { "home-manager": {
@ -757,16 +755,16 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1767799921, "lastModified": 1777268161,
"narHash": "sha256-r4GVX+FToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE=", "narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d351d0653aeb7877273920cd3e823994e7579b0b", "rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-25.11", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -783,11 +781,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767886815, "lastModified": 1777598946,
"narHash": "sha256-pB2BBv6X9cVGydEV/9Y8+uGCvuYJAlsprs1v1QHjccA=", "narHash": "sha256-X239dAGaU1+gfDj8jKH8GzlqKMcxaVfXOio+uzBOkeE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "4ff84374d77ff62e2e13a46c33bfeb73590f9fef", "rev": "5d55af01c0f86be583931fe99207fc56c14134b3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -862,23 +860,21 @@
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_5",
"nur": "nur", "nur": "nur",
"systems": "systems_2", "systems": "systems_2",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux", "tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1778680496, "lastModified": 1778776709,
"narHash": "sha256-tUq1WASV0dHLv3j18log8V6Esq0NYkXuzNH2EHsstcg=", "narHash": "sha256-YhnEcpiY6+l3RFA+cPmdTaeODGvNRuqE8B7VBjPVIxo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "stylix", "repo": "stylix",
"rev": "fc5bec2e44678eeaa221d566d447a0257a884737", "rev": "e8ea85b4f7dddda9603e0f1ac86cd92cee3b2819",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.11",
"repo": "stylix", "repo": "stylix",
"type": "github" "type": "github"
} }
@ -913,23 +909,6 @@
"type": "github" "type": "github"
} }
}, },
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": { "tinted-kitty": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -949,11 +928,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767817087, "lastModified": 1777041405,
"narHash": "sha256-eGE8OYoK6HzhJt/7bOiNV2cx01IdIrHL7gXgjkHRdNo=", "narHash": "sha256-BAGZ7ObFV/9Z61OJZun7ifPyhkuHqNuW1QIhQ8LuzCo=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "bd99656235aab343e3d597bf196df9bc67429507", "rev": "5f868b3a338b6904c47f3833b9c411be641983a8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -965,11 +944,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767489635, "lastModified": 1777169200,
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=", "narHash": "sha256-h7dDbIzP5hDr9v97w9PL6jdAgXawmj6krcH+959rqpU=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184", "rev": "f798c2dce44ef815bb6b8f05a82135c7942d35ac",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -981,11 +960,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767488740, "lastModified": 1777463218,
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=", "narHash": "sha256-Bhkozqtq3BKLqWTlmKm8uAptfX4aRGI8QX3eEL54Vpc=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40", "rev": "5768d08ed2e7944a26a958868cdb073cb8856dae",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -33,10 +33,7 @@
# upstream needs newer stdenv than 25.11 ships. # upstream needs newer stdenv than 25.11 ships.
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
# Stylix release branch matching nixos-25.11. Master references stylix.url = "github:nix-community/stylix";
# options (services.displayManager.generic) that only exist in
# newer nixpkgs schemas.
stylix.url = "github:nix-community/stylix/release-25.11";
}; };
outputs = outputs =
{ self { self
@ -53,7 +50,7 @@
} @ inputs: } @ inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
mkHost = hostname: pkgsInput: hmInput: pkgsInput.lib.nixosSystem { mkHost = hostname: pkgsInput: hmInput: extraModules: pkgsInput.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { inherit inputs; pkgs-unstable = nixpkgs.legacyPackages.${system}; }; specialArgs = { inherit inputs; pkgs-unstable = nixpkgs.legacyPackages.${system}; };
modules = [ modules = [
@ -61,16 +58,16 @@
./hosts/hardware/${hostname}.nix ./hosts/hardware/${hostname}.nix
./common.nix ./common.nix
hmInput.nixosModules.home-manager hmInput.nixosModules.home-manager
]; ] ++ extraModules;
}; };
in in
{ {
nixosConfigurations = { nixosConfigurations = {
# Gaming and Macbook use nixpkgs unstable — required by home-manager # Gaming and Macbook use nixpkgs unstable — required by home-manager
# unstable which needs lib/services/lib.nix added in nixpkgs after 25.11. # unstable which needs lib/services/lib.nix added in nixpkgs after 25.11.
FredOS-Gaming = mkHost "FredOS-Gaming" nixpkgs home-manager; FredOS-Gaming = mkHost "FredOS-Gaming" nixpkgs home-manager [ stylix.nixosModules.stylix ./settings/stylix.nix ];
FredOS-Mediaserver = mkHost "FredOS-Mediaserver" nixpkgs-stable home-manager-stable; FredOS-Mediaserver = mkHost "FredOS-Mediaserver" nixpkgs-stable home-manager-stable [];
FredOS-Macbook = mkHost "FredOS-Macbook" nixpkgs home-manager; FredOS-Macbook = mkHost "FredOS-Macbook" nixpkgs home-manager [ stylix.nixosModules.stylix ./settings/stylix.nix ];
}; };
}; };
} }

View file

@ -1,8 +1,10 @@
{ config, pkgs, lib, inputs, ... }: { config, pkgs, lib, inputs, ... }:
{ {
imports = [ inputs.stylix.nixosModules.stylix ]; # Only imported for desktop hosts (see flake.nix extraModules).
# The Stylix NixOS module is added alongside this file so the
# Mediaserver doesn't pull in options that require unstable nixpkgs.
config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) { config = {
stylix = { stylix = {
enable = true; enable = true;
# builtins.path hashes only the image content, not the whole flake tree, # builtins.path hashes only the image content, not the whole flake tree,