diff --git a/packages/scripts/default.nix b/packages/scripts/default.nix index d7fd7f7..b30fa99 100644 --- a/packages/scripts/default.nix +++ b/packages/scripts/default.nix @@ -111,7 +111,7 @@ in fzfmenu = wrapScript { script = ./fzfmenu.sh; name = "fzfmenu"; - packages = [ pkgs.st pkgs.fzf pkgs.dash ]; + packages = [ pkgs.st pkgs.fzf pkgs.dash pkgs.bash ]; }; bvg = pkgs.callPackage ./bvg.nix {}; diff --git a/packages/scripts/fzfmenu.sh b/packages/scripts/fzfmenu.sh index 093fedf..36ba08c 100755 --- a/packages/scripts/fzfmenu.sh +++ b/packages/scripts/fzfmenu.sh @@ -9,10 +9,32 @@ mkfifo "$input" mkfifo "$output" chmod 600 "$input" "$output" +for i in "$@"; do + case $i in + -p) + PROMPT="$2" + shift + shift + break ;; + -l) + # no reason to filter number of lines + shift + shift + break ;; + -i) + # we do this anyway + shift + break ;; + *) + echo "Unknown option $1" >&2 + shift ;; + esac +done + # it's better to use st here (starts a lot faster than pretty much everything else) st -c fzfmenu -n fzfmenu -g 85x10 \ -e dash \ - -c "cat $input | fzf --print-query $* | tee $output" & disown + -c "cat $input | fzf --reverse --prompt='${PROMPT+> }' --print-query $* | tee $output" & disown # handle ctrl+c outside child terminal window trap 'kill $! 2>/dev/null; rm -f $input $output' EXIT