#!/usr/bin/env bash shopt -s nullglob globstar typeit=0 if [ "$1" = "--type" ]; then typeit=1 shift elif [ "$1" = "--type-all" ]; then typeit=2 shift fi prefix="${PASSWORD_STORE_DIR-~/.password-store}" password_files=( "$prefix"/**/*.gpg ) password_files=( "${password_files[@]#"$prefix"/}" ) password_files=( "${password_files[@]%.gpg}" ) password=$(printf '%s\n' "${password_files[@]}" | dmenu -i "$@") [ -n "$password" ] || exit if [ "$typeit" = "0" ]; then pass show -c "$password" 2>/dev/null elif [ "$typeit" = "1" ]; then pass show "$password" | head -n 1 - | xdotool type --clearmodifiers --file - else pass="$(pass show "$password")" username="$(echo "$pass" | sed -n "s/^username:[ ]*//p")" pass="$(echo "$pass" | head -n 1 -)" printf "%s %s " "$username" "$pass" | xdotool type --clearmodifiers --file - fi