imv
is a command line image viewer intended for use with tiling window managers.
- Wayland Support
- Support for over 30 different image file formats including:
- Photoshop PSD files
- Animated GIFS
- Various RAW formats
- SVG
- Configurable key bindings and behaviour
The following examples are a quick illustration of how you can use imv. For full documentation see the man page.
imv image1.png another_image.jpeg a_directory
imv -r Photos
find . "*.png" | imv
imv -f image.jpeg
find . "*.png" | shuf | imv
curl http://somesi.te/img.png | imv -
imv can be used to select images in a pipeline by using the p
hotkey to print
the current image's path to stdout. The -l
flag can also be used to tell imv
to list the remaining paths on exit for a "open set of images, close unwanted
ones with x
, then quit imv to pass the remaining images through" workflow.
Through custom bindings, imv can be configured to perform almost any action you like.
In your imv config:
[binds]
<Shift+x> = exec rm "$imv_current_file"; close
Then press 'X' within imv to delete the image and close it.
In your imv config:
[binds]
<Shift+r> = exec mogrify -rotate 90 "$imv_current_file"
Then press 'R' within imv to rotate the image 90 degrees using imagemagick.
In your imv config:
[binds]
u = exec echo $imv_current_file >> ~/tags/$(ls ~/tags | dmenu -p "tag")
Then press 'u' within imv to tag the current image.
curl -Osw '%{filename_effective}\n' 'http://www.example.com/[1-10].jpg' | imv
imv can be used to display slideshows. You can set the number of seconds to
show each image for with the -t
option at start up, or you can configure it
at runtime using the t
and T
hotkeys to increase and decrease the image
display time, respectively.
To cycle through a folder of pictures, showing each one for 10 seconds:
imv -t 10 ~/Pictures/London
The -x
switch can be used to exit imv after the last picture instead of
cycling through the list.
imv
depends on pthreads
, FontConfig
, SDL2
, SDL_TTF
and asciidoc
.
Additional dependencies are determined by which backends are selected when
building imv
. You can find a summary of which backends are available and
control which ones imv
is built with in config.mk
$ $EDITOR config.mk
$ make
# make install
Macro PREFIX
controls installation prefix. If more control over installation
paths is required, macros BINPREFIX
, MANPREFIX
and DATAPREFIX
are
available. Eg. to install imv
to home directory, run:
$ BINPREFIX=~/bin PREFIX=~/.local make install
In case something goes wrong during installation process you may use verbose mode to inspect commands issued by make:
$ V=1 make
imv
has a work-in-progress test suite. The test suite requires cmocka
.
$ make check
imv
's source is published under the MIT license.