# HG changeset patch # User Mikael Berthe # Date 1344285888 -7200 # Node ID 73ef97dce6313c86260212a77706dc9df3b9e3dc # Parent 709f9a3b120e848ce7fa276cc7b9d6af3faeb181 Add a shoot-screen command diff -r 709f9a3b120e -r 73ef97dce631 zshrc.d/30-functions-shoot-screen.zrc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/zshrc.d/30-functions-shoot-screen.zrc Mon Aug 06 22:44:48 2012 +0200 @@ -0,0 +1,48 @@ + +# Takes several screen shots in a raw +# For usage, see shoot-screen -h +# +# MiKael, 2012-08 + +function shoot-screen() { + local prefix="screenshot-" + local ext="jpg" + local delay=4 + local opt + local usage=0 + + while getopts "hp:e:d:" opt; do + case "$opt" in + (p) prefix=$OPTARG;; + (e) ext=$OPTARG;; + (d) delay=$OPTARG;; + (h) usage=1; break;; + (*) usage=2; break;; + esac + done + + if (( usage != 0 )); then + print "Usage: $0 [-h] [-p prefix] [-e extension] [-d delay]" >&2 + if (( usage == 1 )); then exit 0; fi + exit -1 + fi + + local n=0 + while :; do + print -n 'Press Enter (type "quit" to leave) > ' + read l + if [[ $l == "q" || $l == "quit" ]]; then break; fi + print -n "Get ready (waiting for $delay seconds)..." + sleep $delay + local filename + while :; do + (( n = n+1 )) + filename=$(printf "%s%03d.%s" $prefix n $ext) + [[ -f $filename ]] || break + done + print "\nCapture: $filename" + import $filename + if [[ $? != 0 ]]; then exit $?; fi + print + done +}