62 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
# Very basic interface for pass using wofi
 | 
						|
 | 
						|
# Get all password files and create an array
 | 
						|
root=~/.password-store
 | 
						|
CACHE=~/.local/tmp/pass_wofi
 | 
						|
seat=seat0
 | 
						|
 | 
						|
list_passwords() {
 | 
						|
    shopt -s nullglob globstar
 | 
						|
	cd "${root}" || exit
 | 
						|
	pw_list=(**/*.gpg)
 | 
						|
	printf '%s\n' "${pw_list[@]%.gpg}" | sort -n
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
prompt='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 $(pass ${SECRET} | head -n 1)
 | 
						|
	;;
 | 
						|
    User )
 | 
						|
	xdotool type $(pass ${SECRET} | rg user: | awk '{$1 = ""; print $0}')
 | 
						|
	;;
 | 
						|
    "User and password" )
 | 
						|
	xdotool type $(pass ${SECRET} | rg user: | awk '{$1 = ""; print $0}')
 | 
						|
	xdotool key TAB
 | 
						|
	xdotool type $(pass ${SECRET} | head -n 1)
 | 
						|
	;;
 | 
						|
    "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 $(pass otp ${SECRET})
 | 
						|
	;;
 | 
						|
esac
 | 
						|
 | 
						|
# wl-copy -o -s ${seat} ${PASSWD_PASS}
 |