Xmd/glue/src/screenshot

59 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
name=`basename "$0"`
isInstalled() {
type "$1" > /dev/null
}
mustHaveInstalled() {
if ! isInstalled "$1"; then
echo "$name: $1 is not installed" >&2
exit 1
fi
}
usage() {
echo "Usage: $name [selection | window | screen] [clipboard]" >&2
exit 2
}
picturesDir=`xdg-user-dir PICTURES`
test -z "$picturesDir" && picturesDir="$HOME/Pictures"
picturesDir="$picturesDir/Screen Shots"
if ! mkdir -p "$picturesDir"; then
echo "$name: can't create $picturesDir" >&2
exit 1
fi
outputFilePath="$picturesDir/`date -Iseconds`.png"
mustHaveInstalled scrot
case "$1" in
"selection" | "window" | "screen")
mode="$1"
shift 1
;;
*)
mode="screen"
;;
esac
if [ "$1" = "clipboard" ]; then
clipboard=true
shift 1
fi
[ "$#" -gt 0 ] && usage
case "$mode" in
"selection") scrot --select --line style=dash --freeze --file "$outputFilePath";;
"window" ) scrot --focused --border --file "$outputFilePath";;
"screen" ) scrot --file "$outputFilePath";;
esac
if [ -n "$copyToClipboard" ]; then
mustHaveInstalled xclip
xclip -selection clipboard -target image/png -i "$outputFilePath"
fi