1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-23 03:29:45 +01:00

k9s: allow defining custom theme file

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
Sefa Eyeoglu 2023-11-13 13:44:03 +01:00 committed by Robert Helgesson
parent 8a175a8913
commit 77c9414828
No known key found for this signature in database
GPG key ID: 96E745BD17AA17ED
2 changed files with 18 additions and 7 deletions

View file

@ -46,7 +46,7 @@ in {
}; };
skins = mkOption { skins = mkOption {
type = types.attrsOf yamlFormat.type; type = with types; attrsOf (either yamlFormat.type path);
default = { }; default = { };
description = '' description = ''
Skin files written to {file}`$XDG_CONFIG_HOME/k9s/skins/` (linux) Skin files written to {file}`$XDG_CONFIG_HOME/k9s/skins/` (linux)
@ -54,13 +54,16 @@ in {
<https://k9scli.io/topics/skins/> for supported values. <https://k9scli.io/topics/skins/> for supported values.
''; '';
example = literalExpression '' example = literalExpression ''
my_blue_skin = { {
k9s = { my_blue_skin = {
body = { k9s = {
fgColor = "dodgerblue"; body = {
fgColor = "dodgerblue";
};
}; };
}; };
}; my_red_skin = ./red_skin.yaml;
}
''; '';
}; };
@ -174,7 +177,10 @@ in {
"k9s/skins/${name}.yaml" "k9s/skins/${name}.yaml"
else else
"Library/Application Support/k9s/skins/${name}.yaml") { "Library/Application Support/k9s/skins/${name}.yaml") {
source = yamlFormat.generate "k9s-skin-${name}.yaml" value; source = if lib.types.path.check value then
value
else
yamlFormat.generate "k9s-skin-${name}.yaml" value;
}) cfg.skins; }) cfg.skins;
enableXdgConfig = !isDarwin || config.xdg.enable; enableXdgConfig = !isDarwin || config.xdg.enable;

View file

@ -39,6 +39,7 @@
}; };
}; };
}; };
"default2" = ./example-skin-expected.yaml;
"alt-skin" = { "alt-skin" = {
k9s = { k9s = {
body = { body = {
@ -92,6 +93,10 @@
assertFileContent \ assertFileContent \
"home-files/${configDir}/skins/default.yaml" \ "home-files/${configDir}/skins/default.yaml" \
${./example-skin-expected.yaml} ${./example-skin-expected.yaml}
assertFileExists "home-files/${configDir}/skins/default2.yaml"
assertFileContent \
"home-files/${configDir}/skins/default2.yaml" \
${./example-skin-expected.yaml}
assertFileExists "home-files/${configDir}/skins/alt-skin.yaml" assertFileExists "home-files/${configDir}/skins/alt-skin.yaml"
assertFileContent \ assertFileContent \
"home-files/${configDir}/skins/alt-skin.yaml" \ "home-files/${configDir}/skins/alt-skin.yaml" \