typioca: 2.7.0 -> 2.8.0
[NixPkgs.git] / nixos / modules / programs / skim.nix
blob8dadf322606e2475ec2c18f2848c4c8a6031ef6a
1 { pkgs, config, lib, ... }:
2 let
3   inherit (lib) mdDoc mkEnableOption mkPackageOptionMD optional optionalString;
4   cfg = config.programs.skim;
5 in
7   options = {
8     programs.skim = {
9       fuzzyCompletion = mkEnableOption (mdDoc "fuzzy completion with skim");
10       keybindings = mkEnableOption (mdDoc "skim keybindings");
11       package = mkPackageOptionMD 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   };