{ lib, ... }: { config = { assertions = [ (lib.ctp.assertMinimumVersion "24.05") ]; }; options.catppuccin = { enable = lib.mkEnableOption "Catppuccin globally"; flavor = lib.mkOption { type = lib.ctp.types.flavorOption; default = "mocha"; description = "Global Catppuccin flavor"; }; accent = lib.mkOption { type = lib.ctp.types.accentOption; default = "mauve"; description = "Global Catppuccin accent"; }; sources = let defaultSources = import ../../.sources; in lib.mkOption { type = lib.types.lazyAttrsOf lib.types.raw; default = defaultSources; defaultText = "{ ... }"; # HACK! # without this, overriding one source will delete all others. -@getchoo apply = lib.recursiveUpdate defaultSources; description = "Port sources used across all options"; }; }; }