typioca: 2.7.0 -> 2.8.0
[NixPkgs.git] / nixos / modules / programs / fzf.nix
blob7c4f338e29b30d8ae974d59b7ca7cf3bfb518b05
1 { pkgs, config, lib, ... }:
2 with lib;
3 let
4   cfg = config.programs.fzf;
5 in
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;
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     '';
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       '');
29     programs.zsh.ohMyZsh.plugins = lib.mkIf (cfg.keybindings || cfg.fuzzyCompletion) [ "fzf" ];
30   };
31   meta.maintainers = with maintainers; [ laalsaas ];