diff options
| author | 2026-05-14 11:25:43 +0100 | |
|---|---|---|
| committer | 2026-05-14 11:25:43 +0100 | |
| commit | 89829b5beaad70aa58cd566bd975aafcfe8d1f8f (patch) | |
| tree | 8beb36e495d6136c763b0260c13c204f67a5a407 /dot_zshenv | |
| parent | f1936454ebe39f4c2b0214c4b16624209a3e4503 (diff) | |
| download | dotfiles-89829b5beaad70aa58cd566bd975aafcfe8d1f8f.tar.gz dotfiles-89829b5beaad70aa58cd566bd975aafcfe8d1f8f.tar.bz2 dotfiles-89829b5beaad70aa58cd566bd975aafcfe8d1f8f.zip | |
fix(zsh): make compdef guard check completion fn, also wire nix-profile fpath
Previous guard checked `$+commands[Y]` (binary present in PATH), but the
`compdef: unknown command or service: Y` message comes from compdef when
the *completion function* `_Y` isn't registered — on the remote-dev VM
`systemctl`, `just`, `lsd` are all on PATH yet zsh has no `_systemctl`
because Ubuntu's system zsh doesn't include nix-profile's
share/zsh/site-functions in fpath.
Two-part fix:
1. Prepend $HOME/.nix-profile/share/zsh/{site-functions,vendor-completions}
to fpath (when they exist) before compinit, so the completions get
loaded on the VM the same way they do on Arch.
2. Switch the compdef guard to `$+_comps[Y]` — the assoc-array compinit
actually populates with every command that has a registered completion
handler. Still belt-and-suspenders in case something ships a binary
without a matching completion file.
Diffstat (limited to 'dot_zshenv')
0 files changed, 0 insertions, 0 deletions
