37 lines
821 B
Text
37 lines
821 B
Text
|
#!/usr/bin/env sh
|
||
|
|
||
|
# clip -- easy copying to x clipboard manager with xclip
|
||
|
#
|
||
|
# clips the first argument to the clipboard
|
||
|
# or stdin if stdin is passed
|
||
|
# will copy png/jpg as image files
|
||
|
#
|
||
|
# idea ~~stolen~~ creatively borrowed from
|
||
|
# https://github.com/kyazdani42/dotfiles/blob/master/bin/copy
|
||
|
|
||
|
if ! exist xclip normal; then exit 1; fi
|
||
|
|
||
|
# if we are in a pipe, read from stdin
|
||
|
if [ ! -t 0 ]; then
|
||
|
xclip -i -selection clipboard /dev/stdin
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
if [ $# != 1 ] || [ ! -f "$1" ]; then
|
||
|
printf "No file argument passed to xclip to clip: %s" "$1"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
options=""
|
||
|
if grep -qE '.png$' "$1"; then
|
||
|
options="-target image/png"
|
||
|
elif grep -qE '.jpe\?g$' "$1"; then
|
||
|
options="-target image/jpeg"
|
||
|
fi
|
||
|
|
||
|
if [ -n "$options" ]; then
|
||
|
xclip -selection clipboard "$options" "$1"
|
||
|
else
|
||
|
xclip -selection clipboard "$1"
|
||
|
fi
|