{ lib, pkgs, inputs, config, ... }: let inherit (lib) mkIf mkEnableOption; cfg = config.home.theme; in { imports = [ inputs.catppuccin.homeModules.catppuccin ]; options.home.theme = { catppuccin = { enable = mkEnableOption "Catppuccin Theme."; kitty.enable = mkEnableOption "Kitty catppuccin Theme."; helix.enable = mkEnableOption "Helix catppuccin Theme."; vscodium.enable = mkEnableOption "VSCodium catppuccin Theme."; }; }; config = mkIf cfg.catppuccin.enable { fonts.fontconfig.enable = true; home.packages = with pkgs; [ noto-fonts noto-fonts-emoji noto-fonts-cjk-sans nerd-fonts.jetbrains-mono ]; programs.kitty = mkIf cfg.catppuccin.kitty.enable { themeFile = "Catppuccin-Macchiato"; settings = { cursor_trail = 3; }; font = { name = "JetBrainsMono Nerd Font"; size = 14; }; }; catppuccin.helix = mkIf cfg.catppuccin.helix.enable { enable = true; flavor = "macchiato"; }; programs.vscode.profiles.default = mkIf cfg.catppuccin.vscodium.enable { extensions = with pkgs.vscode-marketplace; [ catppuccin.catppuccin-vsc catppuccin.catppuccin-vsc-icons ]; userSettings = { "workbench.colorTheme" = "Catppuccin Macchiato"; "workbench.iconTheme" = "catppuccin-macchiato"; "editor.fontFamily" = "'JetBrainsMono Nerd Font'"; "editor.fontLigatures" = true; "editor.fontSize" = 16; "terminal.integrated.fontFamily" = "'JetBrainsMono Nerd Font'"; "terminal.integrated.fontLigatures.enabled" = true; "terminal.integrated.fontSize" = 14; "editor.minimap.sectionHeaderFontSize" = 16; "editor.suggestFontSize" = 16; }; }; }; }