diff options
Diffstat (limited to 'pkgs/simple/fzmenu/bin/passmenu')
-rwxr-xr-x | pkgs/simple/fzmenu/bin/passmenu | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/pkgs/simple/fzmenu/bin/passmenu b/pkgs/simple/fzmenu/bin/passmenu index a798925..0b07174 100755 --- a/pkgs/simple/fzmenu/bin/passmenu +++ b/pkgs/simple/fzmenu/bin/passmenu @@ -1,8 +1,22 @@ #! /bin/sh +# usage: passmenu [--phase2-method=METHOD] +# where METHOD is either copy or type, type being the default. set -efu #PATH= +while test $# -gt 0; do + case $1 in + --phase2-method=copy|--phase2-method=type) + export FZMENU_PHASE2_METHOD=${1#*=} + shift 1 + ;; + *) + echo "$0: error: bad argument: $1" >&2 + exit 1 + esac +done + case ${FZMENU_PHASE-0} in 0) export FZMENU_PHASE=1 @@ -26,7 +40,7 @@ case ${FZMENU_PHASE-0} in exec fzf \ --history=/dev/null \ --no-sort \ - --prompt='pass: ' \ + --prompt="${FZMENU_PHASE2_METHOD-type} pass: " \ ) then export FZMENU_PHASE=2 @@ -39,8 +53,19 @@ case ${FZMENU_PHASE-0} in # lucidatypewriter, causing a warning to be printed to stderr. font='-*-clean-*-*-*-*-*-*-*-*-*-*-iso10646-1' pass=$(pass show "$FZMENU_RESULT") - printf %s "$pass" | - xvkbd -xrm "xvkbd*Font: $font" -xsendevent -file - + case ${FZMENU_PHASE2_METHOD-type} in + copy) + printf %s "$pass" | + xsel -p -i -t 60000 + ;; + type) + printf %s "$pass" | + xvkbd -xrm "xvkbd*Font: $font" -xsendevent -file - + ;; + *) + echo "$0: error: bad phase2 method: $FZMENU_PHASE2_METHOD" >&2 + exit -1 + esac ;; *) echo "$0: error: bad phase: $FZMENU_PHASE" >&2 |