36 lines
1.1 KiB
Nix
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; }
|
|
]
|
|
);
|
|
}
|