diff options
Diffstat (limited to '.local/bin/pass-menu')
-rwxr-xr-x | .local/bin/pass-menu | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/.local/bin/pass-menu b/.local/bin/pass-menu new file mode 100755 index 0000000..7f0a306 --- /dev/null +++ b/.local/bin/pass-menu @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# LICENSE: GPLv2+ +# https://git.zx2c4.com/password-store/tree/contrib/dmenu/passmenu + +set -eo pipefail +shopt -s nullglob globstar + +printf "\n" | $copy + +copy='xsel --input --primary' +menu='dmenu -f -i -b -nhf #ffeb3b -sf #ffeb3b -p ⠀:::⠀passwords⠀:::' +_paste () { xdotool type "$(xsel --output --primary)"; } + +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[@]}" | $menu) + +[ -n "$password" ] || exit + +{ pass show "$password" 2>/dev/null | $copy && _paste; } || +{ notify-send --urgency=critical --expire-time=5000 "Failed to copy $password to primary clipboard." && exit 1; } + +printf "\n" | $copy + +notify-send "Copied $password to primary clipboard." |