FFcast
======

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),
https://git.gnome.org/browse/byzanz[byzanz-record],
http://www.knopwob.org/dunst/[dunst],
https://github.com/robm/dzen[dzen2],
https://ffmpeg.org[FFmpeg],
http://www.lcdf.org/gifsicle/[gifview],
https://www.imagemagick.org[ImageMagick],
https://github.com/naelstrof/maim[maim],
https://wiki.gnome.org/Projects/Mousetweaks[mousetweaks],
https://mpv.io[mpv],
https://wiki.gnome.org/Apps/Nautilus[Nautilus],
https://github.com/wavexx/screenkey[screenkey],
https://github.com/muennich/sxiv[sxiv],
http://www.semicomplete.com/projects/xdotool/[xdotool],
https://github.com/KeyboardFire/xscast[xscast],
ftp://ftp.ac-grenoble.fr/ge/Xutils/[xsnap],
https://git.gnome.org/browse/zenity[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
https://github.com/lolilolicon/FFcast/wiki/Demos[demos].

Requirements
------------

Bash 4.3+,
FFmpeg (`png` `rec`),
ImageMagick (`trim`),
xdpyinfo (`-x`),
xprop (`-f`),
https://github.com/lolilolicon/xrectsel.git[xrectsel] (`-s`),
xwininfo (`-w`).

Installation
------------

Arch Linux package for users and perusers alike:
https://aur.archlinux.org/packages/ffcast/[AUR/ffcast].

Gentoo package:
https://packages.gentoo.org/packages/media-video/ffcast[media-video/ffcast].

To build and install from source,

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

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

  git clone --recursive https://github.com/lolilolicon/FFcast.git

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

Usage
-----

See link:doc/ffcast.1.pod[+ffcast(1)+].
Perhaps start with link:doc/ffcast.1.pod#examples[EXAMPLES].

////
vim:ts=2:sw=2:syntax=asciidoc:et:spell:spelllang=en_us:cc=80:
////
