IMV(5)

πŸ’– imv(5) β€” the config file era πŸ’–

okay bestie, welcome to IMV(5) πŸ’… this is the manual page for imv's configuration file, and yes we are going to read the whole thing together, no skimming, no scrolling past the "boring" bits, because every single line here is load-bearing fr fr. 🫢


🌸 NAME 🌸

imv β€” imv configuration file ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

so. imv can be customised with this configuration file, and the way it lets you do that is by changing its default behaviour, its key bindings, and its whole appearance. main character energy, honestly. πŸ‘‘

the imv configuration file is an ini-style file, with multiple key = value settings, separated into several '[section]'s. that's the whole vibe check. πŸ’œ


✨ OPTIONS ✨

the [options] section accepts the following settings, and bestie, there are a LOT of them, so buckle up:

  • background = <hex-code|checks> β€” sets the background in imv. it can either be a 6-digit hexadecimal colour code, or checks for a chequered background. defaults to 000000. πŸŽ€
  • fullscreen = <true|false> β€” starts imv fullscreen. defaults to false.
  • width = <width> β€” the initial width of the imv window. defaults to 1280.
  • height = <height> β€” the initial height of the imv window. defaults to 720.
  • initial_pan = <pan_factor_x> <pan_factor_y> β€” the initial pan/focus position factor of the opened images. a value of 50 represents the middle point of the image (50%). defaults to 50 50. 🌈
  • list_files_at_exit = <true|false> β€” prints open files to stdout at exit, each one on a separate line. defaults to false.
  • loop_input = <true|false> β€” returns to the first image after you've viewed the last one. defaults to true.
  • overlay = <true|false> β€” starts with the overlay visible. defaults to false.
  • overlay_font = <typeface:size> β€” uses the specified font in the overlay. defaults to Monospace:24.
  • overlay_text = <text> β€” uses the given text as the overlay's text. the provided text is shell expanded, so the output of commands can be used (for example, $(ls)). environment variables can also be used, including the ones accessible to imv's exec command. πŸ’«
  • overlay_text_color = <hex-code> β€” sets the color for the text in the overlay. it's a 6-digit hexadecimal color code. defaults to ffffff.
  • overlay_text_alpha = <hex-code> β€” sets the alpha for the text in the overlay. it's a 2-digit hexadecimal color code. defaults to ff.
  • overlay_background_color = <hex-code> β€” sets the color for the background of the overlay. it's a 6-digit hexadecimal color code. defaults to 000000.
  • overlay_background_alpha = <hex-code> β€” sets the alpha for the background of the overlay. it's a 2-digit hexadecimal color code. defaults to c3.
  • overlay_position_bottom = <true|false> β€” displays the overlay at the bottom of the imv window, instead of the top. πŸ™ˆ
  • recursively = <true|false> β€” loads input paths recursively. defaults to false.
  • scaling_mode = <none|shrink|full|crop> β€” sets the scaling mode to use. none will show each image at its actual size. shrink will scale down the image to fit inside the window. full will both scale up and scale down the image to fit perfectly inside the window. crop will scale and crop the image to fill the window. defaults to full. πŸ”₯
  • slideshow_duration = <duration> β€” starts imv in slideshow mode, and sets the amount of time to show each image for, in seconds. defaults to 0, i.e. no slideshow.
  • suppress_default_binds = <true|false> β€” disables imv's built-in binds so they don't conflict with your custom ones. defaults to false.
  • title_text = <text> β€” uses the given text as the window's title. the provided text is shell expanded, so the output of commands can be used: $(ls), as can environment variables, including the ones accessible to imv's exec command. ⭐
  • upscaling_method = <linear|nearest_neighbour> β€” uses the specified method to upscale images. defaults to linear.

πŸŽ€ ALIASES πŸŽ€

the [aliases] section allows aliases to be added for imv's build in commands. for example, x = close would add a x command that simply executes the close command. any arguments provided to an alias are appended to the command configured by the alias. cute, efficient, iconic. πŸ’–


πŸ’… BINDS πŸ’…

the [binds] section allows custom key bindings to be added to imv. this is where you get to be the main character of your own keyboard. πŸ‘‘

binds are in the format key combination = command. a key combination can consist of multiple keys in succession. multiple commands for a single key combination can be defined by separating each command with a ;. single and double quotes are honoured, as is escaping with a backslash, to allow the proper quoting of shell commands. 🐚

single keys such as q are just that: q = quit will bind the q key to the quit command.

modifier keys can be specified by prefixing them: Ctrl+q, Meta+f, Shift+G. if multiple modifier keys are desired, they are specified in the order Ctrl+Meta+Shift. when a key's name is more than a single character, or a modifier is used, it must be wrapped in < and >, for example: <Ctrl+q>.

multiple keys in succession can be specified by listing them in order: gg = goto 1 will bind two presses of the g key to jump to the first image, and <Ctrl+a>p = exec echo hi will bind the key sequence of Ctrl+a followed by p to executing the shell command echo hi. 😭 so clever.

many keys, such as <, and > have special names. on X11, these can be easily found with the xev(1) command. for example, ! is called exclam, < is called less, > is called greater. 🧚

a complete list of keysyms can also be found on most systems with the dumpkeys -l command.


🌈 SEE ALSO 🌈

imv(1) β€” go read it, bestie, it's the whole point of all this config πŸ’œ


and that's the tea, fr fr β€” this was IMV(5), dated 12/14/2025, and you absolutely ate that read. periodt. πŸ’…βœ¨πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from