fix(home-manager/k9s): support darwin without XDG (#311)

* fix(home-manager/k9s): k9s on darwin with xdg disabled

k9s expects configuration files on OS X to live in
`~/Library/Application Support/k9s` instead of `~/.config.k9s`. This
commit handles the case where the module is built for a darwin system
with xdg disabled.

* Refactored

- More closely matches the upstream module in home-manager
- Formatted with nixfmt-rfc-style

* Added missing parentheses

Co-authored-by: seth <getchoo@tuta.io>

---------

Co-authored-by: seth <getchoo@tuta.io>
This commit is contained in:
Alejandro Angulo 2024-08-23 03:53:12 -07:00 committed by GitHub
parent 8886a68eda
commit 0047cf5816
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,13 +1,22 @@
{ config, lib, ... }:
{
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 = "/skins/${themeFile}";
themePath = "k9s/skins/${themeFile}";
theme = sources.k9s + "/dist/${themeFile}";
in
{
@ -15,9 +24,11 @@ in
transparent = lib.mkEnableOption "transparent version of flavor";
};
config = lib.mkIf enable {
xdg.configFile."k9s${themePath}".source = theme;
programs.k9s.settings.k9s.ui.skin = themeName;
};
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; }
]);
}