Files
NixOS-Configs/home/hypr/default.nix
Anish Govind 8010cea0bc 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
2026-09-19 00:48:19 -07:00

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;
};
};
};
}