rose-pine-nix/modules/home-manager/k9s.nix
2024-08-23 10:53:42 +00:00

36 lines
1.1 KiB
Nix

{
config,
lib,
pkgs,
...
}:
let
inherit (config.catppuccin) sources;
cfg = config.programs.k9s.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
enableXdgConfig = !pkgs.stdenv.hostPlatform.isDarwin || config.xdg.enable;
themeName = "catppuccin-${cfg.flavor}" + lib.optionalString cfg.transparent "-transparent";
themeFile = "${themeName}.yaml";
themePath = "k9s/skins/${themeFile}";
theme = sources.k9s + "/dist/${themeFile}";
in
{
options.programs.k9s.catppuccin = lib.ctp.mkCatppuccinOpt { name = "k9s"; } // {
transparent = lib.mkEnableOption "transparent version of flavor";
};
config = lib.mkIf enable (
lib.mkMerge [
(lib.mkIf (!enableXdgConfig) {
home.file."Library/Application Support/${themePath}".source = theme;
})
(lib.mkIf enableXdgConfig { xdg.configFile.${themePath}.source = theme; })
{ programs.k9s.settings.k9s.ui.skin = themeName; }
]
);
}