NAME
feh - image viewer and cataloguer
SYNOPSIS
feh [options] file(s)
DESCRIPTION
feh is an image viewer using the
imlib2 library to open and manipulate images. feh has
a large number of operational modes. The default mode is an image
slideshow, showing one image at a time from those specified on the
commandline. Keys and mouse control may be used to move through
them. Other modes can be specified on the commandline, and are
described below.
feh can also recurse through a directory structure to
form a filelist for processing, and will convert directory names on
the commandline into a list of their contents automatically.
Filelists can be sorted in a number of ways. The default
is the order the files were specified on the commandline, or the
order they were read from the disk. You can specify sorting modes
such as randomize or you can sort by filename, image name,
width, height, pixels, etc. Filelists can also be saved to or
loaded from files.
MODES
Montage mode forms a montage from the
filelist. The resultant image can be viewed or saved, and it's size
can be limited by height, width or both.
Collage mode is very similar to montage mode, except the
images are distributed randomly and may overlap eachother
Index mode forms an index print from the filelist. Image
thumbnails are shown along with the filename, filesize and pixel
size, printed using a truetype font of your choice. The resultant
image can be viewed or saved, and it's size can be limited by
height, width or both.
Thumbnail mode is like index mode, but the mini-images
are clickable, and launch the clicked image in a browser window.
Multiwindow mode shows images in multiple windows,
instead of as a slideshow in one window. Don't use with a large
filelist ;)
Fullscreen mode shows image in fullscreen view, can be
combined with a slide-change delay to show an automated
presentation.
List mode doesn't display images. Outputs an 'ls'-style
listing of the files in the filelist, including image info such as
size, pixels, type, etc. Customlist mode will display whatever
image info you want, in the format you choose.
feh can also list either all the loadable files in a
filelist or all the unloadable files. Useful for preening a
directory.
feh also has the ability to load files over http or ftp,
simply specify the url on the commandline.
feh can read options from the commandline, or from a
config file. The syntax is the same in each case. See CONFIG
FILE SYNTAX for details about using themes defined in a config
file. These methods may be used in conjunction.
OPTIONS
- -h, --help
- display help output and exit
- -v, --version
- output version information and exit
- -V, --verbose
- output useful information, progress bars, etc
- -q, --quiet
- Don't report non-fatal errors for failed loads. Verbose and
quiet modes are not mutually exclusive, the first controls
informational messages, the second only errors.
- -T, --theme THEME
- Load options from config file with name THEME - see CONFIG FILE
SYNTAX for more info.
- --rcfile FILE
- Use FILE to parse themes and options from, instead of the
default ~/.fehrc, /etc/fehrc files.
- -r, --recursive
- Recursively expand any directories in FILE to the content of
those directories, all the way down to the bottom level. (Take it
easy)
- -z, --randomize
- When viewing multiple files in a slideshow, randomise the file
list before displaying.
- -f, --filelist FILE
- This option is similar to the playlists used by music software.
If FILE exists, it will be read for a list of files to load, in the
order they appear. The format is a list of image filenames,
absolute or relative to the current directory, one filename per
line.
If FILE doesn't exist, it will be created from the internal
filelist at the end of a viewing session. This is best used to
store the results of complex sorts (-Spixels for example) for later
viewing. Any changes to the internal filelist (such as deleting a
file or it being pruned for being unloadable) will be saved to FILE
when feh exits. You can add files to filelists by specifying them
on the commandline when also specifying the list.
- -p, --preload
- Preload images. This doesn't mean hold them in RAM, it means
run through them and eliminate unloadable images first. Otherwise
they will be removed as you flick through. This also analyses the
images to get data for use in sorting, such as pixel size, type
etc. A preload run will be automatically performed if you specify
one of these sort modes.
- -F, --full-screen
- Make the window fullscreen
- -g, --geometry STRING
- Limit (and don't change) the window size. Takes an X-style
geometry string like 640x480. Note that larger images will be
zoomed out to fit but you can see them at 1:1 by clicking the zoom
button.
- -Z, --auto-zoom
- Zoom picture to screen size in fullscreen (affected by
--stretch and --ignore-aspect).
- --zoom PERCENT
- Zooms images by a PERCENT, when in full screen mode or when
window geometry is fixed. If combined with --auto-zoom, zooming
will be limited to the the size.
- -w, --multiwindow
- Disable slideshow mode. With this setting, instead of opening
multiple files in slideshow mode, multiple windows will be opened,
one per file.
- -x, --borderless
- Create borderless windows
- -d, --draw-filename
- Draw the filename at the top-left of the image
- -D, --slideshow-delay NUM
- For slideshow mode, specifies time delay (seconds, can be a
decimal) between automatically changing slides. Great for
presentations.
- -R, --reload NUM
- Use this option to tell feh to reload an image after NUM
seconds. Useful for viewing webcams via http, or even on your local
machine.
- -k, --keep-http
- When viewing files using HTTP, feh normally deletes the local
copies after viewing, or, if caching, on exit. This option prevents
this so that you get to keep the local copies. They will be in /tmp
with "feh" in the name.
- -Q, --builtin
- Use builtin http client to grab remote files instead of wget,
useful if you don't have wget installed.
- --caption-path PATH
- Path to directory containing image captions. This turns on
caption viewing, and if captions are found in PATH, which is
relative to the directory of each image, they are overlayed on the
displayed image. e.g with caption path "captions", and viewing
image images/foo.jpg, caption will be looked for as
"images/captions/foo.jpg.txt"
- -l, --list
- Don't display images. Analyse them and display an 'ls'-style
listing. Useful in scripts hunt out images of a certain
size/resolution/type etc.
- -L, --customlist FORMAT
- Use FORMAT as the format specifier for list output. FORMAT is a
printf-like string containing image info specifiers. See FORMAT
SPECIFIERS.
- -U, --loadable
- Don't display images. Just print out their names if imlib2 can
successfully load them.
- -u, --unloadable
- Don't display images. Just print out their name if imlib2 can
NOT successfully load them.
- -S, --sort SORT_TYPE
- The file list may be sorted according to image parameters.
Allowed sort types are: name, filename, width, height, pixels,
size, format. For sort modes other than name or filename, a preload
run will be necessary, causing a delay proportional to the number
of images in the list
- -n, --reverse
- Reverse the sort order. Use this to invert the order of the
filelist. Eg to sort in reverse width order, use -nSwidth
- -A, --action ACTION
- Specify a string as an action to perform on the image. In
slideshow or multiwindow modes, the action will be run when the
enter key is pressed, in list mode, the action will be run for each
file listed. The action will be executed by /bin/sh. Use format
specifiers to refer to image info. See FORMAT SPECIFIERS for
examples
Eg. feh -A "mv %f ~/images/%n" *
In slideshow mode, the next image will be shown after running the
action, in multiwindow mode, the window will be closed.
- --action1...9
- Extra actions which can be set and triggered using the
appropriate number key.
- -m, --montage
- Enable montage mode. Montage mode creates a new image
consisting of a grid of thumbnails of the images in the filelist.
When montage mode is selected, certain other options become
available. See MONTAGE MODE OPTIONS
- -c, --collage
- Enable collage mode. Collage mode is very similar to montage
mode, except the images are distributed randomly.
- -i, --index
- Enable Index mode. Index mode is similar to montage mode, and
accepts the same options. It creates an index print of thumbails,
printing the image name beneath each thumbnail. Index mode enables
certain other options, see INDEX MODE OPTIONS
- -I, --fullindex
- Same as Index mode, but you also get image size and dimensions
printed below each thumbnail.
- -t, --thumbnails
- Same as Index mode, but the thumbnails are clickable image
launchers.
- --bg-tile FILE
- --bg-center FILE
- --bg-scale FILE
- --bg-seamless FILE
- Set your desktop background to FILE. Feh can use enlightenment
IPC if you are running it, or will fall back to X methods. Feh
stores the commandline necessary to restore the background you
chose in ~/.fehbg. So to have feh-set backgrounds restored when you
restart X, add the line "eval `cat $HOME/.fehbg`" to your X startup
script (e.g. ~/.xsession). Note that you only need to do this for
non E window managers.
- -M, --menu-font FONT
- Use FONT for the font in menus.
- --menu-style FILE
- Use FILE as the style descriptor for menu text.
- --menu-bg BG
- Use BG for the background image in menus.
- --menu-border INT
- Specify number of pixels that define the menu background's
border. Borders are not stretched when images are scaled.
- -N, --no-menus
- Don't load or show any menus.
- -1, --next-button B
- Use button B to advance to the next image in slideshow mode
(defaults to 1, usually the left button).
- -2, --zoom-button B
- Use button B to zoom the current image in any mode (defaults to
2, usually the middle button).
- -3, --pan-button B
- Use button B to pan the current image in any mode (defaults to
3, usually the right button).
- --no-pan-ctrl-mask
- Don't require CTRL+Button for panning in any mode -- just use
the button (default=off).
- -4, --menu-button B
- Use CTRL+Button B to activate the menu in any mode. Set to 0 to
use any button. This option is disabled if the -N or --no-menus
option is set (defaults to 3, usually the right button).
- -5, --no-menu-ctrl-mask
- Don't require CTRL+Button for menu activation in any mode --
just use the button (default=off).
- -6, --rotate-button B
- Use CTRL+Button B to rotate the current image in any mode
(default=2).
- -7, --no-rotate-ctrl-mask
- Don't require CTRL+Button for rotation in any mode -- just use
the button (default=off).
- -8, --blur-button B
- Use CTRL+Button B to blur the current image in any mode
(default=1).
- -9, --no-blur-ctrl-mask
- Don't require CTRL+Button for blurring in any mode -- just use
the button (default=off).
- --xinerama
- Enable/disable Xinerama support. Has no effect unless you have
an Xinerama compiled in.
- --screen-clip
- Enable/disable window clipping based on screen size. WARNING:
With this disabled, windows could become very large, making them
unmanageable in certain window managers.
- --hide-pointer
- Hide the mouse pointer in full screen mode (useful for
slideshows etc).
FORMAT SPECIFIERS
%f image path/filename
%n image name
%s image size (bytes)
%p image pixel size
%w image width
%h image height
%t image format
%P prints feh
%v prints the version
%m prints the mode (slideshow, multiwindow...)
%l prints the total number of files in the filelist
%u prints the current file number
\n newline
Eg. feh -A "mv %f ~/images/%n" *
MONTAGE MODE OPTIONS
- -X, --ignore-aspect
- By default, the montage thumbnails will retain their aspect
ratios, while fitting in --thumb-width and --thumb-height. This
option will force them to be the size set by --thumb-width and
--thumb-height This will prevent any whitespace in the final
montage
- -s, --stretch
- Normally, if an image is smaller than the specified thumbnail
size, it will not be enlarged. If this option is set, the image
will be scaled up to fit the thumnail size. (Aspect ratio will be
maintained unless --ignore-aspect is specified)
- -y, --thumb-width NUM
- Set thumbnail width in pixels
- -E, --thumb-height NUM
- Set thumbnail height in pixels Thumbnails default to 20x20
pixels
- -W, --limit-width NUM
- Limit the width of the montage in pixels
- -H, --limit-height NUM
- Limit the height of the montage in pixels These options can be
used together (to define the image size exactly), or separately. If
only one is specified, theother is calculated from the number of
files specified and the size of the thumbnails. The default is to
limit width to 800 pixels and calculate the height as necessary
- -b, --bg FILE|trans
- Use FILE as a background for your montage. With this option
specified, the size of the montage will default to the size of FILE
if no size restrictions are specified. Alternatively, if FILE is
'trans', the background will be made transparent.
- -a, --alpha NUM
- When drawing thumbnails onto the background, apply them with a
transparency level of NUM (0-255).
- -o FILE
- Save the created montage to FILE
- -O FILE
- Just save the created montage to FILE without displaying it
(use in scripts)
INDEX MODE OPTIONS
- -e, --font FONT
- Use FONT to print the information under each thumbnail. FONT
should be a truetype font, resident in the current directory, or in
feh's font directory, and should be defined in the form
fontname/size(points). (No extension). eg. --font myfont/12
- --fontpath PATH
- Specify PATH as an extra directory in which to search for
fonts, can use multiple times to add multiple paths, e.g --fontpath
/path/a --fontpath /path/b.
- --title-font FONT
- --title-font FONT
- Use FONT to print a title on the index, if no font is
- Use FONT to print a title on the index, if no font is
specified, a title will not be printed
specified, a title will not be printed
CONFIG FILE SYNTAX
The feh config file allows the naming of
option groups, or themes. If $HOME/.fehrc exists, or if not,
but /etc/fehrc exists, feh will look in it for theme
name/options pairs. If neither $HOME/.fehrc or /etc/fehrc exist,
feh will create a default one in ~/.fehrc. An example entry would
be:
imagemap -rVq --thumb-width 40 --thumb-height 30
You can then use this theme in two ways. Either
feh --theme imagemap *.jpg
or you can create a symbolic link to feh with the name of the
options you want it to use. So from the example above:
ln -s `which feh` ~/bin/imagemap
Now I just run imagemap *.jpg to use those options. A cooler
example is
mkindex -iVO index.jpg --title-font 20thcent/24 .
mkindex -iVO index.jpg --title-font 20thcent/24 .
Notice the '.' at the end. Now with a symlink I can create a
mkindex command which will create an index.jpg in the current
directory. I just run mkindex to do it.
You can combine these themes with commandline options, they will be
combined. So in the example above, typing mkindex -q will
create and index, suppressing error messages. An example.fehrc is
provided with a couple of cool examples.
SLIDESHOW KEYS
The default mode for viewing mulitple images
is Slideshow mode When viewing a slideshow, the following keys may
be used:
- p, P, <BACKSPACE>, <LEFT>
- Goto previous slide
- n, N, <SPACE>, <RIGHT>
- Goto next slide
- r, R
- Reload current image. Useful for webcams.
- v, V
- Toggle fullscreen.
- m, M
- Show popup menu.
- c, C
- Caption entry mode. If --caption-path has been specified, then
this enables caption editing. The caption will turn yellow and be
editable, hit enter to confirm and save the caption, or hit escape
to cancel and revert the caption.
- w, W
- Size window to current image size.
- h, H
- Pause the slideshow (only useful when using timed reloading or
image changes)
- s, S
- Save the current image to a unique filename.
- f, F
- Save the current filelist to a unique filename.
- <, >
- In place editing, rotate the image 90 degrees left/right.
- <HOME>
- Goto first slide
- <END>
- Goto last slide
- <PAGE UP>
- Go forward around 5% of the way through the slideshow
- <PAGE DOWN>
- Go backward around 5% of the way through the slideshow
- <ESCAPE>
- Quit the slideshow
- +, =
- Increase reload delay
- -, _
- Decrease reload delay
- <DELETE>
- Remove the currently viewed file from the filelist
- <CTRL+DELETE>
- Delete the currently viewed file and remove it from the
filelist
- x, X
- Close current window.
- q, Q
- Quit the slideshow <KEYPAD LEFT> Move the image to
the left <KEYPAD RIGHT> Move the image to the right
<KEYPAD +> Zoom in <KEYPAD -> Zoom out
<KEYPAD *> Zoom to 100% <KEYPAD /> Zoom
to fit the window
MOUSE ACTIONS
When viewing an image, mouse button 1 moves
to the next image (slideshow mode only), button 2 zooms (click and
drag left->right to zoom in, right-> left to zoom out, click
once to restore 1x zoom), and mouse button 3 pans. Ctrl+button 1
blurs or sharpens the image (drag left to blur and right to
sharpen). Ctrl+button 2 rotates the image around the center point.
Ctrl+ button 3 activates the context-sensitive menu. Buttons can be
redefined with the -1 through -9 (or --*-button) cmdline flags. All
you people with million button mice can remove the ctrl mask with
the --no-*-ctrl-mask options.
SUGGESTED USAGE EXAMPLES
Here are some examples of nice
option combinations to achieve cool results:
- feh -r /opt/images
- Recursively scan /opt/images and show all the images in a
slideshow.
- feh -rSname /opt/image
- Same again, but sort by name before showing.
- feh -m /opt/images/landscapes
- Create a montage from the images in /opt/images/landscapes
- feh -Xrm -W 400 --thumb-width 30 --thumb-height 20
./landscapes
- Create a montage from the images in /opt/images/landscapes and
all directories below it. Limit the width of the image to 400 and
make the thumbnails 30x20, ignoring aspect ratio.
- feh -irFarial/14 -O index.jpg /opt/images
- Make an index print of /opt/images and all directories below
it, using 14 point arial to write the image info under each
thumbnail. Save the image as index.jpg and don't display it, just
exit.
- feh -LrSpixels /opt/images
- List the images in /opt/images and all directories within,
sorted by pixel size, giving as much info as possible.
- feh -kR30 http://url.of.a.webcam.jpg
- Use feh to view a webcam, reloading every 30 seconds, and
saving the images in /tmp.
- feh --unloadables -r /opt/images
- Weed out (list) all the unloadable images in /opt/images and
below.
- feh -w /opt/images/holidays
- Open each image in /opt/images/holidays in it's own window
- feh -FD5 -Sname /opt/images/presentation
- Show the images in /opt/images/presentation, sorted by name, in
fullscreen view, automatically changing slides every 5 seconds.
- feh -rSwidth -A 'mv %f ~/images/%n' /opt/images
- View all the images in /opt/images and below, sorted by width
(smallest first) and move the image to ~/images/image_name when
enter is pressed.
BUGS
None known. However there are many, many options. It
is possible that some do not work well in conjuncion with each
other. Let me know :)
LICENSE
Copyright Tom Gilbert (and various contributors),
1999, 2000
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies of the Software and its documentation and
acknowledgment shall be given in the documentation and software
packages that this Software was used.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Email bugs and feature requests to
<