#!/bin/bash

# Delay before starting
DELAY=3

# Sound notification to let one know when recording is about to start (and ends)
beep() {
    /usr/bin/beep
}

# Duration and output file
if [ $# -gt 0 ]; then
    D="--duration=$@"
else
    echo Default recording duration 10s to /tmp/recorded.gif
    D="--duration=10 /tmp/recorded.gif"
fi

XWININFO=$(xwininfo)
read X < <(awk -F: '/Absolute upper-left X/{print $2}' <<< "$XWININFO")
read Y < <(awk -F: '/Absolute upper-left Y/{print $2}' <<< "$XWININFO")
read W < <(awk -F: '/Width/{print $2}' <<< "$XWININFO")
read H < <(awk -F: '/Height/{print $2}' <<< "$XWININFO")

echo Delaying $DELAY seconds. After that, byzanz will start
for (( i=$DELAY; i>0; --i )) ; do
    echo $i
    sleep 1
done
echo ":::::::::::::::::::::::::::::::::::::::::::::::::::::::"
beep
byzanz-record --verbose --delay=0 --x=$X --y=$Y --width=$W --height=$H $D &
read FULLDURATION FAKE <<<$(IFS=";"; echo $D)
read FAKE DURATION <<<$(IFS="="; echo $FULLDURATION)
for (( i=$DURATION; i>0; --i )) ; do
    if [ $i -ne $DURATION ]; then
        echo $i Segundos
    fi
    sleep 1
done
beep
