diff options
Diffstat (limited to 'lass/3modules/klem.nix')
-rw-r--r-- | lass/3modules/klem.nix | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/lass/3modules/klem.nix b/lass/3modules/klem.nix deleted file mode 100644 index 8536d967d..000000000 --- a/lass/3modules/klem.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ config, pkgs, ... }: with import <stockholm/lib>; let - cfg = config.lass.klem; -in { - options.lass.klem = mkOption { - default = {}; - type = types.attrsOf (types.submodule ({ config, ...}: { - options = { - target = mkOption { - default = ".*"; - description = '' - regex of valid targets - can be shown with xclip -selection clipboard -t TARGETS - the first hit is taken as target argument - ''; - type = types.str; - }; - script = mkOption { - description = '' - file to run if entry is selected - ''; - type = types.path; - }; - label = mkOption { - default = config._module.args.name; - description = '' - label to show in dmenu for this script - ''; - type = types.str; - }; - }; - })); - }; - config = let - klem = pkgs.writers.writeDashBin "klem" '' - set -x - - labels="" - # match filetype against patterns - ${concatMapStringsSep "\n" (script: '' - ${pkgs.xclip}/bin/xclip -selection clipboard -target TARGETS -out \ - | ${pkgs.gnugrep}/bin/grep -q '${script.target}' - if [ $? -eq 0 ]; then - labels="$labels:${script.label}" - fi - '') (attrValues cfg)} - - #remove empty line, feed into dmenu - script=$(echo "$labels" \ - | ${pkgs.gnused}/bin/sed 's/^://;s/:/\n/g' \ - | ${pkgs.dmenu}/bin/dmenu) - - #run the chosen script - case $script in - ${concatMapStringsSep "\n" (script: indent '' - ${script.label}) - target=$(${pkgs.xclip}/bin/xclip -selection clipboard -target TARGETS -out \ - | ${pkgs.gnugrep}/bin/grep '${script.target}' \ - | ${pkgs.gnugrep}/bin/grep -v TARGETS \ - | ${pkgs.coreutils}/bin/head -1) - ${pkgs.xclip}/bin/xclip -selection clipboard -target "$target" -out \ - | ${script.script} \ - | ${pkgs.xclip}/bin/xclip -selection clipboard -in - ;; - '') (attrValues cfg)} - esac - ''; - in mkIf (cfg != {}) { - environment.systemPackages = [ klem ]; - nixpkgs.overlays = [ - (self: super: { - klem = klem; - }) - ]; - }; -} |