Skip to content
Snippets Groups Projects
Commit 9b26f57a authored by rhatto's avatar rhatto
Browse files

Adding xclip action thanks to password-store

parent 28423310
Branches
No related tags found
No related merge requests found
2014-02-12 - Silvio Rhatto <rhatto@riseup.net>
2014-02-19 - Silvio Rhatto <rhatto@riseup.net>
Added xclip action (#33)
Check key expirations (#37)
......
xclip
\ No newline at end of file
#!/bin/bash
#
# Decrypt secret header to clipboard.
#
# Copy contents to clipboard.
# Function thanks to Password Store by Jason A. Donenfeld <Jason@zx2c4.com>
# distributed under GPLv2+: http://www.zx2c4.com/projects/password-store/
clip() {
# This base64 business is a disgusting hack to deal with newline inconsistancies
# in shell. There must be a better way to deal with this, but because I'm a dolt,
# we're going with this for now.
before="$(xclip -o -selection clipboard | base64)"
echo -n "$1" | xclip -selection clipboard
(
sleep 45
now="$(xclip -o -selection clipboard | base64)"
if [[ $now != $(echo -n "$1" | base64) ]]; then
before="$now"
fi
# It might be nice to programatically check to see if klipper exists,
# as well as checking for other common clipboard managers. But for now,
# this works fine -- if qdbus isn't there or if klipper isn't running,
# this essentially becomes a no-op.
#
# Clipboard managers frequently write their history out in plaintext,
# so we axe it here:
qdbus org.kde.klipper /klipper org.kde.klipper.klipper.clearClipboardHistory &>/dev/null
echo "$before" | base64 -d | xclip -selection clipboard
) & disown
echo "Copied $2 to clipboard. Will clear in 45 seconds."
}
# Load functions
LIB="`dirname $0`/../functions"
source "$LIB" || exit 1
# Get file
keyringer_get_file "$2"
# Decrypt
pass="$($GPG --use-agent -d "$KEYDIR/$FILE" | head -n 1)"
# Copy to clipboard
if [ ! -z "$pass" ]; then
clip "$pass" "$2"
fi
# Exit
exit "$?"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment