#!/bin/sh prefix=${PASSWORD_STORE_DIR:-~/.password-store} get_password() { dmenu -i -p pass } get_passwords() { find -s "$prefix" -type f -name '*.gpg' } trim_prefix() { while read line do printf '%s\n' "${line##$prefix/}" done } trim_suffix() { while read line do printf '%s\n' "${line%%.gpg}" done } copy_pass() { [ -n "$1" ] || return otp='' case "$1" in totp*) otp=otp ;; esac pass $otp show --clip "$1" 2>/dev/null } password=$(get_passwords | trim_prefix | trim_suffix | get_password) [ -n "$password" ] || exit 0 msg=$(copy_pass "$password") notify-send passmenu "$msg"