FBI(1)

πŸ“¦
version 2.15 Β· 4 versions
, in alpine 3.24, arch rolling, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

🌸 NAME 🌸

fbi β€” Linux framebuffer imageviewer πŸ’…

okay bestie, so fbi is literally the girl for showing pictures on your linux console. no X, no window manager, no drama. she just takes over the framebuffer device and does her thing. iconic behavior honestly. πŸŽ€


✨ SYNOPSIS ✨

fbi [options] file ...

πŸ’– DESCRIPTION πŸ’–

so here's the vibe: fbi displays the file(s) you give it on the linux console, using the framebuffer device. she's not like other viewers. πŸ¦‹

PhotoCD, jpeg, ppm, gif, tiff, xpm, xwd, bmp, png and webp formats are supported natively β€” no middleman, no fuss. and for anything else? she tries to use ImageMagick(1)'s convert(1). she's resourceful like that. πŸ’…


πŸŽ€ OPTIONS πŸŽ€

  • -h, --help β€” print usage info. the "what do i even do here" button 🫢
  • -V, --version β€” print the fbi version number. slay, tell me who you are πŸ’–
  • --store β€” write the command line arguments to the config file ~/.fbirc. she remembers. πŸ‘‘
  • -l file, --list file β€” read the image filelist from file.
  • -P, --text β€” enable textreading mode. in this mode fbi will display large images without vertical offset (default is to center the images). the SPACE command will first try to scroll down and go to the next image only if it is already on the bottom of the page. super useful if the images you're watching are text pages β€” all you have to do to get the next piece of text is press space... πŸ“–
  • -a, --autozoom β€” enable autozoom. fbi will automagically pick a reasonable zoom factor when loading a new image. no notes. ✨
  • --(no)autoup β€” like autozoom, but scale up only.
  • --(no)autodown β€” like autozoom, but scale down only.
  • --(no)fitwidth β€” use width only for autoscaling.
  • -v, --(no)verbose β€” be verbose: enable the status line on the bottom of the screen (enabled by default). she's a talker, and honestly? we love her for it πŸ’¬
  • -u, --(no)random β€” randomize the order of the filenames. chaos mode, main character energy 🎲
  • --(no)comments β€” display comment tags (if present) instead of the filename. probably only useful if you added reasonable comments yourself (using wrjpgcom(1) for example), otherwise you likely just find texts pointing to the software which created the image. lowkey a jumpscare if you didn't write them yourself 😭
  • -e, --(no)edit β€” enable editing commands. (yes, she can edit. we'll get to that. 😳)
  • --(no)backup β€” create backup files (when editing images). bestie, protect yourself πŸ’–
  • -p, --(no)preserve β€” preserve timestamps (when editing images).
  • --(no)readahead β€” read ahead images into cache. she's already thinking about the next one 🧚
  • --cachemem size β€” image cache size in megabytes (default is 256).
  • --blend time β€” image blend time in miliseconds.
  • -T n, --vt n β€” start on virtual console n.
  • -s steps, --scroll steps β€” set scroll steps in pixels (default is 50).
  • -t sec, --timeout sec β€” start a continuous slideshow where each image is loaded at sec second intervals without any keypress. hands-free, we stan 😌
  • -1, --(no)once β€” don't loop (only use with -t).
  • -r n, --resolution n β€” select resolution, n = 1..5 (default is 3, only PhotoCD).
  • -g n, --gamma n β€” gamma correction. requires Pseudocolor or Directcolor visual, doesn't work for Truecolor (default is 1).
  • -f <arg>, --font <arg> β€” set font. this <arg> can be anything fontconfig accepts (see fonts-conf(5)). try fc-list(1) for a list of known fonts on your system. the fontconfig config file is evaluated as well, so any generic stuff defined there (such as mono, sans) will work as well. it is recommended to use monospaced fonts β€” the textboxes (help text, exif info) look better then. πŸŽ€
  • -d /dev/fbN, --device /dev/fbN β€” use /dev/fbN device framebuffer. default is the one your virtual console is mapped to.
  • -m videomode, --mode videomode β€” name of the video mode to use (video mode must be listed in /etc/fb.modes). default is not to change the video mode.
  • --(no)interactive β€” allow interactively controlling the program from the keyboard. this requires that stdin is a TTY. default is to allow interactive control.

🌈 ENVIRONMENT 🌈

fbi uses the following environment variables:

  • FBGAMMA β€” this variable may be used to specify a default gamma correction.

πŸ‘‘ COMMAND USAGE πŸ‘‘

the commands take effect immediately; it is not necessary to type a carriage return. no enter key, just vibes ✨

in the following commands, i is a numerical argument.

πŸ’« Scrolling

  • LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW β€” scroll large images. get those arrows working πŸ’…
  • PREV_SCREEN, k β€” previous image.
  • NEXT_SCREEN, SPACE, j β€” next image.
  • ig β€” jump to image #i.
  • RETURN β€” write the filename of the current image to stdout(3), then go to the next image.

the RETURN vs. SPACE key thing can be used to create a file list while reviewing the images and use the list for batch processing later on:

fbi file1.gif file2.jpg file3.jpg > fileimagelist.lst

some RETURN and SPACE...

fbi -l fileimagelist.lst

okay that's actually genius. build your own playlist by just... pressing enter. periodt. πŸ“

πŸ” Zoom

  • a β€” autozoom.
  • + β€” in.
  • - β€” out.
  • is β€” set zoom to i%.

🌸 Other

  • ESQ, q β€” quit. bye bestie πŸ‘‹
  • v β€” toggle status line.
  • h β€” display textbox with brief help.
  • i β€” display textbox with some EXIF info.
  • p β€” pause the slideshow (if started with -t, toggle).

πŸ’… Edit mode

fbi also provides some very basic image editing facilities. you have to start fbi with the -e switch to use them.

  • D, Shift+d β€” delete image.
  • r β€” rotate 90 degrees clockwise.
  • l β€” rotate 90 degrees counter-clock wise.
  • x β€” mirror image vertically (top / bottom).
  • y β€” mirror image horizontally (left to right).
⚠️ the delete function actually wants a capital letter D, thus you have to type Shift+d. this is done to avoid deleting images by mistake because there are no safety bells: if you ask fbi to delete the image, it will be deleted without questions asked. no "are you sure", no take-backs. πŸ’€ be careful bestie.

the rotate function actually works for JPEG images only. it does a lossless transformation of the image. so clean, so iconic πŸ”₯


😭 BUGS 😭

fbi needs rw access to the framebuffer devices (/dev/fbN), i.e you (or your admin) have to make sure fbi can open the devices in rw mode. the IMHO most elegant way is to use PAM(7) to chown the devices to the user logged in on the console. another way is to create some group, chown the special files to that group and put the users which are allowed to use the framebuffer device into the group. you can also make the special files world writable, but be aware of the security implications this has. on a private box it might be fine to handle it this way though.

fbi also needs access to the linux console (/dev/ttyN) for sane console switch handling. that is obviously no problem for console logins, but any kind of a pseudo tty (xterm, ssh, screen, ...) will not work. yeah. she's picky about her environment, and honestly? fair. πŸ™ˆ


πŸ¦‹ SEE ALSO πŸ¦‹

convert(1), fbset(1), fc-list(1), imagemagick(1), wrjpgcom(1), fonts-conf(5), PAM(7)


πŸ’œ AUTHOR πŸ’œ

Gerd Hoffmann <gerd@kraxel.org>


Copyright (c) 1999-2012 Gerd Hoffmann <gerd@kraxel.org>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


and that's the whole page bestie!! πŸ’–βœ¨πŸŽ€ this was fbi 2.09, Β© 1998-2012 Gerd Hoffmann, and it lives in the FBI(1) section of your manual. go forth and view some pictures on your console. you got this. mwah πŸ’…πŸ¦‹