7 of the community plugin files bind keys the table already owns, so they fail to load
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.yaml → argocd-disable-auto-sync |
Shift-J |
Jump Owner |
cert-manager.yaml → cert-status |
Shift-S |
Sort Status |
cloudnative-pg.yaml → cnpg-status-verbose |
Shift-S |
Sort Status |
flux.yaml → get-suspended-helmreleases |
Shift-S |
Sort Status |
flux.yaml → get-suspended-kustomizations |
Shift-S |
Sort Status |
k3d-root-shell.yaml → k3d-root-shell |
Shift-S |
Sort Status |
karpenter.yaml → karpenter-nodepool-nodes |
Shift-N |
Sort Name |
openssl.yaml → secret-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.
Source: derailed/k9s