all repos — dotfiles @ 182391dd624cf67c590e3bcf5e332b7065563d15

linux dotfiles

bin/scripts/i3scripts/i3-scrot

#!/bin/sh
# /usr/bin/i3-scrot
#
# simple screenshot-script using scrot for manjaro-i3 by oberon@manjaro.org
# added some options to copy and upload the screenshot to a host using
# my uploader `xup`


_conf=$HOME/.config/i3-scrot.conf

if ! [ -f $_conf ]; then
	echo "scrot_dir=$(xdg-user-dir PICTURES)" > $_conf
fi

source $_conf

if ! [ -d $scrot_dir ]; then
	mkdir -p $scrot_dir
fi

give_options () {
    set -o pipefail
    scrot_dir="$HOME/pictures/screenshots"
    latest_screen=$(ls -tc $scrot_dir | head -1)
    path="$(echo $scrot_dir/$latest_screen)"
    echo $path
    choice=$(echo -ne "copy\nupload" | dmenu $DMENU_ARGS)
    case "$choice" in
        upload)
            xup "$path" | xsel -ib && notify-send "URL Copied";
            ;;
        copy)
            xclip -selection clipboard -t image/png -i "$path"\
                && notify-send "Copied"
            ;;
    esac
}


if ! [[ -z "$2" ]]; then
    cmd="scrot -d $2"
else
    cmd='scrot'
fi

case "$1" in
	--desk|-d|$NULL)
		cd $scrot_dir
	        $cmd &&
		notify-send "Screenshot saved"
		;;
	--window|-w)
		cd $scrot_dir
		$cmd -u &&
		notify-send "Screenshot saved"
        give_options
		;;
	--select|-s)
		cd $scrot_dir
		notify-send 'Select an area for the screenshot' &
		scrot -s &&
		notify-send "Screenshot saved"
        give_options
		;;
	--help|-h)
		echo "
available options:
-d | --desk    full screen
-w | --window  active window
-s | --select  selection
-h | --help    display this information

The -d or -w options can be used with a delay
by adding the number of seconds, like for example:
'i3-scrot -w 5'

Default option is 'full screen'.

The file destination can be set in ${_conf}.
Default is $scrot_dir
"
		;;
	*)
		echo "
== ! i3-scrot: missing or wrong argument ! ==

available options:
-d | --desk    full screen
-w | --window  active window
-s | --select  selection
-h | --help    display this information

Default option is 'full screen'.

The file destination can be set in ${_conf}.
Default is $scrot_dir
"

        exit 2
esac

exit 0