stylix: enable on media server via stylix-stable (release-25.11)

Add a stylix-stable input pinned to release-25.11 so the media server
gets Stylix theming without pulling in unstable nixpkgs. btop is now
managed by Home Manager on all hosts with Stylix auto-theming.

Desktop-only config (Zen/Vesktop CSS, GTK icons) is guarded behind
an isDesktop check in stylix.nix.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
rope 2026-05-18 13:53:19 +01:00
parent f7f258651e
commit b713d64211
5 changed files with 321 additions and 20 deletions

View file

@ -1,8 +1,7 @@
{ config, pkgs, lib, inputs, ... }:
{
# 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.
# Imported for all hosts via flake.nix extraModules.
# Desktop hosts use stylix (unstable), Mediaserver uses stylix-stable (25.11).
config = {
stylix = {
@ -41,7 +40,8 @@
};
};
home-manager.users.fred = { config, lib, pkgs, ... }: let
home-manager.users.fred = { config, lib, pkgs, osConfig, ... }: let
isDesktop = lib.elem osConfig.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ];
c = config.lib.stylix.colors;
# Pure-Nix hex parsing for color distance calculation.
@ -145,20 +145,20 @@
"#${c.base03}" # outline
"#${c.base02}" # outline variant
];
in {
# Zen and Vesktop have no native stylix targets, so we keep the
# existing matugen CSS templates and substitute placeholders with
# stylix base16 colours at Nix-eval time.
home.file.".zen/fraudek5.Default Profile/chrome/userChrome.css".text =
stylixize (builtins.readFile "${inputs.self}/templates/zen-userChrome.css");
in lib.mkMerge [
# Desktop-only: Zen/Vesktop CSS and GTK icon theme
(lib.mkIf isDesktop {
home.file.".zen/fraudek5.Default Profile/chrome/userChrome.css".text =
stylixize (builtins.readFile "${inputs.self}/templates/zen-userChrome.css");
home.file.".config/vesktop/settings/quickCss.css".text =
stylixize (builtins.readFile "${inputs.self}/templates/vesktop-quickCss.css");
home.file.".config/vesktop/settings/quickCss.css".text =
stylixize (builtins.readFile "${inputs.self}/templates/vesktop-quickCss.css");
gtk.iconTheme = {
package = papirusDark;
name = "Papirus-Dark";
};
};
gtk.iconTheme = {
package = papirusDark;
name = "Papirus-Dark";
};
})
];
};
}