puzzlevision/modules/home/themes/catppuccin/default.nix

39 lines
1 KiB
Nix

{
lib,
self,
pkgs,
config,
osConfig,
namespace,
...
}: let
inherit (lib) mkEnableOption types mkIf;
inherit (self.lib) mkOpt;
palette = (pkgs.lib.importJSON (config.catppuccin.sources.palette + "/palette.json")).${config.catppuccin.flavor}.colors;
cfg = config.${namespace}.themes.catppuccin;
in {
options.${namespace}.themes.catppuccin = {
enable = mkEnableOption "the Catppuccin theme, globally.";
accent = mkOpt types.str "blue" "The accent colour to use.";
flavor = mkOpt types.str "macchiato" "The flavor to use.";
palette = mkOpt (lib.types.attrsOf lib.types.raw) palette "a reference to the current active Catppuccin palette.";
};
config = mkIf cfg.enable {
catppuccin = {
enable = true;
accent = cfg.accent;
flavor = cfg.flavor;
cursors.enable = true;
cursors.accent = cfg.accent;
cursors.flavor = cfg.flavor;
};
${namespace}.themes.catppuccin = {
gtk.enable = mkIf osConfig.${namespace}.desktop.gnome.enable true;
};
};
}