home: centralize theme and make home-manager feature-aware

- add home/theme.nix as the single Silicon Volt palette and pass it to
  home modules via extraSpecialArgs
- drive foot, hyprland, hyprlock, mako, fzf, starship, rofi and the
  herdr picker from that palette; raw config files use @color@ tokens
  substituted at build time
- pass my = config.my into home-manager; add my.pi.enable, my.flakeDir
- gate home/pi.nix on my.pi.enable (enabled on hades)
- route zshconf/hyprconf aliases and FLAKE_CONFIG through my.flakeDir
- rename the hyprland monitor option volt.monitors -> hypr.monitors
- fix use_auto_tmux command-substitution bug in zsh/init.zsh
- track home/nvim/config/lazy-lock.json for reproducible plugins
- document theming and toggles in the README
This commit is contained in:
2026-09-19 00:48:19 -07:00
parent fb743d7353
commit 8010cea0bc
18 changed files with 287 additions and 100 deletions

View File

@@ -1,6 +1,7 @@
{
lib,
config,
theme,
...
}:
@@ -12,11 +13,11 @@ in
# Per-host monitor configuration.
#
# Hosts declare their displays once, in hosts/<host>/default.nix, via:
# home-manager.users.<my.username>.volt.monitors = [ { ... } ];
# home-manager.users.<my.username>.hypr.monitors = [ { ... } ];
# and the setting flows into Hyprland here. The default (empty output +
# preferred mode) works on any machine with any display.
# -------------------------------------------------------------------------
options.volt.monitors = lib.mkOption {
options.hypr.monitors = lib.mkOption {
description = "Hyprland monitor rules for this host";
type = lib.types.listOf (
lib.types.submodule {
@@ -69,7 +70,7 @@ in
;
}
// (lib.optionalAttrs (m.vrr != null) { inherit (m) vrr; })
) config.volt.monitors;
) config.hypr.monitors;
wayland.windowManager.hyprland = {
enable = true;
@@ -91,7 +92,7 @@ in
};
# -----------------------------------------------------------------------
# 2. Monitors (hl.monitor) - declared per-host via volt.monitors
# 2. Monitors (hl.monitor) - declared per-host via hypr.monitors
# (see hosts/<host>/default.nix); defaults to any display @ preferred.
# -----------------------------------------------------------------------
@@ -143,12 +144,12 @@ in
# Silicon Volt: electric lime gradient on focus, glass gray at rest
active_border = {
colors = [
"rgba(cffc00ee)"
"rgba(e3ff66ee)"
"rgba(${theme.bare.accentVolt}ee)"
"rgba(${theme.bare.accentVoltLight}ee)"
];
angle = 45;
};
inactive_border = "rgba(ffffff14)";
inactive_border = "rgba(${theme.bare.textPrimary}14)";
};
layout = "dwindle";
};
@@ -158,20 +159,20 @@ in
font_size = 14;
font_family = "JetBrainsMono Nerd Font";
col = {
active = "rgba(cffc0022)";
inactive = "rgba(ffffff08)";
active = "rgba(${theme.bare.accentVolt}22)";
inactive = "rgba(${theme.bare.textPrimary}08)";
};
};
col = {
border_active = {
colors = [
"rgba(cffc00ee)"
"rgba(e3ff66ee)"
"rgba(${theme.bare.accentVolt}ee)"
"rgba(${theme.bare.accentVoltLight}ee)"
];
angle = 45;
};
border_inactive = "rgba(ffffff14)";
border_inactive = "rgba(${theme.bare.textPrimary}14)";
};
};