-
Notifications
You must be signed in to change notification settings - Fork 0
/
pass_rofi
34 lines (28 loc) · 1.81 KB
/
pass_rofi
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
#!/usr/bin/env bash
## define your terminal in "TERM=<your-terminal>, defaults to sakura
## assumes your password store in ~/.password-store (default)
TERM=sakura
ROFI='rofi -dmenu -location 1 -l 8 -width 100'
## uncomment below line to use with dmenu
#ROFI='dmenu -l 8'
shopt -s nullglob globstar lastpipe
prefix=${PASSWORD_STORE_DIR-~/.password-store}
password_files=( "$prefix"/**/*.gpg )
password_files=( "${password_files[@]#"$prefix"/}" )
password_files=( "${password_files[@]%.gpg}" )
[[ -d ~/.notes-store ]] || mkdir ~/.notes-store
fix=${NOTES_DIR-~/.notes-store}
notes_files=( "$fix"/**/*.txt )
notes_files=( "${notes_files[@]#"$fix"/}" )
notes_files=( "${notes_files[@]%.txt}" )
echo -e "password view\ngoogle otp\npassword edit\nnew password\nremove password\nnotes view\nnotes new/edit\nnotes remove" | $ROFI -font -p SELECT: | read x
case $x in
password\ view) printf '%s\n' "${password_files[@]}" | $ROFI -p PASS: > /tmp/a && notify-send -u critical "$(pass show $(< /tmp/a) 2>/dev/null)" ;;
password\ edit) printf '%s\n' "${password_files[@]}" | $ROFI -p PASS: > /tmp/a && $TERM -e pass edit $(< /tmp/a) ;;
new\ password) cat /dev/null | $ROFI -p PASS: > /tmp/a && $TERM -e pass edit $(< /tmp/a) ;;
remove\ password) printf '%s\n' "${password_files[@]}" | $ROFI -p REMOVE: > /tmp/a && $TERM -e pass rm $(< /tmp/a) 2>/dev/null ;;
google\ otp) notify-send -u critical "$(totp generate google)" ;;
notes\ view) printf '%s\n' "${notes_files[@]}" | $ROFI -p Notes: > /tmp/a && notify-send -u normal -t 900000000 "$(cat ~/.notes-store/$(< /tmp/a).txt 2>/dev/null)" ;;
notes\ new) printf '%s\n' "${notes_files[@]}" | $ROFI -p Notes: > /tmp/a && $TERM -e vim ~/.notes-store/$(< /tmp/a).txt ;;
notes\ remove) printf '%s\n' "${notes_files[@]}" | $ROFI -p REMOVE: > /tmp/a && $TERM -e rm ~/.notes-store/$(< /tmp/a).txt 2>/dev/null ;;
esac