at 23.11-pre 1.1 kB view raw
1{ pkgs, config, lib, ... }: 2with lib; 3let 4 cfg = config.programs.fzf; 5in 6{ 7 options = { 8 programs.fzf = { 9 fuzzyCompletion = mkEnableOption (mdDoc "fuzzy completion with fzf"); 10 keybindings = mkEnableOption (mdDoc "fzf keybindings"); 11 }; 12 }; 13 config = { 14 environment.systemPackages = optional (cfg.keybindings || cfg.fuzzyCompletion) pkgs.fzf; 15 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 20 ''; 21 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 27 ''); 28 29 programs.zsh.ohMyZsh.plugins = lib.mkIf (cfg.keybindings || cfg.fuzzyCompletion) [ "fzf" ]; 30 }; 31 meta.maintainers = with maintainers; [ laalsaas ]; 32}