#4234·k9s

7 of the community plugin files bind keys the table already owns, so they fail to load

Author: SLoeuilletCreated Sep 17, 2026Updated Sep 17, 2026
Labelspluginconflicts

What happens

Installing one of these plugins/*.yaml files shows Plugins load failed! in the status bar on every refresh, and the offending binding is silently missing:

WRN Plugins load failed error="duplicate plugin key found for \"Shift-J\" in \"argocd-disable-auto-sync\""

pluginActions refuses a plugin whose shortCut is already bound unless it sets override, and the refusal is effectively per-file — one bad shortcut and every plugin in that file reports failure.

Affected files on master

Table.bindKeys binds Shift-N/A/S/O (internal/view/table.go) and the owner extender binds Shift-J (internal/view/owner_extender.go) on every resource view:

plugin key already bound to
argocd.yamlargocd-disable-auto-sync Shift-J Jump Owner
cert-manager.yamlcert-status Shift-S Sort Status
cloudnative-pg.yamlcnpg-status-verbose Shift-S Sort Status
flux.yamlget-suspended-helmreleases Shift-S Sort Status
flux.yamlget-suspended-kustomizations Shift-S Sort Status
k3d-root-shell.yamlk3d-root-shell Shift-S Sort Status
karpenter.yamlkarpenter-nodepool-nodes Shift-N Sort Name
openssl.yamlsecret-openssl-tls Shift-O Sort Selected Column

7 files. argocd.yaml is fixed in #4233; the rest are untouched.

Why nothing catches it

The YAML is valid and the JSON schema accepts it, so the file looks fine everywhere except a running k9s. I confirmed the argocd.yaml case by driving the TUI: 7 of 8 descriptions offered, warning on every refresh; after the fix, 8 of 8 and a clean log.

Two plugins sharing a shortcut on non-overlapping scopes are fine — only one is ever bound on a given view — so the check has to be scope-aware. krr/krr-ns and vector-top/vector-top-container look like collisions but are not.

Offer

I have a small test (internal/config, globs ../../plugins/*.yaml, loads each and checks shortcuts against the built-ins, scope-aware) that reproduces the table above. I did not send it as a PR because it goes red on six files that aren't mine, and fixing those means picking new shortcuts on other people's behalf.

Happy to send any of: the test alone, the test plus fixes for all seven, or nothing — whichever you prefer.