mirror of
https://github.com/nix-community/home-manager
synced 2024-11-27 05:29:46 +01:00
k9s: add hotkey option (#4617)
* k9s: add hotkey option This PR adds an option to customise k9s hotkeys. The keyword `hotKey` must be in camel case on the user config. * Update modules/programs/k9s.nix Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com> * fix formatting --------- Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
This commit is contained in:
parent
9bc7d84b82
commit
fc2a8842ea
3 changed files with 46 additions and 2 deletions
|
@ -8,7 +8,7 @@ let
|
||||||
yamlFormat = pkgs.formats.yaml { };
|
yamlFormat = pkgs.formats.yaml { };
|
||||||
|
|
||||||
in {
|
in {
|
||||||
meta.maintainers = [ hm.maintainers.katexochen ];
|
meta.maintainers = with maintainers; [ katexochen liyangau ];
|
||||||
|
|
||||||
options.programs.k9s = {
|
options.programs.k9s = {
|
||||||
enable =
|
enable =
|
||||||
|
@ -49,6 +49,29 @@ in {
|
||||||
};
|
};
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hotkey = mkOption {
|
||||||
|
type = yamlFormat.type;
|
||||||
|
default = { };
|
||||||
|
description = ''
|
||||||
|
hotkeys written to
|
||||||
|
{file}`$XDG_CONFIG_HOME/k9s/hotkey.yml`. See
|
||||||
|
<https://k9scli.io/topics/hotkeys/>
|
||||||
|
for supported values.
|
||||||
|
'';
|
||||||
|
example = literalExpression ''
|
||||||
|
hotkey = {
|
||||||
|
# Make sure this is camel case
|
||||||
|
hotKey = {
|
||||||
|
shift-0 = {
|
||||||
|
shortCut = "Shift-0";
|
||||||
|
description = "Viewing pods";
|
||||||
|
command = "pods";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
@ -61,5 +84,9 @@ in {
|
||||||
xdg.configFile."k9s/skin.yml" = mkIf (cfg.skin != { }) {
|
xdg.configFile."k9s/skin.yml" = mkIf (cfg.skin != { }) {
|
||||||
source = yamlFormat.generate "k9s-skin" cfg.skin;
|
source = yamlFormat.generate "k9s-skin" cfg.skin;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdg.configFile."k9s/hotkey.yml" = mkIf (cfg.hotkey != { }) {
|
||||||
|
source = yamlFormat.generate "k9s-hotkey" cfg.hotkey;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
5
tests/modules/programs/k9s/example-hotkey-expected.yml
Normal file
5
tests/modules/programs/k9s/example-hotkey-expected.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
hotKey:
|
||||||
|
shift-0:
|
||||||
|
command: pods
|
||||||
|
description: Viewing pods
|
||||||
|
shortCut: Shift-0
|
|
@ -13,7 +13,15 @@
|
||||||
headless = false;
|
headless = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
hotkey = {
|
||||||
|
hotKey = {
|
||||||
|
shift-0 = {
|
||||||
|
shortCut = "Shift-0";
|
||||||
|
description = "Viewing pods";
|
||||||
|
command = "pods";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
skin = {
|
skin = {
|
||||||
k9s = {
|
k9s = {
|
||||||
body = {
|
body = {
|
||||||
|
@ -35,8 +43,12 @@
|
||||||
home-files/.config/k9s/config.yml \
|
home-files/.config/k9s/config.yml \
|
||||||
${./example-config-expected.yml}
|
${./example-config-expected.yml}
|
||||||
assertFileExists home-files/.config/k9s/skin.yml
|
assertFileExists home-files/.config/k9s/skin.yml
|
||||||
|
assertFileExists home-files/.config/k9s/hotkey.yml
|
||||||
assertFileContent \
|
assertFileContent \
|
||||||
home-files/.config/k9s/skin.yml \
|
home-files/.config/k9s/skin.yml \
|
||||||
${./example-skin-expected.yml}
|
${./example-skin-expected.yml}
|
||||||
|
assertFileContent \
|
||||||
|
home-files/.config/k9s/hotkey.yml \
|
||||||
|
${./example-hotkey-expected.yml}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue