screenshot & screencast screen regions; FFmpeg; X11; run command on rectangular screen regions
Shell M4 Makefile
Latest commit 7b5a49a Oct 22, 2016 @lolilolicon Give awk some love
Use a filter `maxmin` to combine rects.
Removed: function get_max_offsets and get_min_offsets



FFcast deals with rectangles on screens. Mostly, it selects rectangles. Like most boring jobs, there are many ways to do it: free selection, selection by window, screen number, numeric geometry, or by edge detection. Simple arithmetic operations allow simple combinations and adjustments.

Now FFcast knows all about these rectangles, but what to do with them? Well, like most useless things, there are many ways to use them: in practice, screenshots and screencasts are obviously popular options; in general, the geometry can be utilized by any application that understands X geometry, including window managers, xorg-apps (xclock, xev), byzanz-record, dunst, dzen2, FFmpeg, gifview, ImageMagick, maim, mousetweaks, mpv, Nautilus, screenkey, sxiv, xdotool, xscast, xsnap, zenity, to randomly name a few.

FFcast provides several short commands for common tasks, just to please its users, but hardly ever satisfies anyone. Like most unhelpful tools, it encourages its users to roll their own cigarettes.

Anyway, here’s wonder…​ful demos.


Bash 4.3+, FFmpeg (png rec), ImageMagick (trim), xdpyinfo (-x), xprop (-f), xrectsel (-s), xwininfo (-w).


Package available for: Arch Linux, Gentoo, openSUSE. And your distro, too!

To build and install from source,

./bootstrap  # generates ./configure
./configure --prefix /usr --libexecdir /usr/lib --sysconfdir /etc
make DESTDIR="$dir" install  # $dir must be an absolute path

To get xrectsel along with FFcast, pull in the submodule,

git clone --recursive

Then build and install as described above, but passing an additional --enable-xrectsel to ./configure.


See ffcast(1). Perhaps start with EXAMPLES.