aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.local/bin/menupass
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/.local/bin/menupass')
-rwxr-xr-xdotfiles/.local/bin/menupass40
1 files changed, 40 insertions, 0 deletions
diff --git a/dotfiles/.local/bin/menupass b/dotfiles/.local/bin/menupass
new file mode 100755
index 0000000..dad8023
--- /dev/null
+++ b/dotfiles/.local/bin/menupass
@@ -0,0 +1,40 @@
+#!/usr/bin/sh
+
+# Taken from https://git.zx2c4.com/password-store/tree/contrib/dmenu/passmenu
+# and modified
+
+# Source settings from .bemenurc
+. ~/.config/bemenurc
+
+shopt -s nullglob globstar
+
+title="Copy password to clipboard"
+typeit=0
+if [[ $1 == "--type" ]]; then
+title="Show and copy password to clipboard"
+ typeit=1
+ 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[@]}" | bemenu -p "$title:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB")
+
+[[ -n $password ]] || exit
+
+oldclip=$(wl-paste)
+thepassword=$(pass show "$password")
+wl-copy "$thepassword"
+
+if [[ $typeit -eq 0 ]]; then
+ notify-send "🔑 Password store" "The password for $password has been copied to the clipboard and will be cleared in 30 seconds"
+else
+ notify-send "🔑 Password store" "Password for $password: $thepassword"
+fi
+
+sleep 30
+wl-copy $oldclip
+notify-send "🔑 Password store" "Password cleared from clipboard"