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:
@@ -1,4 +1,10 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
theme,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
herdrPkg =
|
||||
@@ -13,7 +19,35 @@ let
|
||||
else
|
||||
(pkgs.herdr or null);
|
||||
|
||||
herdrPicker = pkgs.writeShellScriptBin "herdr-picker" (builtins.readFile ./scripts/herdr-picker.sh);
|
||||
# Inject the shared palette into the picker script (see home/theme.nix).
|
||||
herdrPicker = pkgs.writeShellScriptBin "herdr-picker" (
|
||||
lib.replaceStrings
|
||||
[
|
||||
"@bg@"
|
||||
"@glass@"
|
||||
"@fg@"
|
||||
"@fgBright@"
|
||||
"@muted@"
|
||||
"@volt@"
|
||||
"@voltLight@"
|
||||
"@coral@"
|
||||
"@blue@"
|
||||
"@surface@"
|
||||
]
|
||||
[
|
||||
theme.colors.bgPrimary
|
||||
theme.colors.glassBg
|
||||
theme.colors.textSecondary
|
||||
theme.colors.textPrimary
|
||||
theme.colors.textMuted
|
||||
theme.colors.accentVolt
|
||||
theme.colors.accentVoltLight
|
||||
theme.colors.accentCoral
|
||||
theme.colors.accentBlue
|
||||
theme.colors.surfaceVariant
|
||||
]
|
||||
(builtins.readFile ./scripts/herdr-picker.sh)
|
||||
);
|
||||
in
|
||||
{
|
||||
home.packages = (if herdrPkg != null then [ herdrPkg ] else [ ]) ++ [
|
||||
@@ -47,41 +81,38 @@ in
|
||||
hide-when-typing = "yes";
|
||||
};
|
||||
|
||||
# Silicon Volt palette, sourced from home/theme.nix.
|
||||
colors-dark = {
|
||||
# Silicon Volt palette (matches home/hypr theme + mako):
|
||||
# bgPrimary #131313, bgSecondary #0e0e0e, glassBg #1c1b1b,
|
||||
# textPrimary #ffffff, textSecondary #e5e2e1, textMuted #adaaaa,
|
||||
# accents: volt #cffc00, coral #ff7a59, blue #00bfff
|
||||
alpha = 0.92;
|
||||
background = "131313";
|
||||
foreground = "e5e2e1";
|
||||
background = theme.bare.bgPrimary;
|
||||
foreground = theme.bare.textSecondary;
|
||||
|
||||
# Cursor text and cursor (background) colors
|
||||
cursor = "0e0e0e cffc00";
|
||||
cursor = "${theme.bare.bgSecondary} ${theme.bare.accentVolt}";
|
||||
|
||||
regular0 = "0e0e0e"; # bgSecondary
|
||||
regular1 = "ff7a59"; # accentCoral
|
||||
regular2 = "cffc00"; # accentVolt (green)
|
||||
regular3 = "e3ff66"; # accentVoltLight (yellow)
|
||||
regular4 = "00bfff"; # accentBlue
|
||||
regular5 = "c6c6c7"; # Neutral Gray (magenta)
|
||||
regular6 = "66d9ff"; # Light Cyan
|
||||
regular7 = "e5e2e1"; # textSecondary
|
||||
regular0 = theme.bare.bgSecondary;
|
||||
regular1 = theme.bare.accentCoral;
|
||||
regular2 = theme.bare.accentVolt;
|
||||
regular3 = theme.bare.accentVoltLight;
|
||||
regular4 = theme.bare.accentBlue;
|
||||
regular5 = theme.bare.neutralGray;
|
||||
regular6 = theme.bare.lightCyan;
|
||||
regular7 = theme.bare.textSecondary;
|
||||
|
||||
# Bright Colors
|
||||
bright0 = "2a2929"; # surfaceVariant
|
||||
bright1 = "ff9a82"; # Bright Coral
|
||||
bright2 = "dfff66"; # Bright Lime
|
||||
bright3 = "f0ff8c"; # Bright Volt
|
||||
bright4 = "66d9ff"; # Bright Blue
|
||||
bright5 = "e0e0e1"; # Bright Gray
|
||||
bright6 = "99e6ff"; # Bright Cyan
|
||||
bright7 = "ffffff"; # textPrimary
|
||||
bright0 = theme.bare.surfaceVariant;
|
||||
bright1 = theme.bare.brightCoral;
|
||||
bright2 = theme.bare.brightLime;
|
||||
bright3 = theme.bare.brightVolt;
|
||||
bright4 = theme.bare.lightCyan;
|
||||
bright5 = theme.bare.brightGray;
|
||||
bright6 = theme.bare.brightCyan;
|
||||
bright7 = theme.bare.textPrimary;
|
||||
|
||||
# Selection & URLs - volt lime selection like the site
|
||||
selection-foreground = "0e0e0e";
|
||||
selection-background = "cffc00";
|
||||
urls = "00bfff";
|
||||
selection-foreground = theme.bare.bgSecondary;
|
||||
selection-background = theme.bare.accentVolt;
|
||||
urls = theme.bare.accentBlue;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user