vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / programs / skim.nix
blob9c573b39bbbc70d7e4078574b92e737197be80a9
1 { pkgs, config, lib, ... }:
2 let
3   inherit (lib) mkEnableOption mkPackageOption optional optionalString;
4   cfg = config.programs.skim;
5 in
7   options = {
8     programs.skim = {
9       fuzzyCompletion = mkEnableOption "fuzzy completion with skim";
10       keybindings = mkEnableOption "skim keybindings";
11       package = mkPackageOption pkgs "skim" {};
12     };
13   };
15   config = {
16     environment.systemPackages = optional (cfg.keybindings || cfg.fuzzyCompletion) cfg.package;
18     programs.bash.interactiveShellInit = optionalString cfg.fuzzyCompletion ''
19       source ${cfg.package}/share/skim/completion.bash
20     '' + optionalString cfg.keybindings ''
21       source ${cfg.package}/share/skim/key-bindings.bash
22     '';
24     programs.zsh.interactiveShellInit = optionalString cfg.fuzzyCompletion ''
25       source ${cfg.package}/share/skim/completion.zsh
26     '' + optionalString cfg.keybindings ''
27       source ${cfg.package}/share/skim/key-bindings.zsh
28     '';
30     programs.fish.interactiveShellInit = optionalString cfg.keybindings ''
31       source ${cfg.package}/share/skim/key-bindings.fish && skim_key_bindings
32     '';
33   };