nichts/modules/style/gtk.nix

66 lines
1.5 KiB
Nix
Raw Normal View History

2024-05-22 14:29:45 +02:00
{
config,
lib,
2025-03-26 19:16:28 +01:00
pkgs,
2024-05-22 14:29:45 +02:00
...
2025-03-26 19:16:28 +01:00
}: let
inherit (lib.modules) mkIf;
2025-03-26 19:16:28 +01:00
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) str package;
2025-04-06 14:03:41 +02:00
cfg = config.modules.theming.gtk;
2024-04-10 17:39:26 +02:00
in {
2025-04-06 14:03:41 +02:00
options.modules.theming.gtk = {
2025-03-26 19:16:28 +01:00
enable = mkEnableOption "Wether to enable GTK theming";
theme = {
name = mkOption {
description = "The GTK theme name";
default = "Gruvbox-Dark-BL";
type = str;
};
package = mkOption {
description = "The GTK theme package";
default = pkgs.gruvbox-gtk-theme;
type = package;
};
};
iconTheme = {
description = "The GTK icon theme";
name = mkOption {
description = "The GTK icon theme name";
default = "Papirus-Dark";
type = str;
};
package = mkOption {
description = "The GTK icon theme package";
2025-04-06 14:03:41 +02:00
default = pkgs.papirus-icon-theme;
2025-03-26 19:16:28 +01:00
type = package;
};
};
};
config = mkIf cfg.enable {
2025-03-26 19:16:28 +01:00
# NOTE: we need this or gtk breaks
programs.dconf.enable = true;
2025-04-06 14:03:41 +02:00
environment = {
systemPackages = builtins.attrValues {
inherit
(pkgs)
gruvbox-gtk-theme
papirus-icon-theme
;
};
variables = let
cursorSize = 32;
in {
GTK_THEME = "Gruvbox-Dark";
XCURSOR_THEME = "BreezeX-RosePine-Linux";
XCURSOR_SIZE = cursorSize;
HYPRCURSOR_THEME = "BreezeX-RosePine-Linux";
HYPRCURSOR_SIZE = cursorSize;
};
};
};
2024-04-10 17:39:26 +02:00
}