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; + }) + ]); }