{ inputs, config, lib, pkgs, system, ... }: with lib; let cfg = config.modules.desktop.themes; accent = "pink"; accentBase = "base17"; variant = "mocha"; dark = variant != "latte"; darkString = if dark then "dark" else "light"; scheme = "${inputs.tt-schemes}/base24/catppuccin-${variant}.yaml"; pascalCase = s: (toUpper (substring 0 1 s)) + (toLower (substring 1 (stringLength s) s)); in { config = mkIf (cfg.active == "catppuccin") { scheme = scheme; modules.desktop.themes = { dark = dark; gtkTheme = { name = "catppuccin-${variant}-${accent}-compact+rimless"; package = pkgs.catppuccin-gtk.override { variant = variant; accents = [ accent ]; tweaks = [ "rimless" ]; size = "compact"; }; }; kvantumTheme = { name = "catppuccin-${variant}-${accent}"; package = pkgs.catppuccin-kvantum.override { variant = variant; accent = accent; }; }; iconTheme = { name = "WhiteSur-${darkString}"; package = pkgs.whitesur-icon-theme; }; cursorTheme = { name = "macOS"; package = pkgs.apple-cursor; }; editor = { vscode = { colorTheme = { name = "Catppuccin ${pascalCase variant}"; extension = inputs.catppuccin.packages.${system}.vscode.override { catppuccinOptions = { accent = accent; boldKeywords = false; italicComments = false; italicKeywords = false; extraBordersEnabled = false; workbenchMode = "flat"; bracketMode = "rainbow"; }; }; }; iconTheme = { name = "material-icon-theme"; extension = pkgs.vscode-extensions.pkief.material-icon-theme; }; }; }; niri = let colors = config.scheme.withHashtag; in with colors; { accent = colors.${accentBase}; inactive = "${base02}"; shadow = "${base11}"; background = if dark then "${base11}" else "${base05}"; }; waybarTop = "@define-color accent @${accentBase};"; wob = with config.scheme; { borderColor = "${base04}FF"; backgroundColor = "${base01}CC"; barColor = "${base05}FF"; }; rofiTop = "* { accent: @${accentBase}; }"; wezterm = '' config.color_scheme = 'Catppuccin ${pascalCase variant}' ''; vicinae = "catppuccin-${variant}"; }; }; }