59 lines
1.3 KiB
Bash
Executable file
59 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Very basic interface for pass using rofi
|
|
|
|
# Get all password files and create an array
|
|
root=~/.password-store
|
|
CACHE=~/.local/tmp/pass_rofi
|
|
seat=seat0
|
|
|
|
list_passwords() {
|
|
rbw list
|
|
}
|
|
|
|
prompt='search for passwords...'
|
|
SECRET=$(list_passwords | rofi -i -p="${prompt}" -dmenu)
|
|
|
|
# Ask whether pass, user or both are required
|
|
|
|
options=("Password" \
|
|
"User" \
|
|
"User and password" \
|
|
"QR-Code" \
|
|
"OTP")
|
|
|
|
option=$(printf '%s\n' "${options[@]%}" | rofi -i -dmenu -width 400 -lines 4 -prompt="...")
|
|
|
|
echo $option
|
|
|
|
case ${option} in
|
|
Password )
|
|
echo "Test"
|
|
xdotool type $(rbw get ${SECRET})
|
|
;;
|
|
User )
|
|
xdotool type $(rbw get --full ${SECRET} | rg Username: | awk '{$1 = ""; print $0}')
|
|
;;
|
|
"User and password" )
|
|
xdotool type $(rbw get --full ${SECRET} | rg Username: | awk '{$1 = ""; print $0}')
|
|
xdotool key Tab
|
|
xdotool type $(rbw get ${SECRET})
|
|
;;
|
|
"QR-Code" )
|
|
if [[ $SECRET =~ wifi$ ]]; then
|
|
# Produce a valid wifi QR-code
|
|
WIFISSID=$(pass get_user ${SECRET})
|
|
WIFIPASS=$(pass get_pass ${SECRET})
|
|
WIFIQR="WIFI:T:WPA;S:${WIFISSID};P:${WIFIPASS};;"
|
|
qrencode -s 8 -o - $WIFIQR | feh --title "pass: QR-WIFI" -
|
|
else
|
|
# Only password
|
|
pass show -q1 ${SECRET}
|
|
fi
|
|
;;
|
|
"OTP" )
|
|
xdotool type $(rbw code ${SECRET})
|
|
;;
|
|
esac
|
|
|
|
# wl-copy -o -s ${seat} ${PASSWD_PASS}
|