diff options
Diffstat (limited to 'nixpkgs/nixos/modules/programs/fzf.nix')
-rw-r--r-- | nixpkgs/nixos/modules/programs/fzf.nix | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/nixpkgs/nixos/modules/programs/fzf.nix b/nixpkgs/nixos/modules/programs/fzf.nix new file mode 100644 index 000000000000..7c4f338e29b3 --- /dev/null +++ b/nixpkgs/nixos/modules/programs/fzf.nix @@ -0,0 +1,32 @@ +{ pkgs, config, lib, ... }: +with lib; +let + cfg = config.programs.fzf; +in +{ + options = { + programs.fzf = { + fuzzyCompletion = mkEnableOption (mdDoc "fuzzy completion with fzf"); + keybindings = mkEnableOption (mdDoc "fzf keybindings"); + }; + }; + config = { + environment.systemPackages = optional (cfg.keybindings || cfg.fuzzyCompletion) pkgs.fzf; + + programs.bash.interactiveShellInit = optionalString cfg.fuzzyCompletion '' + source ${pkgs.fzf}/share/fzf/completion.bash + '' + optionalString cfg.keybindings '' + source ${pkgs.fzf}/share/fzf/key-bindings.bash + ''; + + programs.zsh.interactiveShellInit = optionalString (!config.programs.zsh.ohMyZsh.enable) + (optionalString cfg.fuzzyCompletion '' + source ${pkgs.fzf}/share/fzf/completion.zsh + '' + optionalString cfg.keybindings '' + source ${pkgs.fzf}/share/fzf/key-bindings.zsh + ''); + + programs.zsh.ohMyZsh.plugins = lib.mkIf (cfg.keybindings || cfg.fuzzyCompletion) [ "fzf" ]; + }; + meta.maintainers = with maintainers; [ laalsaas ]; +} |