mirror of https://github.com/einverne/dotfiles.git
Ein Verne
9 years ago
4 changed files with 136 additions and 0 deletions
@ -0,0 +1,53 @@
|
||||
#!/bin/bash |
||||
|
||||
# AUTHOR: (c) Rob W 2012, modified by MHC (http://askubuntu.com/users/81372/mhc) |
||||
# NAME: GIFRecord 0.1 |
||||
# DESCRIPTION: A script to record GIF screencasts. |
||||
# LICENSE: GNU GPL v3 (http://www.gnu.org/licenses/gpl.html) |
||||
# DEPENDENCIES: byzanz,gdialog,notify-send (install via sudo add-apt-repository ppa:fossfreedom/byzanz; sudo apt-get update && sudo apt-get install byzanz gdialog notify-osd) |
||||
|
||||
# Time and date |
||||
TIME=$(date +"%Y-%m-%d_%H%M%S") |
||||
|
||||
# Delay before starting |
||||
DELAY=5 |
||||
|
||||
# Standard screencast folder |
||||
FOLDER="$HOME/Pictures" |
||||
|
||||
# Default recording duration |
||||
DEFDUR=10 |
||||
|
||||
# Sound notification to let one know when recording is about to start (and ends) |
||||
beep() { |
||||
paplay /usr/share/sounds/freedesktop/stereo/message-new-instant.oga & |
||||
} |
||||
|
||||
# Custom recording duration as set by user |
||||
USERDUR=$(gdialog --title "Duration?" --inputbox "Please enter the screencast duration in seconds" 200 100 2>&1) |
||||
|
||||
# Duration and output file |
||||
if [ $USERDUR -gt 0 ]; then |
||||
D=$USERDUR |
||||
else |
||||
D=$DEFDUR |
||||
fi |
||||
|
||||
# Window geometry |
||||
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") |
||||
|
||||
# Notify the user of recording time and delay |
||||
notify-send "GIFRecorder" "Recording duration set to $D seconds. Recording will start in $DELAY seconds." |
||||
|
||||
#Actual recording |
||||
sleep $DELAY |
||||
beep |
||||
byzanz-record -c --verbose --delay=0 --duration=$D --x=$X --y=$Y --width=$W --height=$H "$FOLDER/GIFrecord_$TIME.gif" |
||||
beep |
||||
|
||||
# Notify the user of end of recording. |
||||
notify-send "GIFRecorder" "Screencast saved to $FOLDER/GIFrecord_$TIME.gif" |
@ -0,0 +1,31 @@
|
||||
#!/bin/bash - |
||||
|
||||
#!/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/xrectsel |
||||
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 |
@ -0,0 +1,35 @@
|
||||
#!/bin/bash |
||||
|
||||
# Example: byzanz-record-window 30 -c output.gif |
||||
|
||||
# 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 |
||||
|
@ -0,0 +1,17 @@
|
||||
#!/bin/bash - |
||||
|
||||
# take from http://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast |
||||
sudo apt-get install byzanz |
||||
|
||||
# example |
||||
# byzanz-record --duration=15 --x=200 --y=300 --width=700 --height=400 out.gif |
||||
|
||||
git clone https://github.com/lolilolicon/xrectsel.git |
||||
# install automake tool to avoid "autoreconf: not found" error |
||||
# use the following command to install automake tool |
||||
sudo apt-get install autoconf automake libtool build-essential checkinstall libx11-dev x11-utils |
||||
|
||||
|
||||
# 1. byzanz-record-window - To select a window for recording. |
||||
# 2. byzanz-record-region - To select a part of the screen for recording. |
||||
# 3. A simple GUI front-end for 1, by MHC. |
Loading…
Reference in new issue