101 lines
2.4 KiB
Nix
101 lines
2.4 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
mjallenThemeComputed,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
cfg = config.mjallen.programs.hyprland;
|
|
|
|
# Pull from global theme options
|
|
themeSize = config.mjallen.theme.gtk.size; # "standard" | "compact"
|
|
themeAccent = config.mjallen.theme.gtk.accent; # "default" | ... | "all"
|
|
themeTweak = config.mjallen.theme.gtk.tweak; # "normal" | "rimless" | "float" | "black"
|
|
themeColor = config.mjallen.theme.gtk.color; # "light" | "dark"
|
|
iconThemeVariant = config.mjallen.theme.icons.variant; # "default" | ... | "all"
|
|
iconScheme = config.mjallen.theme.icons.scheme; # "default" | "nord" | "dracula" | ...
|
|
|
|
# Cursor
|
|
cursorTheme = "macOS";
|
|
cursorThemePkg = pkgs.apple-cursor;
|
|
cursorSize = 24;
|
|
|
|
# GTK
|
|
gtkTheme = mjallenThemeComputed.gtkTheme;
|
|
gtkThemePkg = pkgs.colloid-gtk-theme.override {
|
|
sizeVariants = [ themeSize ];
|
|
colorVariants = [ themeColor ];
|
|
themeVariants = [ themeAccent ];
|
|
tweaks = [ themeTweak ];
|
|
};
|
|
|
|
# Icons
|
|
iconTheme = mjallenThemeComputed.iconTheme;
|
|
iconThemePkg = pkgs.colloid-icon-theme.override {
|
|
schemeVariants = [ iconScheme ];
|
|
colorVariants = [ iconThemeVariant ];
|
|
};
|
|
|
|
# Fonts
|
|
fontName = "JetBrainsMono NFM";
|
|
fontPackage = pkgs.nerd-fonts.jetbrains-mono;
|
|
fontSize = 12;
|
|
in
|
|
{
|
|
config = mkIf cfg.enable {
|
|
home = {
|
|
pointerCursor = {
|
|
gtk.enable = true;
|
|
package = cursorThemePkg;
|
|
name = cursorTheme;
|
|
size = cursorSize;
|
|
};
|
|
};
|
|
|
|
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;
|
|
};
|
|
};
|
|
};
|
|
}
|