fbi
Display images on Linux framebuffer
TLDR
Display an image
Display multiple images
Start a slideshow with a custom delay (in seconds)
Scale the image to fit the screen
Display help
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.


