I’ve setup nix, darwin and home-manager on a MacOS VM to test this out. Ive used home-manager to enable zsh and fzf. It seems to work fine, Ctrl+R starts the fzf file widget as expected.
I assume OP has figured this out already, but for others looking around, one way to achieve this is to source the plugins manually, taking fzf-tab plugin as an example:
The right path to source can be figured out by looking the derivation’s source code, usually in the installPhase we see where are the artifacts copied to.
OP had not. Thank you for taking your time to do this.
I had not realised that installing was not sufficient; that I had to put in the zsh configuration myself, but it makes sense now that you explained it.
this works because in the root of that repo there’s a fzf-tab.plugin.zsh file, otherwise we would need to also use the file attribute to specify the file name that should be sourced instead.
This thread seems to come up when searching for how to configure zsh-vi-mode along with the above integrations of fzf, zsh-fzf-tab, and how the keybindings conflict with fzf when in zsh-vi-mode’s insert mode.
My solution was to remove enableZshIntegration = true; from the fzf block and instead enable
initExtra = ''
# needed instead of fzf.enableZshIntegration = true so zsh-vi-mode and fzf do not conflict
zvm_after_init_commands+=(eval "$(fzf --zsh)")
'';