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] <file1> [file2 ...]
fbi [options] -l <filelist>
PARAMETERS
-l file, --list file
Read the list of images to display from file instead of from the command line arguments.
-a, --autozoom
Automatically zoom images to fit the screen, scaling down only if necessary, maintaining aspect ratio.
-u, --autoup
Automatically zoom images to fit the screen, scaling up or down as needed, maintaining aspect ratio.
-t seconds, --timeout seconds
Display each image for the specified number of seconds, then automatically advance to the next.
-r, --random
Randomize the order in which images are displayed from the list.
-P, --pernicious
Do not terminate on errors; try to display the next image even if the current one fails to load or display.
-v, --verbose
Show verbose messages during operation, providing more detail about fbi's actions.
-q, --quiet
Suppress all informational messages, showing only critical errors if any occur.
-o, --once
Exit immediately after displaying the last image in the list, rather than looping or waiting for user input.
-d device, --device device
Specify the framebuffer device to use (e.g., /dev/fb0). By default, fbi attempts to guess the correct device.
-T vt, --vt vt
Specify the virtual terminal number (vt) to switch to for displaying images (e.g., /dev/tty1 corresponds to 1). Requires permissions to switch VTs.
-p, --proportional
Use proportional scaling, maintaining the image's aspect ratio (this is the default behavior for fitting).
-g, --no-proportional
Disable proportional scaling, allowing images to be stretched or squeezed to fit the screen, potentially distorting the aspect ratio.
-m, --monochrome
Display images in monochrome (black and white) regardless of their original color depth.
-e, --exit-on-error
Exit immediately if an image cannot be displayed or any other significant error occurs, without attempting to proceed.
-h, --help
Display a help message detailing command usage and options, then exit.
-V, --version
Display version information for fbi and then exit.
DESCRIPTION
fbi, the framebuffer imageviewer, is a lightweight utility designed to display images directly on the Linux framebuffer console. Unlike traditional image viewers that require a graphical desktop environment (like Xorg), fbi operates at a lower level, making it ideal for systems without an X server, such as embedded devices, servers, or when booting into a text-only console. It supports various popular image formats, including JPEG, PNG, GIF, and others, often leveraging external libraries like libjpeg and libpng.
Users can navigate through images, zoom, pan, and rotate using simple keyboard shortcuts. Its primary advantage lies in its independence from graphical environments, offering a fast and efficient way to view images directly on a virtual console. This makes it particularly useful for quickly checking images on headless systems or for diagnostic purposes where a full desktop environment isn't available or desired, providing a direct visual output on the console screen.
CAVEATS
fbi requires direct access to the Linux framebuffer device (e.g., /dev/fb0), which often necessitates root privileges or membership in the video group. It is designed for use in console environments and typically does not function within a standard X (graphical desktop) server session. Its functionality is focused on basic image viewing, lacking advanced editing features or complex metadata display found in full-featured graphical viewers. Proper display depends on the availability of necessary image decoding libraries (like libjpeg, libpng) on the system.
KEYBOARD CONTROLS
fbi relies heavily on keyboard shortcuts for user interaction, as it operates in a console environment without mouse support. Common controls include: arrow keys for navigating between images, '+' and '-' for zooming in and out, 'R' (clockwise) and 'r' (counter-clockwise) for rotating images, 'p' to pause or resume slideshows, and 'ESC' or 'q' to quit the viewer. These controls provide a complete interactive experience tailored for direct console use.
PERMISSIONS
To access and display images directly on the framebuffer, fbi typically needs special permissions. Users usually need to be part of the 'video' group or execute the command with sudo/root privileges to interact with framebuffer devices like /dev/fb0 and switch virtual terminals (/dev/ttyX). Without these permissions, fbi may fail to initialize the framebuffer, switch to the desired console, or display images correctly, often resulting in error messages about permission denied.
HISTORY
fbi was developed by Michael Schierl as part of the fbida toolkit (framebuffer image processing tools). It emerged from the need for a simple, fast, and efficient image viewer capable of operating directly on the Linux framebuffer, independent of a graphical X server. This made it invaluable for embedded systems, server environments, and for viewing images during the system boot process before a full graphical environment is loaded. Its design prioritized minimal dependencies and direct hardware interaction, establishing its niche in console-based image display over the years.