From fba19d46c5fcd7a41cf98005a27ed681582862f4 Mon Sep 17 00:00:00 2001
From: Philip Wilk
Date: Sat, 20 Jul 2024 20:04:28 +0100
Subject: [PATCH] kakoune: add colorSchemePackage option
This makes it easy to declaratively manage the color scheme for kakoune via a nix package in your ``~/.config/kak/colors`` folder.
The color scheme can then be declaratively selected by name using the existing hm option ``programs.kakoune.config.colorScheme``
---
modules/programs/kakoune.nix | 27 ++++++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/modules/programs/kakoune.nix b/modules/programs/kakoune.nix
index da0af0c0..3b6023de 100644
--- a/modules/programs/kakoune.nix
+++ b/modules/programs/kakoune.nix
@@ -658,12 +658,29 @@ in {
{command}`nix-env -f '' -qaP -A kakounePlugins`.
'';
};
+
+ colorSchemePackage = mkOption {
+ type = with types; nullOr package;
+ default = null;
+ example = literalExpression "pkgs.kakounePlugins.kakoune-catppuccin";
+ description = ''
+ A kakoune color schemes to add to your colors folder.
+ This works because kakoune recursively checks `$XDG_CONFIG_HOME/kak/colors/`.
+ To apply the color scheme use `programs.kakoune.config.colorScheme = "theme"`.
+ '';
+ };
};
};
- config = mkIf cfg.enable {
- home.packages = [ kakouneWithPlugins ];
- home.sessionVariables = mkIf cfg.defaultEditor { EDITOR = "kak"; };
- xdg.configFile."kak/kakrc".source = configFile;
- };
+ config = mkIf cfg.enable (mkMerge [
+ {
+ home.packages = [ kakouneWithPlugins ];
+ home.sessionVariables = mkIf cfg.defaultEditor { EDITOR = "kak"; };
+ xdg.configFile."kak/kakrc".source = configFile;
+ }
+ (mkIf (cfg.colorSchemePackage != null) {
+ xdg.configFile."kak/colors/${cfg.colorSchemePackage.name}".source =
+ cfg.colorSchemePackage;
+ })
+ ]);
}