{ config, lib, pkgs, ... }: let inherit (lib.options) mkOption mkEnableOption; inherit (lib.types) str package; inherit (lib.modules) mkIf; cfg = config.modules.theme.gtk; in { options.modules.theme.gtk = { 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"; default = pkgs.catppuccin-papirus-folders; type = package; }; }; }; config = mkIf cfg.enable { # NOTE: we need this or gtk breaks programs.dconf.enable = true; }; }