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,7 +1,7 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
theme,
|
||||
...
|
||||
}:
|
||||
|
||||
@@ -58,9 +58,9 @@ in
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
background-color = "#1c1b1bee";
|
||||
text-color = "#e5e2e1";
|
||||
border-color = "#cffc00";
|
||||
background-color = "${theme.colors.glassBg}ee";
|
||||
text-color = theme.colors.textSecondary;
|
||||
border-color = theme.colors.accentVolt;
|
||||
border-size = 1;
|
||||
border-radius = 0;
|
||||
width = 420;
|
||||
@@ -73,13 +73,13 @@ in
|
||||
max-icon-size = 48;
|
||||
|
||||
"urgency=critical" = {
|
||||
border-color = "#ff7a59";
|
||||
text-color = "#ffffff";
|
||||
border-color = theme.colors.accentCoral;
|
||||
text-color = theme.colors.textPrimary;
|
||||
default-timeout = 0;
|
||||
};
|
||||
"urgency=low" = {
|
||||
border-color = "#2a2929";
|
||||
text-color = "#adaaaa";
|
||||
border-color = theme.colors.surfaceVariant;
|
||||
text-color = theme.colors.textMuted;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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)";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ theme, ... }:
|
||||
|
||||
{
|
||||
programs.hyprlock = {
|
||||
@@ -32,7 +32,7 @@
|
||||
{
|
||||
monitor = "";
|
||||
text = "$TIME";
|
||||
color = "rgba(ffffffdd)";
|
||||
color = "rgba(${theme.bare.textPrimary}dd)";
|
||||
font_size = 90;
|
||||
font_family = "JetBrainsMono Nerd Font";
|
||||
position = "0, 220";
|
||||
@@ -43,7 +43,7 @@
|
||||
{
|
||||
monitor = "";
|
||||
text = "cmd[update:1000] echo \" $(date +'%A, %B %d') \"";
|
||||
color = "rgba(adaaaaff)";
|
||||
color = "rgba(${theme.bare.textMuted}ff)";
|
||||
font_size = 20;
|
||||
font_family = "JetBrainsMono Nerd Font";
|
||||
position = "0, 120";
|
||||
@@ -54,7 +54,7 @@
|
||||
{
|
||||
monitor = "";
|
||||
text = "NIXOS // SILICON VOLT";
|
||||
color = "rgba(cffc00ee)";
|
||||
color = "rgba(${theme.bare.accentVolt}ee)";
|
||||
font_size = 14;
|
||||
font_family = "JetBrainsMono Nerd Font";
|
||||
position = "0, 60";
|
||||
@@ -65,7 +65,7 @@
|
||||
{
|
||||
monitor = "";
|
||||
text = "cmd[update:3600000] echo \" $USER @ $(hostname) \"";
|
||||
color = "rgba(adaaaa99)";
|
||||
color = "rgba(${theme.bare.textMuted}99)";
|
||||
font_size = 13;
|
||||
font_family = "JetBrainsMono Nerd Font";
|
||||
position = "0, -160";
|
||||
@@ -84,11 +84,11 @@
|
||||
dots_spacing = 0.2;
|
||||
dots_center = true;
|
||||
# Volt lime outline, dark glass interior
|
||||
outer_color = "rgba(cffc00ee)";
|
||||
inner_color = "rgba(1c1b1b, 0.9)";
|
||||
check_color = "rgba(e3ff66ee)";
|
||||
fail_color = "rgba(ff7a59ee)";
|
||||
font_color = "rgba(e5e2e1ff)";
|
||||
outer_color = "rgba(${theme.bare.accentVolt}ee)";
|
||||
inner_color = "rgba(${theme.bare.glassBg}, 0.9)";
|
||||
check_color = "rgba(${theme.bare.accentVoltLight}ee)";
|
||||
fail_color = "rgba(${theme.bare.accentCoral}ee)";
|
||||
font_color = "rgba(${theme.bare.textSecondary}ff)";
|
||||
fail_text = "$FAIL (<b>attempts: $ATTEMPTS</b>)";
|
||||
fade_on_empty = false;
|
||||
placeholder_text = "<i> Enter Password...</i>";
|
||||
|
||||
Reference in New Issue
Block a user