diff --git a/modules/global.nix b/modules/global.nix index 6e3744b4..96363dc7 100644 --- a/modules/global.nix +++ b/modules/global.nix @@ -17,7 +17,20 @@ in imports = catppuccinLib.applyToModules catppuccinModules; options.catppuccin = { - enable = lib.mkEnableOption "Catppuccin globally"; + enable = lib.mkEnableOption '' + Catppuccin. + + Note: for `stateVersion` < 26.05, this is equivalent to `autoEnable`, + and there is no way to globally disable Catppuccin. + Since 26.05, this is a more traditional `enable` option; + `false` disables all Catppuccin modules. + ''; + + autoEnable = lib.mkEnableOption '' + all Catppuccin integrations by default. + + Note: for `stateVersion` < 26.05, this option is equivalent to `enable`. + ''; flavor = lib.mkOption { type = catppuccinLib.types.flavor; @@ -56,6 +69,13 @@ in the version does not match catppuccin/nix's minimum supported version. ''; }; + + # TODO: remove this back-compatibility implementation detail + _enable = lib.mkOption { + type = lib.types.bool; + internal = true; + readOnly = true; + }; }; config = { @@ -70,7 +90,23 @@ in } ]; - nix.settings = lib.mkIf config.catppuccin.cache.enable { + # Make our lives easier by centralizing the different interpretations of `enable`. + # That way all modules can just rely on `autoEnable` being correct, and `_enable` + # being a global enablement state. + catppuccin = { + # Keep `autoEnable` in sync with `enable` for releases where it didn't exist. + autoEnable = lib.mkIf ( + !lib.versionAtLeast catppuccinLib.getModuleRelease "26.05" + ) config.catppuccin.enable; + + _enable = + if lib.versionAtLeast catppuccinLib.getModuleRelease "26.05" then + config.catppuccin.enable + else + true; + }; + + nix.settings = lib.mkIf (config.catppuccin._enable && config.catppuccin.cache.enable) { extra-substituters = [ "https://catppuccin.cachix.org" ]; extra-trusted-public-keys = [ "catppuccin.cachix.org-1:noG/4HkbhJb+lUAdKrph6LaozJvAeEEZj4N732IysmU=" diff --git a/modules/home-manager/aerc.nix b/modules/home-manager/aerc.nix index dc6ff156..c72d190f 100644 --- a/modules/home-manager/aerc.nix +++ b/modules/home-manager/aerc.nix @@ -10,7 +10,7 @@ in { options.catppuccin.aerc = catppuccinLib.mkCatppuccinOption { name = "aerc"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.aerc = { stylesets.${themeName} = lib.fileContents "${sources.aerc}/${themeName}"; extraConfig = { diff --git a/modules/home-manager/alacritty.nix b/modules/home-manager/alacritty.nix index 3ca79135..a800af2a 100644 --- a/modules/home-manager/alacritty.nix +++ b/modules/home-manager/alacritty.nix @@ -9,7 +9,7 @@ in { options.catppuccin.alacritty = catppuccinLib.mkCatppuccinOption { name = "alacritty"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.alacritty = { settings.general.import = lib.mkBefore [ "${sources.alacritty}/catppuccin-${cfg.flavor}.toml" ]; }; diff --git a/modules/home-manager/anki.nix b/modules/home-manager/anki.nix index ecf3cc5a..2c14a0be 100644 --- a/modules/home-manager/anki.nix +++ b/modules/home-manager/anki.nix @@ -13,7 +13,7 @@ in { options.catppuccin.anki = catppuccinLib.mkCatppuccinOption { name = "anki"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.anki = { addons = with pkgs.ankiAddons; [ (recolor.withConfig { diff --git a/modules/home-manager/atuin.nix b/modules/home-manager/atuin.nix index b1eb370b..c4236405 100644 --- a/modules/home-manager/atuin.nix +++ b/modules/home-manager/atuin.nix @@ -4,7 +4,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.atuin; - enable = cfg.enable && config.programs.atuin.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.atuin.enable; themeName = "catppuccin-${cfg.flavor}-${cfg.accent}"; in diff --git a/modules/home-manager/bat.nix b/modules/home-manager/bat.nix index 382fa3f6..967a1575 100644 --- a/modules/home-manager/bat.nix +++ b/modules/home-manager/bat.nix @@ -10,7 +10,7 @@ in { options.catppuccin.bat = catppuccinLib.mkCatppuccinOption { name = "bat"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.bat = { config.theme = themeName; diff --git a/modules/home-manager/bottom.nix b/modules/home-manager/bottom.nix index 4be7e703..13fc5947 100644 --- a/modules/home-manager/bottom.nix +++ b/modules/home-manager/bottom.nix @@ -9,7 +9,7 @@ in { options.catppuccin.bottom = catppuccinLib.mkCatppuccinOption { name = "bottom"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.bottom = { settings = lib.importTOML "${sources.bottom}/${cfg.flavor}.toml"; }; diff --git a/modules/home-manager/btop.nix b/modules/home-manager/btop.nix index 5b039891..fc04b899 100644 --- a/modules/home-manager/btop.nix +++ b/modules/home-manager/btop.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.btop; - enable = cfg.enable && config.programs.btop.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.btop.enable; themeFile = "catppuccin_${cfg.flavor}.theme"; theme = sources.btop + "/${themeFile}"; diff --git a/modules/home-manager/cava.nix b/modules/home-manager/cava.nix index 35e862a3..331e0edf 100644 --- a/modules/home-manager/cava.nix +++ b/modules/home-manager/cava.nix @@ -6,7 +6,7 @@ let cfg = config.catppuccin.cava; flavor = "${cfg.flavor}" + lib.optionalString cfg.transparent "-transparent"; - enable = cfg.enable && config.programs.cava.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.cava.enable; in { diff --git a/modules/home-manager/chrome.nix b/modules/home-manager/chrome.nix index 9af34469..838cc149 100644 --- a/modules/home-manager/chrome.nix +++ b/modules/home-manager/chrome.nix @@ -20,7 +20,7 @@ let generateConfig = browser: - lib.mkIf cfg.${browser}.enable { + lib.mkIf (config.catppuccin._enable && cfg.${browser}.enable) { programs.${browser}.extensions = [ { id = identifiers.${cfg.${browser}.flavor}; } ]; }; in diff --git a/modules/home-manager/cursors.nix b/modules/home-manager/cursors.nix index 5b12fa62..86901feb 100644 --- a/modules/home-manager/cursors.nix +++ b/modules/home-manager/cursors.nix @@ -35,7 +35,7 @@ in }; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { home.pointerCursor = { name = "catppuccin-${cfg.flavor}-${cfg.accent}-cursors"; package = sources.cursors; diff --git a/modules/home-manager/delta.nix b/modules/home-manager/delta.nix index be6f11d2..cb751b47 100644 --- a/modules/home-manager/delta.nix +++ b/modules/home-manager/delta.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.delta; - enable = cfg.enable && config.programs.delta.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.delta.enable; in { diff --git a/modules/home-manager/dunst.nix b/modules/home-manager/dunst.nix index f6fbd10a..7e4290a0 100644 --- a/modules/home-manager/dunst.nix +++ b/modules/home-manager/dunst.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.dunst; - enable = cfg.enable && config.services.dunst.enable; + enable = config.catppuccin._enable && cfg.enable && config.services.dunst.enable; in { diff --git a/modules/home-manager/element-desktop.nix b/modules/home-manager/element-desktop.nix index 2171d461..26c6eda0 100644 --- a/modules/home-manager/element-desktop.nix +++ b/modules/home-manager/element-desktop.nix @@ -12,7 +12,7 @@ in accentSupport = true; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.element-desktop = { settings = let diff --git a/modules/home-manager/eza.nix b/modules/home-manager/eza.nix index db75848f..feb392f9 100644 --- a/modules/home-manager/eza.nix +++ b/modules/home-manager/eza.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.eza; - enable = cfg.enable && config.programs.eza.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.eza.enable; in { diff --git a/modules/home-manager/fcitx5.nix b/modules/home-manager/fcitx5.nix index d42a4b2e..83d37e54 100644 --- a/modules/home-manager/fcitx5.nix +++ b/modules/home-manager/fcitx5.nix @@ -6,7 +6,8 @@ let cfg = config.catppuccin.fcitx5; enable = - cfg.enable + config.catppuccin._enable + && cfg.enable && ( ( config.i18n.inputMethod ? enable diff --git a/modules/home-manager/firefox.nix b/modules/home-manager/firefox.nix index e7ba20ff..d86f563b 100644 --- a/modules/home-manager/firefox.nix +++ b/modules/home-manager/firefox.nix @@ -96,7 +96,7 @@ let profile = cfg.profiles.${name} or { enable = false; }; in { - config = mkIf profile.enable { + config = mkIf (config.catppuccin._enable && profile.enable) { extensions = { settings."FirefoxColor@mozilla.com" = { inherit (profile) force; diff --git a/modules/home-manager/fish.nix b/modules/home-manager/fish.nix index 10133a15..39c38cde 100644 --- a/modules/home-manager/fish.nix +++ b/modules/home-manager/fish.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.fish; - enable = cfg.enable && config.programs.fish.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.fish.enable; themeName = "Catppuccin ${lib.toSentenceCase cfg.flavor}"; in diff --git a/modules/home-manager/foot.nix b/modules/home-manager/foot.nix index 1480fa36..98c102d9 100644 --- a/modules/home-manager/foot.nix +++ b/modules/home-manager/foot.nix @@ -10,7 +10,7 @@ in { options.catppuccin.foot = catppuccinLib.mkCatppuccinOption { name = "foot"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.foot = { settings = { main.include = sources.foot + "/catppuccin-${cfg.flavor}.ini"; diff --git a/modules/home-manager/freetube.nix b/modules/home-manager/freetube.nix index 7ae50bf3..7140afd0 100644 --- a/modules/home-manager/freetube.nix +++ b/modules/home-manager/freetube.nix @@ -23,7 +23,7 @@ in }; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.freetube.settings = { # NOTE: For some reason, baseTheme does not capitalize first letter, but the other settings do baseTheme = "catppuccin${toSentenceCase cfg.flavor}"; diff --git a/modules/home-manager/fuzzel.nix b/modules/home-manager/fuzzel.nix index 5b2e8427..a9c5250a 100644 --- a/modules/home-manager/fuzzel.nix +++ b/modules/home-manager/fuzzel.nix @@ -13,7 +13,7 @@ in accentSupport = true; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.fuzzel = { settings = { main.include = sources.fuzzel + "/catppuccin-${cfg.flavor}/${cfg.accent}.ini"; diff --git a/modules/home-manager/fzf.nix b/modules/home-manager/fzf.nix index c9f3a925..b8dfed5f 100644 --- a/modules/home-manager/fzf.nix +++ b/modules/home-manager/fzf.nix @@ -31,7 +31,7 @@ in accentSupport = true; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.fzf = { inherit colors; }; diff --git a/modules/home-manager/gh-dash.nix b/modules/home-manager/gh-dash.nix index 7d3a7b86..50d809c9 100644 --- a/modules/home-manager/gh-dash.nix +++ b/modules/home-manager/gh-dash.nix @@ -14,7 +14,7 @@ in accentSupport = true; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.gh-dash = { settings = catppuccinLib.importYAML theme; }; diff --git a/modules/home-manager/ghostty.nix b/modules/home-manager/ghostty.nix index 20612c14..373e301b 100644 --- a/modules/home-manager/ghostty.nix +++ b/modules/home-manager/ghostty.nix @@ -6,7 +6,7 @@ let cfg = config.catppuccin.ghostty; themeName = "catppuccin-${cfg.flavor}"; - enable = cfg.enable && config.programs.ghostty.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.ghostty.enable; in { options.catppuccin.ghostty = catppuccinLib.mkCatppuccinOption { name = "ghostty"; }; diff --git a/modules/home-manager/gitui.nix b/modules/home-manager/gitui.nix index 75e5b698..74a037c1 100644 --- a/modules/home-manager/gitui.nix +++ b/modules/home-manager/gitui.nix @@ -10,7 +10,7 @@ in { options.catppuccin.gitui = catppuccinLib.mkCatppuccinOption { name = "gitui"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.gitui.theme = builtins.path { name = "${cfg.flavor}.ron"; path = "${sources.gitui}/catppuccin-${cfg.flavor}.ron"; diff --git a/modules/home-manager/glamour.nix b/modules/home-manager/glamour.nix index 2618dcce..3f613bec 100644 --- a/modules/home-manager/glamour.nix +++ b/modules/home-manager/glamour.nix @@ -10,7 +10,7 @@ in { options.catppuccin.glamour = catppuccinLib.mkCatppuccinOption { name = "glamour"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { home.sessionVariables = { GLAMOUR_STYLE = "${sources.glamour}/catppuccin-${cfg.flavor}.json"; }; diff --git a/modules/home-manager/gtk.nix b/modules/home-manager/gtk.nix index cb33ebbf..ee49c652 100644 --- a/modules/home-manager/gtk.nix +++ b/modules/home-manager/gtk.nix @@ -57,7 +57,7 @@ in }; }; - config = lib.mkIf cfg.icon.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.icon.enable) { gtk.iconTheme = let # use the light icon theme for latte diff --git a/modules/home-manager/halloy.nix b/modules/home-manager/halloy.nix index 85b24dc8..71d944fc 100644 --- a/modules/home-manager/halloy.nix +++ b/modules/home-manager/halloy.nix @@ -4,7 +4,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.halloy; - enable = cfg.enable && config.programs.halloy.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.halloy.enable; in { diff --git a/modules/home-manager/helix.nix b/modules/home-manager/helix.nix index 6b341f5f..7a10db8e 100644 --- a/modules/home-manager/helix.nix +++ b/modules/home-manager/helix.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.helix; - enable = cfg.enable && config.programs.helix.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.helix.enable; subdir = if cfg.useItalics then "default" else "no_italics"; in diff --git a/modules/home-manager/hyprland.nix b/modules/home-manager/hyprland.nix index 5fe5b3fc..aa9f5aba 100644 --- a/modules/home-manager/hyprland.nix +++ b/modules/home-manager/hyprland.nix @@ -9,7 +9,7 @@ let inherit (config.catppuccin) sources cursors; cfg = config.catppuccin.hyprland; - enable = cfg.enable && config.wayland.windowManager.hyprland.enable; + enable = config.catppuccin._enable && cfg.enable && config.wayland.windowManager.hyprland.enable; in { diff --git a/modules/home-manager/hyprlock.nix b/modules/home-manager/hyprlock.nix index 8fa45410..c4d6771a 100644 --- a/modules/home-manager/hyprlock.nix +++ b/modules/home-manager/hyprlock.nix @@ -24,7 +24,7 @@ in }; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.hyprlock = { settings = { source = [ diff --git a/modules/home-manager/imv.nix b/modules/home-manager/imv.nix index c20189c0..9fe569cb 100644 --- a/modules/home-manager/imv.nix +++ b/modules/home-manager/imv.nix @@ -10,7 +10,7 @@ in { options.catppuccin.imv = catppuccinLib.mkCatppuccinOption { name = "imv"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.imv = { settings = catppuccinLib.importINI (sources.imv + "/${cfg.flavor}.config"); }; diff --git a/modules/home-manager/k9s.nix b/modules/home-manager/k9s.nix index e342b1ba..440737cc 100644 --- a/modules/home-manager/k9s.nix +++ b/modules/home-manager/k9s.nix @@ -10,7 +10,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.k9s; - enable = cfg.enable && config.programs.k9s.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.k9s.enable; # NOTE: On MacOS specifically, k9s expects its configuration to be in # `~/Library/Application Support` when not using XDG diff --git a/modules/home-manager/kitty.nix b/modules/home-manager/kitty.nix index f13f1f63..a5f0b118 100644 --- a/modules/home-manager/kitty.nix +++ b/modules/home-manager/kitty.nix @@ -8,7 +8,7 @@ in { options.catppuccin.kitty = catppuccinLib.mkCatppuccinOption { name = "kitty"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.kitty = { themeFile = "Catppuccin-${lib.toSentenceCase cfg.flavor}"; }; diff --git a/modules/home-manager/kvantum.nix b/modules/home-manager/kvantum.nix index 9f042044..05c7d2d2 100644 --- a/modules/home-manager/kvantum.nix +++ b/modules/home-manager/kvantum.nix @@ -7,7 +7,7 @@ let cfg = config.catppuccin.kvantum; - enable = cfg.enable && config.qt.enable; + enable = config.catppuccin._enable && cfg.enable && config.qt.enable; themeName = "catppuccin-${cfg.flavor}-${cfg.accent}"; in diff --git a/modules/home-manager/lazygit.nix b/modules/home-manager/lazygit.nix index 25ac531a..f6818607 100644 --- a/modules/home-manager/lazygit.nix +++ b/modules/home-manager/lazygit.nix @@ -10,7 +10,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.lazygit; - enable = cfg.enable && config.programs.lazygit.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.lazygit.enable; # NOTE: On MacOS specifically, lazygit expects its configuration to be in # `~/Library/Application Support` when not using XDG diff --git a/modules/home-manager/lsd.nix b/modules/home-manager/lsd.nix index 74748415..48644cc8 100644 --- a/modules/home-manager/lsd.nix +++ b/modules/home-manager/lsd.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.lsd; - enable = cfg.enable && config.programs.lsd.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.lsd.enable; in { diff --git a/modules/home-manager/mako.nix b/modules/home-manager/mako.nix index 55fc3ffc..39300b97 100644 --- a/modules/home-manager/mako.nix +++ b/modules/home-manager/mako.nix @@ -1,7 +1,6 @@ { catppuccinLib }: { config, - pkgs, lib, ... }: @@ -18,8 +17,8 @@ in accentSupport = true; }; - config.services.mako = lib.mkIf cfg.enable ({ + config.services.mako = lib.mkIf (config.catppuccin._enable && cfg.enable) { settings.include = sources.mako + "/catppuccin-${cfg.flavor}/catppuccin-${cfg.flavor}-${cfg.accent}"; - }); + }; } diff --git a/modules/home-manager/mangohud.nix b/modules/home-manager/mangohud.nix index 95579691..cc820616 100644 --- a/modules/home-manager/mangohud.nix +++ b/modules/home-manager/mangohud.nix @@ -9,7 +9,7 @@ in { options.catppuccin.mangohud = catppuccinLib.mkCatppuccinOption { name = "mangohud"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { xdg.configFile = lib.mkIf config.programs.mangohud.enable { "MangoHud/MangoHud.conf".source = "${sources.mangohud}/${cfg.flavor}/MangoHud.conf"; }; diff --git a/modules/home-manager/micro.nix b/modules/home-manager/micro.nix index a5a6342c..687d2607 100644 --- a/modules/home-manager/micro.nix +++ b/modules/home-manager/micro.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.micro; - enable = cfg.enable && config.programs.micro.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.micro.enable; themePath = "catppuccin-${cfg.flavor}" + lib.optionalString cfg.transparent "-transparent" + ".micro"; diff --git a/modules/home-manager/mpv.nix b/modules/home-manager/mpv.nix index ab7fd71a..4c7cdf26 100644 --- a/modules/home-manager/mpv.nix +++ b/modules/home-manager/mpv.nix @@ -13,7 +13,7 @@ in accentSupport = true; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.mpv = { config = { include = sources.mpv + "/${cfg.flavor}/${cfg.accent}.conf"; diff --git a/modules/home-manager/neovim.nix b/modules/home-manager/neovim.nix index 2018b510..558d3507 100644 --- a/modules/home-manager/neovim.nix +++ b/modules/home-manager/neovim.nix @@ -18,7 +18,7 @@ in }; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.neovim = { plugins = [ { diff --git a/modules/home-manager/newsboat.nix b/modules/home-manager/newsboat.nix index 6974ba73..a0e9d6b8 100644 --- a/modules/home-manager/newsboat.nix +++ b/modules/home-manager/newsboat.nix @@ -11,7 +11,7 @@ in { options.catppuccin.newsboat = catppuccinLib.mkCatppuccinOption { name = "newsboat"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.newsboat = { extraConfig = lib.fileContents "${sources.newsboat}/${theme}"; }; diff --git a/modules/home-manager/nushell.nix b/modules/home-manager/nushell.nix index efe54f2f..cb58ccc4 100644 --- a/modules/home-manager/nushell.nix +++ b/modules/home-manager/nushell.nix @@ -10,7 +10,7 @@ in { options.catppuccin.nushell = catppuccinLib.mkCatppuccinOption { name = "nushell"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.nushell = { extraConfig = lib.mkBefore '' source ${sources.nushell + "/catppuccin_${cfg.flavor}.nu"} diff --git a/modules/home-manager/obs.nix b/modules/home-manager/obs.nix index 1b77a06d..3d6caaab 100644 --- a/modules/home-manager/obs.nix +++ b/modules/home-manager/obs.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.obs; - enable = cfg.enable && config.programs.obs-studio.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.obs-studio.enable; themeName = "Catppuccin_${lib.toSentenceCase cfg.flavor}.ovt"; in diff --git a/modules/home-manager/opencode.nix b/modules/home-manager/opencode.nix index 38a5a058..fe04e530 100644 --- a/modules/home-manager/opencode.nix +++ b/modules/home-manager/opencode.nix @@ -3,7 +3,7 @@ let cfg = config.catppuccin.opencode; - enable = cfg.enable && config.programs.opencode.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.opencode.enable; # Map Catppuccin flavors to OpenCode's available theme names # OpenCode provides: "catppuccin", "catppuccin-frappe", "catppuccin-macchiato" diff --git a/modules/home-manager/polybar.nix b/modules/home-manager/polybar.nix index f46cf873..331fa22e 100644 --- a/modules/home-manager/polybar.nix +++ b/modules/home-manager/polybar.nix @@ -10,7 +10,7 @@ in { options.catppuccin.polybar = catppuccinLib.mkCatppuccinOption { name = "polybar"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { services.polybar = { extraConfig = lib.fileContents "${sources.polybar}/${cfg.flavor}.ini"; }; diff --git a/modules/home-manager/qt5ct.nix b/modules/home-manager/qt5ct.nix index 898b1374..a5d76247 100644 --- a/modules/home-manager/qt5ct.nix +++ b/modules/home-manager/qt5ct.nix @@ -7,7 +7,7 @@ let cfg = config.catppuccin.qt5ct; - enable = cfg.enable && config.qt.enable; + enable = config.catppuccin._enable && cfg.enable && config.qt.enable; in { diff --git a/modules/home-manager/qutebrowser.nix b/modules/home-manager/qutebrowser.nix index b33ef994..2a035695 100644 --- a/modules/home-manager/qutebrowser.nix +++ b/modules/home-manager/qutebrowser.nix @@ -9,7 +9,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.qutebrowser; - enable = cfg.enable && config.programs.qutebrowser.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.qutebrowser.enable; files = { "qutebrowser/catppuccin".source = sources.qutebrowser; diff --git a/modules/home-manager/rio.nix b/modules/home-manager/rio.nix index c1b38b98..1986121b 100644 --- a/modules/home-manager/rio.nix +++ b/modules/home-manager/rio.nix @@ -10,7 +10,7 @@ in { options.catppuccin.rio = catppuccinLib.mkCatppuccinOption { name = "rio"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.rio = { settings = lib.importTOML "${sources.rio}/catppuccin-${cfg.flavor}.toml"; }; diff --git a/modules/home-manager/rofi.nix b/modules/home-manager/rofi.nix index 0da02afc..9e9ded79 100644 --- a/modules/home-manager/rofi.nix +++ b/modules/home-manager/rofi.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.rofi; - enable = config.programs.rofi.enable && cfg.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.rofi.enable; in { diff --git a/modules/home-manager/sioyek.nix b/modules/home-manager/sioyek.nix index 7f8e7069..5adf71a2 100644 --- a/modules/home-manager/sioyek.nix +++ b/modules/home-manager/sioyek.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.sioyek; - enable = cfg.enable && config.programs.sioyek.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.sioyek.enable; in { diff --git a/modules/home-manager/skim.nix b/modules/home-manager/skim.nix index acb2e6c3..0672d03b 100644 --- a/modules/home-manager/skim.nix +++ b/modules/home-manager/skim.nix @@ -11,7 +11,7 @@ in { options.catppuccin.skim = catppuccinLib.mkCatppuccinOption { name = "skim"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.skim = { defaultOptions = [ "--color=fg:${palette.text.hex},bg:${palette.base.hex},matched:${palette.surface0.hex},matched_bg:${palette.flamingo.hex},current:${palette.text.hex},current_bg:${palette.surface1.hex},current_match:${palette.base.hex},current_match_bg:${palette.rosewater.hex},spinner:${palette.green.hex},info:${palette.mauve.hex},prompt:${palette.blue.hex},cursor:${palette.red.hex},selected:${palette.maroon.hex},header:${palette.teal.hex},border:${palette.overlay0.hex}" diff --git a/modules/home-manager/spotify-player.nix b/modules/home-manager/spotify-player.nix index c798a60a..7af960a9 100644 --- a/modules/home-manager/spotify-player.nix +++ b/modules/home-manager/spotify-player.nix @@ -12,7 +12,7 @@ in name = "spotify-player"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.spotify-player = { settings.theme = "Catppuccin-${cfg.flavor}"; inherit (lib.importTOML "${sources.spotify-player}/theme.toml") themes; diff --git a/modules/home-manager/starship.nix b/modules/home-manager/starship.nix index b0829c41..bc6458cf 100644 --- a/modules/home-manager/starship.nix +++ b/modules/home-manager/starship.nix @@ -10,7 +10,7 @@ in { options.catppuccin.starship = catppuccinLib.mkCatppuccinOption { name = "starship"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.starship = { settings = { format = lib.mkDefault "$all"; diff --git a/modules/home-manager/sway.nix b/modules/home-manager/sway.nix index 5255b27f..a2880db3 100644 --- a/modules/home-manager/sway.nix +++ b/modules/home-manager/sway.nix @@ -11,7 +11,7 @@ in { options.catppuccin.sway = catppuccinLib.mkCatppuccinOption { name = "sway"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { wayland.windowManager.sway = { extraConfigEarly = '' include ${theme} diff --git a/modules/home-manager/swaylock.nix b/modules/home-manager/swaylock.nix index dd952b0c..db534ddc 100644 --- a/modules/home-manager/swaylock.nix +++ b/modules/home-manager/swaylock.nix @@ -11,7 +11,7 @@ in options.catppuccin.swaylock = catppuccinLib.mkCatppuccinOption { name = "swaylock"; /* - global `catppuccin.enable` purposefully doesn't work here in configurations with a `home.stateVersion` + global `catppuccin.autoEnable` purposefully doesn't work here in configurations with a `home.stateVersion` that is >= 23.05 this is because the upstream module will automatically enable itself if `programs.swaylock.settings` is set in configurations with a `home.stateVersion` that is < 23.05. so, we can't use the @@ -24,14 +24,14 @@ in this project. - @getchoo */ - default = lib.versionAtLeast config.home.stateVersion "23.05" && config.catppuccin.enable; + default = lib.versionAtLeast config.home.stateVersion "23.05" && config.catppuccin.autoEnable; defaultText = lib.literalExpression '' - `catppuccin.enable` if `home.stateVersion` is >= 23.05, false otherwise + `catppuccin.autoEnable` if `home.stateVersion` is >= 23.05, false otherwise Yes this is weird, and there's a funny story about it in the code comments ''; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.swaylock = { settings = catppuccinLib.importINI (sources.swaylock + "/${cfg.flavor}.conf"); }; diff --git a/modules/home-manager/swaync.nix b/modules/home-manager/swaync.nix index e03e54b4..81278ee2 100644 --- a/modules/home-manager/swaync.nix +++ b/modules/home-manager/swaync.nix @@ -10,7 +10,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.swaync; - enable = cfg.enable && config.services.swaync.enable; + enable = config.catppuccin._enable && cfg.enable && config.services.swaync.enable; theme = pkgs.substitute { src = sources.swaync + "/${cfg.flavor}.css"; diff --git a/modules/home-manager/television.nix b/modules/home-manager/television.nix index c26d66c2..bf8c02b8 100644 --- a/modules/home-manager/television.nix +++ b/modules/home-manager/television.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.television; - enable = config.programs.television.enable && cfg.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.television.enable; in { diff --git a/modules/home-manager/thunderbird.nix b/modules/home-manager/thunderbird.nix index d77844a6..78abec70 100644 --- a/modules/home-manager/thunderbird.nix +++ b/modules/home-manager/thunderbird.nix @@ -9,7 +9,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.thunderbird; - enable = cfg.enable && config.programs.thunderbird.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.thunderbird.enable; in { options.catppuccin.thunderbird = diff --git a/modules/home-manager/tmux.nix b/modules/home-manager/tmux.nix index 58dc44df..ff034a0b 100644 --- a/modules/home-manager/tmux.nix +++ b/modules/home-manager/tmux.nix @@ -21,7 +21,7 @@ in }; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.tmux = { plugins = [ { diff --git a/modules/home-manager/tofi.nix b/modules/home-manager/tofi.nix index 598f6eb2..e70e8137 100644 --- a/modules/home-manager/tofi.nix +++ b/modules/home-manager/tofi.nix @@ -10,7 +10,7 @@ in { options.catppuccin.tofi = catppuccinLib.mkCatppuccinOption { name = "tofi"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.tofi = { settings = { include = sources.tofi + "/catppuccin-${cfg.flavor}"; diff --git a/modules/home-manager/vesktop.nix b/modules/home-manager/vesktop.nix index 28445e32..d0a23931 100644 --- a/modules/home-manager/vesktop.nix +++ b/modules/home-manager/vesktop.nix @@ -12,7 +12,7 @@ in accentSupport = true; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.vesktop.vencord = { settings.enabledThemes = [ "${themeName}.css" ]; themes."${themeName}" = '' diff --git a/modules/home-manager/vicinae.nix b/modules/home-manager/vicinae.nix index 4d806535..ef953f8d 100644 --- a/modules/home-manager/vicinae.nix +++ b/modules/home-manager/vicinae.nix @@ -11,7 +11,7 @@ in accentSupport = true; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.vicinae = { settings = { theme = diff --git a/modules/home-manager/vivid.nix b/modules/home-manager/vivid.nix index ff36957b..43285e46 100644 --- a/modules/home-manager/vivid.nix +++ b/modules/home-manager/vivid.nix @@ -6,7 +6,7 @@ in { options.catppuccin.vivid = catppuccinLib.mkCatppuccinOption { name = "vivid"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.vivid.activeTheme = "catppuccin-${cfg.flavor}"; }; } diff --git a/modules/home-manager/vscode.nix b/modules/home-manager/vscode.nix index aeb12316..abed7c88 100644 --- a/modules/home-manager/vscode.nix +++ b/modules/home-manager/vscode.nix @@ -82,7 +82,7 @@ in config.programs.vscode.profiles = lib.mapAttrs ( _: profile: - lib.mkIf profile.enable { + lib.mkIf (config.catppuccin._enable && profile.enable) { extensions = [ (sources.vscode.override { catppuccinOptions = profile.settings; }) ] diff --git a/modules/home-manager/waybar.nix b/modules/home-manager/waybar.nix index 046efd59..40c4b620 100644 --- a/modules/home-manager/waybar.nix +++ b/modules/home-manager/waybar.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.waybar; - enable = cfg.enable && config.programs.waybar.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.waybar.enable; styleFile = "${sources.waybar}/${cfg.flavor}.css"; in diff --git a/modules/home-manager/wezterm.nix b/modules/home-manager/wezterm.nix index 7b64c908..24ff4412 100644 --- a/modules/home-manager/wezterm.nix +++ b/modules/home-manager/wezterm.nix @@ -18,7 +18,7 @@ in }; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.wezterm = { extraConfig = lib.mkBefore ( '' diff --git a/modules/home-manager/wleave.nix b/modules/home-manager/wleave.nix index 844e3eb0..b3075d33 100644 --- a/modules/home-manager/wleave.nix +++ b/modules/home-manager/wleave.nix @@ -40,7 +40,7 @@ in }; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.wleave.style = lib.concatStrings [ '' @import url("${sources.wlogout}/themes/${cfg.flavor}/${cfg.accent}.css"); diff --git a/modules/home-manager/wlogout.nix b/modules/home-manager/wlogout.nix index 52e666aa..abeafc22 100644 --- a/modules/home-manager/wlogout.nix +++ b/modules/home-manager/wlogout.nix @@ -39,7 +39,7 @@ in }; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.wlogout.style = lib.concatStrings [ '' @import url("${sources.wlogout}/themes/${cfg.flavor}/${cfg.accent}.css"); diff --git a/modules/home-manager/xfce4-terminal.nix b/modules/home-manager/xfce4-terminal.nix index 6bddcc71..ecfafbee 100644 --- a/modules/home-manager/xfce4-terminal.nix +++ b/modules/home-manager/xfce4-terminal.nix @@ -4,7 +4,6 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.xfce4-terminal; - enable = cfg.enable; themeName = "catppuccin-${cfg.flavor}"; toCaseWithSeparator = @@ -45,7 +44,7 @@ in useGlobalEnable = false; }; - config = lib.mkIf enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { xfconf.settings = { xfce4-terminal = terminalSettings; }; diff --git a/modules/home-manager/yazi.nix b/modules/home-manager/yazi.nix index d1479812..87910b5b 100644 --- a/modules/home-manager/yazi.nix +++ b/modules/home-manager/yazi.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.yazi; - enable = cfg.enable && config.programs.yazi.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.yazi.enable; in { diff --git a/modules/home-manager/zathura.nix b/modules/home-manager/zathura.nix index 165821d0..e3e6d376 100644 --- a/modules/home-manager/zathura.nix +++ b/modules/home-manager/zathura.nix @@ -10,7 +10,7 @@ in { options.catppuccin.zathura = catppuccinLib.mkCatppuccinOption { name = "zathura"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.zathura = { extraConfig = '' include ${sources.zathura + "/catppuccin-${cfg.flavor}"} diff --git a/modules/home-manager/zed-editor.nix b/modules/home-manager/zed-editor.nix index a82dcb93..3f909f00 100644 --- a/modules/home-manager/zed-editor.nix +++ b/modules/home-manager/zed-editor.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.zed; - enable = cfg.enable && config.programs.zed-editor.enable; + enable = config.catppuccin._enable && cfg.enable && config.programs.zed-editor.enable; accent = if cfg.accent == "mauve" then "" else " (${cfg.accent})"; flavor = catppuccinLib.mkFlavorName cfg.flavor; diff --git a/modules/home-manager/zellij.nix b/modules/home-manager/zellij.nix index 7e911b13..f89fd4cf 100644 --- a/modules/home-manager/zellij.nix +++ b/modules/home-manager/zellij.nix @@ -9,7 +9,7 @@ in { options.catppuccin.zellij = catppuccinLib.mkCatppuccinOption { name = "zellij"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.zellij = { settings = { theme = themeName; diff --git a/modules/home-manager/zsh-syntax-highlighting.nix b/modules/home-manager/zsh-syntax-highlighting.nix index f1030f19..342c37a2 100644 --- a/modules/home-manager/zsh-syntax-highlighting.nix +++ b/modules/home-manager/zsh-syntax-highlighting.nix @@ -1,6 +1,5 @@ { catppuccinLib }: { - options, config, lib, ... @@ -19,7 +18,7 @@ in }; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { programs.zsh.initContent = lib.mkOrder 950 '' source '${sources.zsh-syntax-highlighting}/catppuccin_${cfg.flavor}-zsh-syntax-highlighting.zsh' ''; diff --git a/modules/lib/default.nix b/modules/lib/default.nix index 24cc0e2a..fdc21c8f 100644 --- a/modules/lib/default.nix +++ b/modules/lib/default.nix @@ -12,7 +12,6 @@ let mkEnableOption mkOption mkSinkUndeclaredOptions - optional optionalAttrs types versionAtLeast @@ -176,16 +175,16 @@ lib.makeExtensible (ctp: { - [name] Name of the module - [useGlobalEnable] Whether to enable the module by default when `catppuccin.enable` is set (recommended, defaults to `true`) - - [default] Default `enable` option value (defaults to `if useGlobalEnable then config.catppuccin.enable else false`) - - [defaultText] Default `enable` option text (automatic if `null`, defaults to `if useGlobalEnable then "config.catppuccin.enable" else null`) + - [default] Default `enable` option value (defaults to `if useGlobalEnable then config.catppuccin.autoEnable else false`) + - [defaultText] Default `enable` option text (automatic if `null`, defaults to `if useGlobalEnable then "config.catppuccin.autoEnable" else null`) - [accentSupport] Add an `accent` option (defaults to `false`) */ mkCatppuccinOption = { name, useGlobalEnable ? true, - default ? if useGlobalEnable then config.catppuccin.enable else false, - defaultText ? if useGlobalEnable then "catppuccin.enable" else null, + default ? if useGlobalEnable then config.catppuccin.autoEnable else false, + defaultText ? if useGlobalEnable then "catppuccin.autoEnable" else null, accentSupport ? false, }: diff --git a/modules/nixos/cursors.nix b/modules/nixos/cursors.nix index b2da5175..6b28c4c4 100644 --- a/modules/nixos/cursors.nix +++ b/modules/nixos/cursors.nix @@ -38,7 +38,8 @@ in config = lib.mkIf ( - cfg.enable + config.catppuccin._enable + && cfg.enable && (config.services.desktopManager.gnome.enable || config.services.displayManager.gdm.enable) ) { diff --git a/modules/nixos/fcitx5.nix b/modules/nixos/fcitx5.nix index dd4aef1a..294f3f36 100644 --- a/modules/nixos/fcitx5.nix +++ b/modules/nixos/fcitx5.nix @@ -20,7 +20,7 @@ in enableRounded = lib.mkEnableOption "rounded corners for the Fcitx5 theme"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { i18n.inputMethod.fcitx5 = { addons = [ (sources.fcitx5.override { inherit (cfg) enableRounded; }) diff --git a/modules/nixos/gitea.nix b/modules/nixos/gitea.nix index 410234e1..e7c2032b 100644 --- a/modules/nixos/gitea.nix +++ b/modules/nixos/gitea.nix @@ -57,7 +57,7 @@ in hasAssetsDir = lib.versionAtLeast config.services.${forge}.package.version "1.21.0"; themeDir = if hasAssetsDir then "${customDir}/public/assets/css" else "${customDir}/public/css"; in - lib.mkIf (cfg.enable && config.services.${forge}.enable) { + lib.mkIf (config.catppuccin._enable && cfg.enable && config.services.${forge}.enable) { systemd.tmpfiles.settings."10-catppuccin-${forge}-theme" = { ${themeDir}."C+" = { argument = toString sources.gitea; @@ -67,7 +67,7 @@ in inherit (config.services.${forge}) user group; }; - "${customDir}/public/assets".d = lib.attrsets.optionalAttrs (hasAssetsDir) { + "${customDir}/public/assets".d = lib.attrsets.optionalAttrs hasAssetsDir { inherit (config.services.${forge}) user group; }; }; diff --git a/modules/nixos/grub.nix b/modules/nixos/grub.nix index 7d9a9be1..fe590986 100644 --- a/modules/nixos/grub.nix +++ b/modules/nixos/grub.nix @@ -17,7 +17,7 @@ in { options.catppuccin.grub = catppuccinLib.mkCatppuccinOption { name = "grub"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { boot.loader.grub = { font = "${theme}/font.pf2"; splashImage = "${theme}/background.png"; diff --git a/modules/nixos/gtk.nix b/modules/nixos/gtk.nix index 2a71af0f..1dc0644a 100644 --- a/modules/nixos/gtk.nix +++ b/modules/nixos/gtk.nix @@ -21,7 +21,8 @@ in config = lib.mkIf ( - cfg.icon.enable + config.catppuccin._enable + && cfg.icon.enable && (config.services.desktopManager.gnome.enable || config.services.displayManager.gdm.enable) ) { diff --git a/modules/nixos/limine.nix b/modules/nixos/limine.nix index 17afcdc7..18b98db4 100644 --- a/modules/nixos/limine.nix +++ b/modules/nixos/limine.nix @@ -16,7 +16,7 @@ in { options.catppuccin.limine = catppuccinLib.mkCatppuccinOption { name = "limine"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { boot.loader.limine = { extraConfig = lib.fileContents theme; style.wallpapers = [ ]; diff --git a/modules/nixos/plymouth.nix b/modules/nixos/plymouth.nix index 0ec73fab..156649d2 100644 --- a/modules/nixos/plymouth.nix +++ b/modules/nixos/plymouth.nix @@ -12,7 +12,7 @@ in { options.catppuccin.plymouth = catppuccinLib.mkCatppuccinOption { name = "plymouth"; }; - config = lib.mkIf cfg.enable { + config = lib.mkIf (config.catppuccin._enable && cfg.enable) { boot.plymouth = { theme = "catppuccin-${cfg.flavor}"; themePackages = [ config.catppuccin.sources.plymouth ]; diff --git a/modules/nixos/sddm.nix b/modules/nixos/sddm.nix index cfcb57ad..76c7b6d7 100644 --- a/modules/nixos/sddm.nix +++ b/modules/nixos/sddm.nix @@ -13,7 +13,7 @@ let ; cfg = config.catppuccin.sddm; - enable = cfg.enable && config.services.displayManager.sddm.enable; + enable = config.catppuccin._enable && cfg.enable && config.services.displayManager.sddm.enable; in { diff --git a/modules/nixos/tty.nix b/modules/nixos/tty.nix index b6b23ff1..7af6c99b 100644 --- a/modules/nixos/tty.nix +++ b/modules/nixos/tty.nix @@ -5,7 +5,7 @@ let inherit (config.catppuccin) sources; cfg = config.catppuccin.tty; - enable = cfg.enable && config.console.enable; + enable = config.catppuccin._enable && cfg.enable && config.console.enable; palette = (lib.importJSON "${sources.palette}/palette.json").${cfg.flavor}.colors; in