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] <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.

SEE ALSO

feh(1), fim(1), display(1)

Copied to clipboard