passmenu (576B)
1 #!/usr/bin/env bash 2 3 shopt -s nullglob globstar 4 5 typeit=1 6 if [[ $1 == "--type" ]]; then 7 typeit=0 8 shift 9 fi 10 11 prefix=${PASSWORD_STORE_DIR-~/.password-store} 12 password_files=( "$prefix"/**/*.gpg ) 13 password_files=( "${password_files[@]#"$prefix"/}" ) 14 password_files=( "${password_files[@]%.gpg}" ) 15 16 password=$(printf '%s\n' "${password_files[@]}" | dmenu -i -l 15 "$@") 17 18 [[ -n $password ]] || exit 19 20 if [[ $typeit -eq 0 ]]; then 21 pass show -c "$password" 2>/dev/null 22 else 23 pass show "$password" | { read -r pass; printf %s "$pass"; } | 24 xdotool type --clearmodifiers --file - 25 fi 26