Skip to content

Commit

Permalink
fix(home-manager/k9s): support darwin without XDG (#311)
Browse files Browse the repository at this point in the history
* 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 <[email protected]>

---------

Co-authored-by: seth <[email protected]>
  • Loading branch information
alejandro-angulo and getchoo authored Aug 23, 2024
1 parent 8886a68 commit 0047cf5
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions modules/home-manager/k9s.nix
Original file line number Diff line number Diff line change
@@ -1,23 +1,34 @@
{ 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
{
options.programs.k9s.catppuccin = lib.ctp.mkCatppuccinOpt { name = "k9s"; } // {
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; }
]);
}

0 comments on commit 0047cf5

Please sign in to comment.