Feh takes as arguments the names of image files you want to view. You can also give directory names, and feh attempts to load all the files in that directory; the
-r option recurses through all subdirectories. Viewing all image files in the /usr/local/photos directory tree, for instance, is done like this:
$ feh -r /usr/local/photos
If you specify more than one image, only the first will immediately display; type
n (or the spacebar) to move to the next and
p to move to the previous. The
End keys bring you to the first and last images in the argument list. To quit viewing and exit, type
You can put a list of images to load in a file, with full or relative pathnames, and specify the file with the
-f option; the
-z option will randomize the display order. The images can be advanced automatically by giving a delay, in seconds, as an argument to the
-D option. This slideshow mode is the default mode; feh is a modal viewer, so its options and controls differ depending on the mode. Its other modes are discussed below.
You can also view images over any http or ftp URL by giving the URL as an argument, like so:
$ feh http://www.glerl.noaa.gov/pubs/photogallery/Scenic/images/0534.jpg
If you have a file that contains a list of image URLs, you can have feh display them in a random-order slideshow, with a delay of 30 seconds each, with this command:
$ cat image-urls | xargs feh -z -D30
What's really special about feh is the way it pans and zooms images -- it's impressively fast and fluid.
If an image is too large to fit the display, click the left mouse button and move the pointer to pan around the image.
To resize the view, click the middle button and move the pointer toward the left or right to shrink or grow the image.
You can click and release the left mouse button once to move to the next image. A few viewing effects are also available: hold down the
Ctrl key and press the left mouse button: when you do so, moving the pointer to the left blurs the image, while moving to the right sharpens it. With
Ctrl and the middle mouse button pressed, you can move the pointer to spin the image around its center.
When viewing an image, click the right mouse button to display feh's menus.
Menus, edits, and modes
Feh is strictly an image viewer -- it doesn't attempt to be an editor at all, but a couple of the most common editing commands are available on the menu: rotation and deletion. Happily, there are no confirmation dialogs or windows that pop up when you do anything with these menus -- the delete command is cleverly given an extra sub-menu with one item, "confirm," so you get that extra protection against accidents but don't waste time with a verification click.
These commands also have keyboard equivalents. Type
> to rotate an image 90 degrees clockwise, and
< to rotate it 90 degrees counterclockwise. Your changes are immediately saved to the file. To delete the current image file, type
While these commands work in slideshow mode, there are other operation modes as well, all of which are specified by command-line options. Here's a quick rundown of them:
-w option starts multiwindow mode, which works like slideshow mode, but instead of displaying images in tandem in a single window, all images are loaded at once, each in a window of its own. Quitting out of a single window closes all of the windows -- to just close a single window, type
x inside that window.
-F option specifies fullscreen mode, where images are shown in the entire display. It works the same as slideshow mode and has all the same options.
-m option specifies montage mode, where feh displays an image montage of thumbnails for all specified files. This mode has a lot of its own options; one of the more useful ones is
-O, which doesn't display the thumbnail montage but instead saves it to the file you specify as an argument.
-c option specifies collage mode, which like montage mode creates a new image of thumbnails, but images in the montage are displayed in a random, overlapping collage.
-i option specifies index mode, which makes an index print -- a new image of thumbnails with information about the images beneath them. The default is to just print the file's name, but if you call index mode with the
-I option instead, it also prints each file's image (pixel) size and disk size in kilobytes. You can specify the font with the
-t option specifies thumbnail mode, which is one of the more useful modes -- it looks just like index mode, but you can view the full-size images by clicking on their thumbnails.
-l option specifies list mode, which outputs a listing of images with various information about them including format and size.
For instance, here's how to get a default-style listing of all .jpg image files in the current directory:
$ feh -l *.jpg NUM FORMAT WIDTH HEIGHT PIXELS SIZE(bytes) ALPHA FILENAME 1 jpeg 800 534 427200 57600 - 0383.jpg 2 jpeg 570 800 456000 69362 - 0868.jpg 3 jpeg 800 526 420800 58995 - 0894.jpg 4 jpeg 800 599 479200 82414 - 1197.jpg 5 jpeg 800 601 480800 86439 - 1294.jpg $
You can also customize the output (which is good for scripting) by using the
-L option instead -- feh's man page describes how to specify the format.