1 { pkgs, config, lib, ... }:
4 cfg = config.programs.fzf;
9 fuzzyCompletion = mkEnableOption (mdDoc "fuzzy completion with fzf");
10 keybindings = mkEnableOption (mdDoc "fzf keybindings");
14 environment.systemPackages = optional (cfg.keybindings || cfg.fuzzyCompletion) pkgs.fzf;
16 programs.bash.interactiveShellInit = optionalString cfg.fuzzyCompletion ''
17 source ${pkgs.fzf}/share/fzf/completion.bash
18 '' + optionalString cfg.keybindings ''
19 source ${pkgs.fzf}/share/fzf/key-bindings.bash
22 programs.zsh.interactiveShellInit = optionalString (!config.programs.zsh.ohMyZsh.enable)
23 (optionalString cfg.fuzzyCompletion ''
24 source ${pkgs.fzf}/share/fzf/completion.zsh
25 '' + optionalString cfg.keybindings ''
26 source ${pkgs.fzf}/share/fzf/key-bindings.zsh
29 programs.zsh.ohMyZsh.plugins = lib.mkIf (cfg.keybindings || cfg.fuzzyCompletion) [ "fzf" ];
31 meta.maintainers = with maintainers; [ laalsaas ];