Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 38 additions & 2 deletions modules/global.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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 = {
Expand All @@ -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="
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/aerc.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/alacritty.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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" ];
};
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/anki.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/atuin.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/bat.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/bottom.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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";
};
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/btop.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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}";
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/cava.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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

{
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/chrome.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/cursors.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/delta.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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

{
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/dunst.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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

{
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/element-desktop.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/eza.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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

{
Expand Down
3 changes: 2 additions & 1 deletion modules/home-manager/fcitx5.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ let

cfg = config.catppuccin.fcitx5;
enable =
cfg.enable
config.catppuccin._enable
&& cfg.enable
&& (
(
config.i18n.inputMethod ? enable
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/firefox.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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."[email protected]" = {
inherit (profile) force;
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/fish.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/foot.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/freetube.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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}";
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/fuzzel.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/fzf.nix
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ in
accentSupport = true;
};

config = lib.mkIf cfg.enable {
config = lib.mkIf (config.catppuccin._enable && cfg.enable) {
programs.fzf = {
inherit colors;
};
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/gh-dash.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/ghostty.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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"; };
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/gitui.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/glamour.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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";
};
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/gtk.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/halloy.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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

{
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/helix.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/hyprland.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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

{
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/hyprlock.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ in
};
};

config = lib.mkIf cfg.enable {
config = lib.mkIf (config.catppuccin._enable && cfg.enable) {
programs.hyprlock = {
settings = {
source = [
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/imv.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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");
};
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/k9s.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/kitty.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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}";
};
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/kvantum.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/lazygit.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion modules/home-manager/lsd.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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

{
Expand Down
Loading