{ lib, pkgs, inputs, config, ... }: let cfg = config.home.theme; in { imports = [ inputs.catppuccin.homeModules.catppuccin ]; options = { home.theme = { catppuccin = { enable = lib.mkOption { type = lib.types.bool; default = false; description = "Catppuccin Theme."; }; kitty.enable = lib.mkOption { type = lib.types.bool; default = false; description = "Kitty catppuccin Theme."; }; helix.enable = lib.mkOption { type = lib.types.bool; default = false; description = "Helix catppuccin Theme."; }; vscodium.enable = lib.mkOption { type = lib.types.bool; default = false; description = "VSCodium catppuccin Theme."; }; }; }; }; config = lib.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 = lib.mkIf cfg.catppuccin.kitty.enable { themeFile = "Catppuccin-Macchiato"; settings = { cursor_trail = 3; }; font = { name = "JetBrainsMono Nerd Font"; size = 14; }; }; catppuccin.helix = lib.mkIf cfg.catppuccin.helix.enable { enable = true; flavor = "macchiato"; }; programs.vscode.profiles.default = lib.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; }; }; }; }