1{
2 pkgs,
3 config,
4 lib,
5 ...
6}:
7let
8 inherit (lib)
9 mkEnableOption
10 mkPackageOption
11 mkRemovedOptionModule
12 optionalString
13 mkIf
14 ;
15 cfg = config.programs.skim;
16in
17{
18 imports = [
19 (mkRemovedOptionModule [ "programs" "skim" "fuzzyCompletion" ]
20 "programs.skim.fuzzyCompletion has been removed. Completions are now included in the package itself."
21 )
22 ];
23
24 options = {
25 programs.skim = {
26 enable = mkEnableOption "skim fuzzy finder";
27 keybindings = mkEnableOption "skim keybindings";
28 package = mkPackageOption pkgs "skim" { };
29 };
30 };
31
32 config = mkIf cfg.enable {
33 environment.systemPackages = [ cfg.package ];
34
35 programs.bash.interactiveShellInit = optionalString cfg.keybindings ''
36 source ${cfg.package}/share/skim/key-bindings.bash
37 '';
38
39 programs.zsh.interactiveShellInit = optionalString cfg.keybindings ''
40 source ${cfg.package}/share/skim/key-bindings.zsh
41 '';
42
43 programs.fish.interactiveShellInit = optionalString cfg.keybindings ''
44 source ${cfg.package}/share/skim/key-bindings.fish && skim_key_bindings
45 '';
46 };
47}