- 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
87 lines
2.1 KiB
Nix
87 lines
2.1 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
theme,
|
|
...
|
|
}:
|
|
|
|
let
|
|
# Deterministic Silicon Volt wallpaper: rendered from SVG at build time,
|
|
# so the same source always produces a byte-identical image.
|
|
wallpaper = pkgs.runCommand "silicon-volt-wallpaper.png" { } ''
|
|
${pkgs.librsvg}/bin/rsvg-convert -w 3840 -h 2160 ${./wallpaper.svg} > $out
|
|
'';
|
|
in
|
|
{
|
|
imports = [
|
|
./hyprland.nix
|
|
./hyprlock.nix
|
|
./hypridle.nix
|
|
./quickshell.nix
|
|
./services.nix
|
|
];
|
|
|
|
home.packages = with pkgs; [
|
|
# Utilities & Tools
|
|
grim
|
|
slurp
|
|
wl-clipboard
|
|
brightnessctl
|
|
jq
|
|
|
|
# Desktop Environment / Hyprland ecosystem
|
|
hyprpaper
|
|
];
|
|
|
|
# Build-time rendered wallpaper
|
|
xdg.dataFile."backgrounds/silicon-volt.png".source = wallpaper;
|
|
|
|
# hyprpaper: load the Silicon Volt wallpaper on every output. The
|
|
# home-manager module writes hypr/hyprpaper.conf and runs the daemon as a
|
|
# systemd user service tied to the Wayland session.
|
|
services.hyprpaper = {
|
|
enable = true;
|
|
settings = {
|
|
splash = false;
|
|
preload = "${config.home.homeDirectory}/.local/share/backgrounds/silicon-volt.png";
|
|
wallpaper = [
|
|
{
|
|
monitor = "";
|
|
path = "${config.home.homeDirectory}/.local/share/backgrounds/silicon-volt.png";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
# Notifications: flat brutalist-glass cards with volt accents
|
|
services.mako = {
|
|
enable = true;
|
|
|
|
settings = {
|
|
background-color = "${theme.colors.glassBg}ee";
|
|
text-color = theme.colors.textSecondary;
|
|
border-color = theme.colors.accentVolt;
|
|
border-size = 1;
|
|
border-radius = 0;
|
|
width = 420;
|
|
margin = "12";
|
|
padding = "14";
|
|
default-timeout = 6000;
|
|
font = "JetBrainsMono Nerd Font 11";
|
|
format = "<b>%s</b>\\n%b";
|
|
"icon-location" = "left";
|
|
max-icon-size = 48;
|
|
|
|
"urgency=critical" = {
|
|
border-color = theme.colors.accentCoral;
|
|
text-color = theme.colors.textPrimary;
|
|
default-timeout = 0;
|
|
};
|
|
"urgency=low" = {
|
|
border-color = theme.colors.surfaceVariant;
|
|
text-color = theme.colors.textMuted;
|
|
};
|
|
};
|
|
};
|
|
}
|