From a78621f9b02cb5a1a0d671b9f721349a9ad0e558 Mon Sep 17 00:00:00 2001 From: laalsaas Date: Sat, 3 Dec 2022 19:12:04 +0100 Subject: [PATCH] skim: init module --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/skim.nix | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 nixos/modules/programs/skim.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 59d6cf165f1..f3ec76c0e9f 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -215,6 +215,7 @@ ./programs/screen.nix ./programs/sedutil.nix ./programs/seahorse.nix + ./programs/skim.nix ./programs/slock.nix ./programs/shadow.nix ./programs/spacefm.nix diff --git a/nixos/modules/programs/skim.nix b/nixos/modules/programs/skim.nix new file mode 100644 index 00000000000..1333cdd30ab --- /dev/null +++ b/nixos/modules/programs/skim.nix @@ -0,0 +1,30 @@ +{ pkgs, config, lib, ... }: +let + inherit (lib) mdDoc mkEnableOption mkPackageOption optional optionalString; + cfg = config.programs.skim; +in +{ + options = { + programs.skim = { + fuzzyCompletion = mkEnableOption (mdDoc "fuzzy Completion with skim"); + keybindings = mkEnableOption (mdDoc "skim keybindings"); + package = mkPackageOption pkgs "skim" {}; + }; + }; + + config = { + environment.systemPackages = optional (cfg.keybindings || cfg.fuzzyCompletion) cfg.package; + + programs.bash.interactiveShellInit = optionalString cfg.fuzzyCompletion '' + source ${cfg.package}/share/skim/completion.bash + '' + optionalString cfg.keybindings '' + source ${cfg.package}/share/skim/key-bindings.bash + ''; + + programs.zsh.interactiveShellInit = optionalString cfg.fuzzyCompletion '' + source ${cfg.package}/share/skim/completion.zsh + '' + optionalString cfg.keybindings '' + source ${cfg.package}/share/skim/key-bindings.zsh + ''; + }; +}