diff options
| -rwxr-xr-x | pkgs/simple/fzmenu/bin/otpmenu | 31 | ||||
| -rwxr-xr-x | pkgs/simple/fzmenu/bin/passmenu | 31 | ||||
| -rw-r--r-- | pkgs/simple/fzmenu/default.nix | 2 | 
3 files changed, 58 insertions, 6 deletions
| diff --git a/pkgs/simple/fzmenu/bin/otpmenu b/pkgs/simple/fzmenu/bin/otpmenu index 714ab7c..59706c1 100755 --- a/pkgs/simple/fzmenu/bin/otpmenu +++ b/pkgs/simple/fzmenu/bin/otpmenu @@ -1,8 +1,22 @@  #! /bin/sh +# usage: otpmenu [--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 @@ -25,7 +39,7 @@ case ${FZMENU_PHASE-0} in        exec fzf \            --history=/dev/null \            --no-sort \ -          --prompt='OTP: ' \ +          --prompt="${FZMENU_PHASE2_METHOD-type} otp: " \      )      then        export FZMENU_PHASE=2 @@ -38,8 +52,19 @@ case ${FZMENU_PHASE-0} in      # lucidatypewriter, causing a warning to be printed to stderr.      font='-*-clean-*-*-*-*-*-*-*-*-*-*-iso10646-1'      pass=$(pass otp code "$FZMENU_RESULT/otp") -    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 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 diff --git a/pkgs/simple/fzmenu/default.nix b/pkgs/simple/fzmenu/default.nix index c4dccbf..e709d74 100644 --- a/pkgs/simple/fzmenu/default.nix +++ b/pkgs/simple/fzmenu/default.nix @@ -28,6 +28,7 @@ pkgs.runCommand "fzmenu" {            ext.pass-otp          ]))          pkgs.utillinux +        pkgs.xsel          pkgs.xvkbd          terminal        ]} @@ -44,6 +45,7 @@ pkgs.runCommand "fzmenu" {            ext.pass-otp          ]))          pkgs.utillinux +        pkgs.xsel          pkgs.xvkbd          terminal        ]} | 
