LinuxCommandLibrary

fbi

Display images on Linux framebuffer

TLDR

Display an image

$ sudo fbi [path/to/file]
copy

Display multiple images
$ sudo fbi [path/to/file1 path/to/file2 ...]
copy

Start a slideshow with a custom delay (in seconds)
$ sudo fbi [[-t|--timeout]] [delay] [path/to/files/*]
copy

Scale the image to fit the screen
$ sudo fbi [[-a|--autozoom]] [path/to/file]
copy

Display help
$ fbi [[-h|--help]]
copy

SYNOPSIS

fbi [options] [image files...]

PARAMETERS

-cache
    Set image cache size in image count (default 4)

-d
    Framebuffer device (default /dev/fb0)

-T
    Target VT number to switch to

-t
    Cache threshold in MB (default 4)

-a
    Autodetect VT

-h
    Print help

-v
    Be verbose

-V
    Print version

-l
    List available framebuffer modes

-r
    Random image order

-u
    Unset environment variables on startup

-c
    Disable cache

-noverbose
    Suppress verbose output

-getkey
    Grab keys from current VT

-dither
    Enable dithering

-A
    Autoscale/zoom factor

-scale
    Scaling mode (fill, fit, span)

-tpan
    Target pan position

-read
    Readline mode

-nocomment
    Ignore image comments

-keepcache
    Keep cache on VT switch

-random
    Random order

-once
    Exit after one image

-timeout
    Slideshow timeout in seconds

-cacheimg
    Cache images (0-2)

-blend
    Blend mode (0-3)

DESCRIPTION

fbi is a lightweight, console-based image viewer designed for the Linux framebuffer device. It displays images directly on the framebuffer without requiring an X11 server or graphical environment, making it ideal for headless systems, embedded devices, or multi-user console setups.

Key features include support for popular formats like JPEG, PNG, TIFF, GIF, and more via optional libjpeg, libpng, and libtiff libraries. It offers smooth slideshows, random image selection, zooming, panning, rotation, and dithering for low-color displays. Users can navigate with keyboard (arrow keys, spacebar for next, etc.) or mouse if supported.

fbi automatically detects the virtual terminal and switches to it, restoring the original on exit. It's highly configurable via command-line options for caching, timeouts, blending modes, and VT handling. The image cache improves performance by keeping decoded images in memory.

Developed as part of the fbida package, fbi excels in resource-constrained environments where graphical desktops are unavailable, providing a full-screen viewing experience with minimal overhead.

CAVEATS

Requires kernel framebuffer support (/dev/fb*); no hardware acceleration; console-only, may conflict with X11; needs libraries for full format support (e.g., libjpeg). Keyboard input captured on active VT.

KEYBOARD CONTROLS

Arrow keys: pan; +/-: zoom; space/Enter: next image; r: rotate; q/Esc: quit; Ctrl+C: abort.

SUPPORTED FORMATS

JPEG, PNG, TIFF, GIF, PhotoCD, FBM, YUV, PAM, PNM, RAS, XWD, JPEG2000 (with libs).

HISTORY

Developed by Gerd Hoffmann starting around 2002 as part of the fbida (Framebuffer Image DAemon) package. Evolved to support more formats and features; maintained sporadically with releases up to 2.13 in 2018. Widely used in live CDs and embedded Linux for console image viewing.

SEE ALSO

fbv(1), fbgs(1), fbpdf(1), chvt(1), fbset(1)

Copied to clipboard