Files
nix-config/modules/home/programs/hyprland/theme.nix
mjallen18 31e0a03dc2 cursor
2025-12-01 16:48:16 -06:00

92 lines
2.0 KiB
Nix

{
config,
lib,
pkgs,
...
}:
with lib;
let
cfg = config.mjallen.programs.hyprland;
# Pull from global theme options
themeSize = "standard"; # "standard" | "compact"
themeAccent = "default"; # "default" | ... | "all"
themeTweak = "normal"; # "normal" | "rimless" | "float" | "black"
themeColor = "dark"; # "light" | "dark"
iconThemeVariant = "default"; # "default" | ... | "all"
iconScheme = "nord"; # "default" | "nord" | "dracula" | ...
# Cursor
cursorTheme = "macOS";
cursorThemePkg = pkgs.apple-cursor;
cursorSize = 24;
# GTK
gtkTheme = "Colloid-dark-standard";
gtkThemePkg = pkgs.colloid-gtk-theme.override {
sizeVariants = [ themeSize ];
colorVariants = [ themeColor ];
themeVariants = [ themeAccent ];
tweaks = [ themeTweak ];
};
# Icons
iconTheme = "Colloid-nord-dark";
iconThemePkg = pkgs.colloid-icon-theme.override {
schemeVariants = [ iconScheme ];
colorVariants = [ iconThemeVariant ];
};
# Fonts
fontName = config.stylix.fonts.monospace.name;
fontPackage = config.stylix.fonts.monospace.package;
fontSize = 12;
in
{
config = mkIf cfg.enable {
dconf = {
enable = true;
settings = {
"org/gnome/desktop/interface".color-scheme = mkForce "prefer-dark";
"org/gnome/desktop/interface".cursor-theme = cursorTheme;
"org/gnome/desktop/interface".gtk-theme = gtkTheme;
"org/gnome/desktop/interface".icon-theme = iconTheme;
};
};
gtk = {
enable = true;
cursorTheme = {
name = cursorTheme;
package = cursorThemePkg;
};
theme = {
name = gtkTheme;
package = gtkThemePkg;
};
iconTheme = {
name = iconTheme;
package = iconThemePkg;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
font = {
name = mkDefault fontName;
package = mkDefault fontPackage;
size = mkDefault fontSize;
};
};
};
}