swarm-ui: apply the operator's stylix theme, same as the dashboard already does
mara: "swarm dash is in my own colors, but tab colors on swarm ui are the default catpucchin one." Root cause: hive-c0re/theme.nix's stylix overlay only ever wrote a themed colors.css onto the dashboard/agent frontend subtrees -- swarm-ui, served from its own separate package, was never in scope. Extracts the stylix-detection + colors.css-generation logic (previously inline in theme.nix) into a shared nix/host-modules/stylix-theme.nix, imported by both theme.nix and swarm-ui.nix -- one source instead of a second copy that has to agree by inspection. swarm-ui.nix gains its own themedPackage overlay (same shape as theme.nix's themedFrontend: copy the package, overwrite static/colors.css) and serves that instead of cfg.package directly when stylix is active; a clean passthrough otherwise. Verified with a throwaway nixosSystem eval (this repo's own flake checks do not exercise gateway-module wiring) confirming the unthemed path resolves cfg.package unchanged.
This commit is contained in:
parent
2e06957b32
commit
2ecf842a1b
3 changed files with 87 additions and 28 deletions
|
|
@ -7,6 +7,10 @@
|
|||
# from the 16 base16 slots (see docs/web-ui/css-vars.md). The guarded
|
||||
# access makes this a clean no-op when stylix isn't imported into the
|
||||
# host config. Exposed as the read-only `c0re.servedFrontend` option.
|
||||
#
|
||||
# Detection + CSS-generation itself lives in `../stylix-theme.nix`
|
||||
# (shared with `swarm-ui.nix`) — this file is the c0re-specific overlay
|
||||
# consumer (which subtrees, which option).
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
|
|
@ -15,33 +19,8 @@
|
|||
}:
|
||||
let
|
||||
cfg = config.services.hyperhive.c0re;
|
||||
stylixThemeColors =
|
||||
if (config.stylix.enable or false) && ((config.lib.stylix or { }) ? colors) then
|
||||
config.lib.stylix.colors.withHashtag
|
||||
else
|
||||
null;
|
||||
themedColorsCss =
|
||||
c:
|
||||
pkgs.writeText "hyperhive-colors.css" ''
|
||||
:root {
|
||||
--base00: ${c.base00};
|
||||
--base01: ${c.base01};
|
||||
--base02: ${c.base02};
|
||||
--base03: ${c.base03};
|
||||
--base04: ${c.base04};
|
||||
--base05: ${c.base05};
|
||||
--base06: ${c.base06};
|
||||
--base07: ${c.base07};
|
||||
--base08: ${c.base08};
|
||||
--base09: ${c.base09};
|
||||
--base0A: ${c.base0A};
|
||||
--base0B: ${c.base0B};
|
||||
--base0C: ${c.base0C};
|
||||
--base0D: ${c.base0D};
|
||||
--base0E: ${c.base0E};
|
||||
--base0F: ${c.base0F};
|
||||
}
|
||||
'';
|
||||
stylixTheme = import ../stylix-theme.nix { inherit lib config pkgs; };
|
||||
inherit (stylixTheme) stylixThemeColors themedColorsCss;
|
||||
# Overlay the generated colors.css onto both dist subtrees. Both the
|
||||
# dashboard (served by hive-c0re via HIVE_STATIC_DIR) and the agent UIs
|
||||
# (served by the gateway from HIVE_AGENT_FRONTEND_DIR — static files
|
||||
|
|
|
|||
Loading…
Reference in a new issue