summaryrefslogtreecommitdiff
path: root/dgenpass
blob: 4f802ce2a57683b7554971f1cc7b8db61bdbe91a (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
#!/bin/sh

PASSWORD_LENGTH=24
DMENU_PROMPT="Enter password name:"
NOTIFY_TITLE="dgenpass"

# Ask for a password name
name=$(echo "" | dmenu -i -p "$DMENU_PROMPT")

# Exit if user cancels
[ -z "$name" ] && exit 1

# Generate random password
password=$(tr -dc 'A-Za-z0-9!@#$%^&*()_+-=' </dev/urandom | head -c "$PASSWORD_LENGTH")

# Save to pass
echo "$password" | pass insert -f -m "$name"

# Copy to clipboard
if command -v xclip >/dev/null 2>&1; then
	echo -n "$password" | xclip -selection clipboard
elif command -v wl-copy >/dev/null 2>&1; then
	echo -n "$password" | wl-copy
fi

# Notify user
if command -v notify-send >/dev/null 2>&1; then
	notify-send "$NOTIFY_TITLE" "Password for '$name' saved and copied to clipboard"
fi