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
82 lines
2.6 KiB
Nix
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}
|
|
'';
|
|
}
|