Skip to content

Instantly share code, notes, and snippets.

@zhang-ning
Last active December 30, 2015 13:59
Show Gist options
  • Save zhang-ning/7839075 to your computer and use it in GitHub Desktop.
Save zhang-ning/7839075 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Delay before starting
DELAY=10
# Sound notification to let one know when recording is about to start (and ends)
beep() {
paplay /usr/share/sounds/KDE-Im-Irc-Event.ogg &
}
# 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
# xrectsel from https://github.com/lolilolicon/FFcast2/blob/master/xrectsel.c
ARGUMENTS=$(xrectsel "--x=%x --y=%y --width=%w --height=%h") || exit -1
echo Delaying $DELAY seconds. After that, byzanz will start
for (( i=$DELAY; i>0; --i )) ; do
echo $i
sleep 1
done
beep
byzanz-record --verbose --delay=0 ${ARGUMENTS} $D
beep
#!/bin/bash
#sudo add-apt-repository ppa:fossfreedom/byzanz
#sudo apt-get update && sudo apt-get install byzanz
# Delay before starting
DELAY=10
# Sound notification to let one know when recording is about to start (and ends)
beep() {
paplay /usr/share/sounds/KDE-Im-Irc-Event.ogg &
}
# 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
beep
byzanz-record --verbose --delay=0 --x=$X --y=$Y --width=$W --height=$H $D
beep
@zhang-ning
Copy link
Author

Run byzanz-record-window 30 -c output.gif
Go to the window (alt-tab) you want to capture. Click on it.
Wait 10 seconds (hard-coded in $DELAY), in which you prepare for recording.
After the beep (defined in the beep function), byzanz will start.
After 30 seconds (that's the meaning of 30 in step 1), byzanz ends. A beep will be broadcast again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment