mirror of
https://github.com/nix-community/home-manager
synced 2024-09-12 06:16:33 +02:00
Support alternate configuration files for k9s in darwin where XDG is not mandated and k9s expects configuration files in `~/Library/Application Support/k9s/`.
117 lines
3.0 KiB
Nix
117 lines
3.0 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
{
|
|
xdg.enable = lib.mkIf pkgs.stdenv.isDarwin (lib.mkForce false);
|
|
|
|
programs.k9s = {
|
|
enable = true;
|
|
package = config.lib.test.mkStubPackage { };
|
|
|
|
settings = {
|
|
k9s = {
|
|
refreshRate = 2;
|
|
maxConnRetry = 5;
|
|
enableMouse = true;
|
|
headless = false;
|
|
ui.skin = "default";
|
|
};
|
|
};
|
|
hotkey = {
|
|
hotKey = {
|
|
shift-0 = {
|
|
shortCut = "Shift-0";
|
|
description = "Viewing pods";
|
|
command = "pods";
|
|
};
|
|
};
|
|
};
|
|
skins = {
|
|
"default" = {
|
|
k9s = {
|
|
body = {
|
|
fgColor = "dodgerblue";
|
|
bgColor = "#ffffff";
|
|
logoColor = "#0000ff";
|
|
};
|
|
info = {
|
|
fgColor = "lightskyblue";
|
|
sectionColor = "steelblue";
|
|
};
|
|
};
|
|
};
|
|
"alt-skin" = {
|
|
k9s = {
|
|
body = {
|
|
fgColor = "orangered";
|
|
bgColor = "#ffffff";
|
|
logoColor = "#0000ff";
|
|
};
|
|
info = {
|
|
fgColor = "red";
|
|
sectionColor = "mediumvioletred";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
aliases = { alias = { pp = "v1/pods"; }; };
|
|
plugin = {
|
|
plugin = {
|
|
fred = {
|
|
shortCut = "Ctrl-L";
|
|
description = "Pod logs";
|
|
scopes = [ "po" ];
|
|
command = "kubectl";
|
|
background = false;
|
|
args =
|
|
[ "logs" "-f" "$NAME" "-n" "$NAMESPACE" "--context" "$CLUSTER" ];
|
|
};
|
|
};
|
|
};
|
|
views = {
|
|
k9s = {
|
|
views = {
|
|
"v1/pods" = {
|
|
columns = [ "AGE" "NAMESPACE" "NAME" "IP" "NODE" "STATUS" "READY" ];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
nmt.script = let
|
|
configDir = if !pkgs.stdenv.isDarwin then
|
|
".config/k9s"
|
|
else
|
|
"Library/Application Support/k9s";
|
|
in ''
|
|
assertFileExists "home-files/${configDir}/config.yaml"
|
|
assertFileContent \
|
|
"home-files/${configDir}/config.yaml" \
|
|
${./example-config-expected.yaml}
|
|
assertFileExists "home-files/${configDir}/skins/default.yaml"
|
|
assertFileContent \
|
|
"home-files/${configDir}/skins/default.yaml" \
|
|
${./example-skin-expected.yaml}
|
|
assertFileExists "home-files/${configDir}/skins/alt-skin.yaml"
|
|
assertFileContent \
|
|
"home-files/${configDir}/skins/alt-skin.yaml" \
|
|
${./example-skin-expected-alt.yaml}
|
|
assertFileExists "home-files/${configDir}/hotkeys.yaml"
|
|
assertFileContent \
|
|
"home-files/${configDir}/hotkeys.yaml" \
|
|
${./example-hotkey-expected.yaml}
|
|
assertFileExists "home-files/${configDir}/aliases.yaml"
|
|
assertFileContent \
|
|
"home-files/${configDir}/aliases.yaml" \
|
|
${./example-aliases-expected.yaml}
|
|
assertFileExists "home-files/${configDir}/plugins.yaml"
|
|
assertFileContent \
|
|
"home-files/${configDir}/plugins.yaml" \
|
|
${./example-plugin-expected.yaml}
|
|
assertFileExists "home-files/${configDir}/views.yaml"
|
|
assertFileContent \
|
|
"home-files/${configDir}/views.yaml" \
|
|
${./example-views-expected.yaml}
|
|
'';
|
|
}
|