From e5a6c3e35016a80401cb099059a9909eeb52bf51 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Sun, 23 Feb 2020 22:50:13 +0100 Subject: [PATCH] [X] Add simplifying xclip script Added `clip` to path, allows sending stuff through stdin or via normal file input to xclip. Makes xclip default to clipboard when clipping input. Special handlers for image files (png and jp[e]g). --- xresources/.local/bin/clip | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 xresources/.local/bin/clip diff --git a/xresources/.local/bin/clip b/xresources/.local/bin/clip new file mode 100755 index 0000000..b27880a --- /dev/null +++ b/xresources/.local/bin/clip @@ -0,0 +1,36 @@ +#!/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