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,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)";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user