Overview
========

**fbcat** takes a screenshot using the Linux framebuffer device.
Two executables are provided:

* Low-level ``fbcat`` that operates on the current virtual terminal and writes
  the screenshot to stdout in the PPM_ format:

  .. code:: console

     $ fbcat > screenshot.ppm
     $ file screenshot.ppm
     screenshot.ppm: Netpbm image data, size = 1280 x 1024, rawbits, pixmap

.. _PPM: http://netpbm.sourceforge.net/doc/ppm.html

* High-level ``fbgrab`` that supports the PNG format and virtual terminal
  switching:

  .. code:: console

     $ fbgrab '-?'
     Usage: fbgrab [option...] <filename.png|->

     Options:
     -c <N>      grab from /dev/ttyN
     -C <N>      grab from /dev/ttyN, for slower devices
     -d <dev>    use framebuffer device <dev>
     -i          turn on PNG interlacing
     -s <N>      sleep <N> seconds before making screenshot
     -?          display this help and exit

     If the specified destination is "-", the PNG output is piped to stdout.

See the manual pages for details.

The following visuals are supported:

- ``TRUECOLOR``
- ``DIRECTCOLOR``
- ``PSEUDOCOLOR``
- ``STATIC_PSEUDOCOLOR``
- ``MONO01``
- ``MONO10``

Prerequisites
=============

The following software is needed to build ``fbcat``:

- C compiler
- Linux kernel userspace headers
- GNU make

Additionally, the following software is needed to rebuild the manual pages from
source:

- ``xsltproc`` (part of libxslt_)
- `DocBook XSL stylesheets`_

``fbgrab`` requires the following software:

- ``chvt`` (part of KBD_)
- ``pnmtopng`` (part of Netpbm_) or GraphicsMagick_ or ImageMagick_

.. _libxslt:
   http://xmlsoft.org/xslt/
.. _DocBook XSL stylesheets:
   https://github.com/docbook/xslt10-stylesheets
.. _KBD:
   http://kbd-project.org/
.. _Netpbm:
   http://netpbm.sourceforge.net/
.. _GraphicsMagick:
   http://www.graphicsmagick.org/
.. _ImageMagick:
   https://imagemagick.org/

Installation
============

To install system-wide::

   $ make
   $ sudo make install

The default installation prefix is ``/usr/local``.
You can specify different one using the ``PREFIX`` variable, e.g.::

   $ make install PREFIX="$HOME/.local"

.. vim:ft=rst ts=3 sts=3 sw=3 et
