mirror of
https://github.com/kmein/niveum
synced 2026-03-22 04:41:07 +01:00
feat(fzf): configure and integrate into shells
This commit is contained in:
36
configs/fzf.nix
Normal file
36
configs/fzf.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
environment = {
|
||||
systemPackages = [ pkgs.fzf ];
|
||||
variables = {
|
||||
FZF_DEFAULT_OPTS = lib.escapeShellArgs [
|
||||
"--height 40%"
|
||||
"--layout=reverse"
|
||||
];
|
||||
FZF_ALT_C_COMMAND = "${pkgs.fd}/bin/fd --type d";
|
||||
FZF_ALT_C_OPTS = lib.escapeShellArgs [
|
||||
"--preview '${pkgs.tree}/bin/tree -L 1 {}'"
|
||||
"--bind='space:toggle-preview'"
|
||||
"--preview-window=hidden"
|
||||
];
|
||||
FZF_CTRL_T_COMMAND = "${pkgs.fd}/bin/fd --type f";
|
||||
FZF_CTRL_T_OPTS = lib.escapeShellArgs [
|
||||
"--preview '${pkgs.bat}/bin/bat {}'"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh.interactiveShellInit = ''
|
||||
if [[ $options[zle] = on ]]; then
|
||||
. ${pkgs.fzf}/share/fzf/completion.zsh
|
||||
. ${pkgs.fzf}/share/fzf/key-bindings.zsh
|
||||
fi
|
||||
'';
|
||||
|
||||
programs.bash.interactiveShellInit = ''
|
||||
if [[ :$SHELLOPTS: =~ :(vi|emacs): ]]; then
|
||||
. ${pkgs.fzf}/share/fzf/completion.bash
|
||||
. ${pkgs.fzf}/share/fzf/key-bindings.bash
|
||||
fi
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user