IMV(1)
π IMV(1) β the imv manual, bestie edition π
okay so welcome to imv(1), the manual page. yes you're reading a manpage, and yes it's gonna be fun, because this one is genuinely a slay. grab a snack π
β¨ NAME β¨
imv β image viewer for X11 and Wayland. that's it, that's the icon.
πΈ DESCRIPTION πΈ
imv is an image viewer for X11 and Wayland, aimed at users of tiling window managers (yes, the tiling girlies are the main characters here, no cap π). it supports a wide variety of image file formats β including animated gif files, hello?? β and it will automatically reload the current image if it is changed on disk. it just knows. it's giving attentive bestie energy fr fr.
π SYNOPSIS π
imv [options] [paths...]
β¨ OPTIONS β¨
-hβ show help message and quit. short and sweet.-vβ show version and quit. also short, also sweet.-b <background>β set the background colour. it can either be a 6-digit hexadecimal colour code, orchecksto show a chequered background. pick your vibe π¨-c <command>β specify a command to be run on launch, after the configuration has been loaded. you can use it to configure custom keys with thebindcommand. this option can be used multiple times (stack 'em, bestie), and commands are run in the order that they have been passed toimv.-dβ start with overlay visible. show it off from the jump.-fβ start fullscreen. main character energy, immediately.-i <id>β set the X11 resource name / wayland app id of the created window. name your window, it deserves it.-lβ list open files to stdout at exit. receipts, on the way out π§Ύ-n <path|index>β start with the given path, or index, selected.-rβ load directories recursively. go deep π-s <none|shrink|full|crop>β set scaling mode to use.nonewill show each image at its actual size.shrinkwill scale down the image to fit inside the window.fullwill both scale up and scale down the image to fit perfectly inside the window.cropwill scale and crop the image to fill the window. defaults tofull. pick your fighter π-t <slideshow_duration>β start in slideshow mode, with each image shown for the given number of seconds. set the vibe, walk away.-u <linear|nearest_neighbour>β set upscaling method used byimv.-w <windowtitle>β set window title when startingimv. label your creation π·οΈ-xβ disable looping of input paths. no more round trips.-W <width>β initial width of window.-H <height>β initial height of window.
π COMMANDS π
commands can be entered by pressing :. then it's go time. imv supports the following commands:
quitβ quitimv. aliased toq.pan <x> <y>β pan the view by the given amounts. move it, move it πΊnext <offset>β move forwards by a given number of images. aliased tonprev <offset>β move backwards by a given number of images. aliased topgoto <index>β select an image by index.1is the first image,2the second, etc. the last image can be indexed as-1, the second last as-2. aliased tog.zoom <amount|actual>β zoom into the image by the given amount. negative values zoom out.actualresets the zoom to 100%, showing the image at its actual size. aliased toz.rotate <'to'|by> <angle>β rotate image clockwise by/to the given amount in degrees. πflip <'horizontal'|vertical>β flip image horizontally/vertically (across vertical/horizontal axis).open [-r] <paths ...>β add the given paths to the list of open images. if the-roption is specified, do so recursively. shell expansions may be used. aliased too.close [index|all]β close the currently selected image, or the image at the given index, or all images. bye bestie πfullscreenβ toggle fullscreen.overlayβ toggle the overlay.exec <command>β execute a shell command.imvprovides various environment variables to the command executed. these are documented in the Environment Variables section. (yes, that's later, keep reading π«Ά)centerβ recenter the selected image.resetβ reset the view, centering the image and using the current scaling mode to rescale it. factory settings, iconic.next_frameβ if an animated gif is currently being displayed, load the next frame.toggle_playingβ toggle playback of the current image if it is an animated gif.scaling <none|shrink|full|crop|next>β set the current scaling mode. setting the mode tonextadvances it to the next mode in the list.upscaling <linear|nearest_neighbour|next>β set the current upscaling method. setting the method tonextadvances it to the next method in the list.slideshow <+amount|-amount|duration>β increase or decrease the slideshow duration by the given amount in seconds, or set its duration directly. aliased toss.background <checks|hexadecimal-code>β set the background color.checksfor a chequerboard pattern, or specify a 6-digit hexadecimal color code. aliased tobg.bind <keys> <commands>β binds an action to a set of key inputs. uses the same syntax as the config file, but without an equals sign between the keys and the commands. for more information on syntax, seeimv(5).
π¦ DEFAULT BINDS π¦
imv comes with several binds configured by default (they ate, honestly):
qβ quitLeft arrowβ previous imageRight arrowβ next imageggβ go to first imageGβ go to last imagejβ pan downkβ pan uphβ pan leftlβ pan rightxβ close current imagefβ toggle fullscreendβ toggle overlaypβ print current image to stdoutUp arrowβ zoom inDown arrowβ zoom outiβ zoom inoβ zoom out+β zoom in-β zoom outCtrl+rβ rotate clockwise by 90 degreescβ center imagesβ next scaling modeSβ next upscaling modeaβ zoom to actual sizerβ reset zoom and pan.β next frame (for animations)Spaceβ pause/play animationstβ start slideshow/increase delay by 1 secondTβ stop slideshow/decrease delay by 1 second
π CONFIGURATION π
the path to a config file can be given via the $imv_config environment variable. if not found, imv will search for it in the following locations (in this order, bestie):
$XDG_CONFIG_HOME/imv/config(recommended β the ~aesthetic~ choice β¨)$HOME/.config/imv/config$HOME/.imv_config$HOME/.imv/config/usr/local/etc/imv_config/etc/imv_config
a default config file is shipped with imv into /etc/imv_config.
for documentation on the config file format, see imv(5). π
π§ ENVIRONMENT VARIABLES π§
when imv executes a shell command, it provides a number of environment variables, exposing imv's state. these environment variables are also available when customising the window's title, or the overlay text. so many little lore drops π
$imv_pidβ the pid of this instance ofimv. useful for runningimv-msgin scripts.$imv_current_fileβ path of currently selected image.$imv_scaling_modeβ name of the current scaling mode.$imv_loadingβ1if a new image is loading,0otherwise.$imv_current_indexβ index of current image, from1-N.$imv_file_countβ total number of files.$imv_widthβ width of the current image.$imv_heightβ height of the current image.$imv_scaleβ scaling of current image in percent.$imv_slideshow_durationβ number of seconds each image is shown for.$imv_slideshow_elapsedβ how long the current image has been shown for.
π IPC π
imv can accept commands from another process over a unix socket. each instance of imv will open a unix socket named $XDG_RUNTIME_DIR/imv-$PID.sock. if $XDG_RUNTIME_DIR is undefined, the socket is placed into /tmp/ instead.
the imv-msg(1) utility is provided to simplify this from shell scripts. bestie-communication protocol, lowkey π«Ά
π AUTHORS π
imv is written and maintained by Harry Jeffery <me@harry.pm> with contributions from other developers.
full source code and other information can be found at https://sr.ht/~exec64/imv.
π SEE ALSO π
and that's the whole page, bestie. go look at some pictures π
okay bye ily, this manual page was served up on 03/22/2026 as the IMV(1) edition β periodt, no cap, don't forget to hydrate π β¨π¦
π¦ where this page comes from
- alpine 3.24: imv-doc 5.0.1-r0 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms