#!/bin/zsh # set -x if test -z $ROFI_RETV then rofi -show gopass -modi "gopass:$0" \ -kb-accept-custom "" \ -kb-accept-alt "" \ -kb-custom-1 "Shift+Return" \ -kb-custom-2 "Control+Return" fi # echo "args $* --- retv $ROFI_RETV" >&2 error() { local msg=$1 echo -e "\0message\x1f$(xargs <<< $msg)\n" gopass ls -f } case "$ROFI_RETV" in # run it in backgroud and quit rofi 0) echo -e "\0use-hot-keys\x1ftrue\n" echo -e "\0message\x1fControl-Enter for login, Shift-Enter for OTP\n" gopass ls -f ;; 1) ( gopass show -c $1 > /dev/null ) & ;; 10) ( out=$(gopass otp -c $1 2>&1) (( $? > 0 )) && error "$out" ) & ;; 11) ( out=$(gopass show -c ${1} login 2>&1) (( $? > 0 )) && error "$out" ) & ;; esac