Files
homelab/hosts/terra/home/theme.nix
darmanandClaude Sonnet 5 6f24ab69ad docs: condense comments across the repo
Comments had drifted into multi-paragraph narrative (git commit
lineage, debugging stories, restated code) in several hot spots
(scripts/deploy, hermes-agent.nix, flake.nix, gitea.nix, headscale.nix).
Trim every comment to its load-bearing "why" — gotchas, safety
warnings, and non-obvious rationale survive verbatim in substance,
just tightened to 1-2 sentences; historical narrative and anything
already covered in CLAUDE.md is cut. No code/logic changed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UJqEmY1y3AYX3JoX4Y6b21
2026-09-18 21:36:30 +02:00

82 lines
2.6 KiB
Nix

{ pkgs, ... }:
# Global Dracula theming (GTK + Qt)
let
azureGlassyDarkIcons = pkgs.callPackage ../../../pkgs/azure-glassy-dark-icons.nix { };
amyDarkIcons = pkgs.callPackage ../../../pkgs/amy-dark-icons.nix { };
slotBeautyDarkIcons = pkgs.callPackage ../../../pkgs/slot-beauty-dark-icons.nix { };
iconTheme = "Amy-Dark-Icons";
iconThemePackage = amyDarkIcons;
iconThemeFolder = "${iconThemePackage}/share/icons/${iconTheme}";
in
{
gtk = {
enable = true;
theme = {
name = "Dracula";
package = pkgs.dracula-theme;
};
iconTheme = {
name = iconTheme;
package = iconThemePackage;
};
};
# XCURSOR_THEME alone isn't enough for Steam: steamwebhelper runs inside a
# pressure-vessel container with its own /etc, so XCURSOR_PATH doesn't
# resolve there and it falls back to the core X11 cursor. $HOME and /nix are
# bind-mounted in though, so the ~/.icons symlink `dotIcons` drops still
# resolves — same fix as the flatpak workaround below.
home.pointerCursor = {
name = "Bibata-Modern-Classic";
package = pkgs.bibata-cursors;
size = 24;
gtk.enable = true;
hyprcursor.enable = true;
};
# Flatpak apps can't see XDG_DATA_DIRS/nix-store theme paths, so the
# portal-reported theme names resolve to nothing and fall back to Adwaita;
# Flatpak auto-exposes ~/.themes and ~/.icons read-only as the workaround.
home.file.".themes/Dracula".source =
"${pkgs.dracula-theme}/share/themes/Dracula";
home.file.".icons/${iconTheme}".source = iconThemeFolder;
dconf.settings."org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
gtk-theme = "Dracula";
icon-theme = iconTheme;
};
# "qtct" (qt5ct/qt6ct) instead of "kde" avoids pulling in
# kdePackages.systemsettings just for the platform-theme plugin — kvantum
# itself carries the Dracula colors, qt5ct/qt6ct just need to be told to
# use it as the style.
qt = {
enable = true;
platformTheme.name = "qtct";
style.name = "kvantum";
};
xdg.configFile."Kvantum/kvantum.kvconfig".text = ''
[General]
theme=Dracula
'';
xdg.configFile."Kvantum/Dracula".source =
"${pkgs.dracula-theme}/share/Kvantum/Dracula";
# Quickshell's IconImage/Quickshell.iconPath() resolves icons through the
# Qt platform theme, not GTK — so the app-launcher grid needs the icon
# theme set HERE (qt5ct/qt6ct), separately from the GTK dconf key above.
xdg.configFile."qt5ct/qt5ct.conf".text = ''
[Appearance]
style=kvantum
icon_theme=${iconTheme}
'';
xdg.configFile."qt6ct/qt6ct.conf".text = ''
[Appearance]
style=kvantum
icon_theme=${iconTheme}
'';
}