ttygif converts a ttyrec file into gif files. It's a stripped down version of ttyplay that screenshots every frame.
Demo
Setup
Debian/Ubuntu
$ sudo apt-get install imagemagick ttyrec gcc x11-apps make git
$ git clone https://github.com/icholy/ttygif.git
$ cd ttygif
$ make
$ sudo make installFedora/CentOS/RHEL
$ sudo dnf install ImageMagick gcc xorg-x11-apps $ # install ttyrec from source patched ~> https://github.com/mattwilmott/ttyrec $ git clone https://github.com/icholy/ttygif.git $ cd ttygif $ make $ sudo make install
OpenSUSE Leap
$ zypper addrepo http://download.opensuse.org/repositories/utilities/openSUSE_Leap_42.2/utilities.repo $ zypper refresh $ zypper install ttygif
Arch Linux
$ git clone https://aur.archlinux.org/ttyrec.git $ cd ttyrec $ makepkg -i $ cd .. $ git clone https://aur.archlinux.org/ttygif.git $ cd ttygif $ makepkg -is
With yaourt installed:
$ yaourt -S ttyrec ttygif
macOS
$ brew install ttygif
Usage:
1. Create ttyrec recording
$ ttyrec myrecording
- Hit CTRL-D or type
exitwhen done recording.
2. Convert to gif
$ ttygif myrecording
On OSX optionally you can set a -f flag which will bypass cropping which is needed for terminal apps which aren't full screen. Both standard Terminal and iTerm apps are supported.
$ ttygif myrecording -f
Additional Notes
If you're getting Error: WINDOWID environment variable was empty., then you need to manually set WINDOWID.
export WINDOWID=23068679If you're on Ubuntu, you can use xdotool to find the WINDOWID
$ sudo apt-get install xdotool $ export WINDOWID=$(xdotool getwindowfocus)
Debugging
If you're having issues, then export the TTYGIF_DEBUG env variable.
export TTYGIF_DEBUG=1This will print out all the commands it's trying to run.
Credits
The idea and approach was adapted from tty2gif
