aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.local/bin/menupass
blob: dad802387fde86eb661c1de6b4e2faa2d37b641e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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"