qiv(1)
π qiv β the fast gdk3/gdk2 image viewer for X π
okay bestie, so qiv is literally an image viewer built with gdk3/gdk2, and that's the whole reason it's faster than the old-school traditional image viewers like xv or xli. no cap. it just eats. π₯
Version: 3.0.4, released on 2026-04-19 by Andy Spiegl β http://qiv.spiegl.de/ β qiv.andy@spiegl.de originally by Adam Kopacz / KLOGRAFX.DE Network β http://www.klografx.net/qiv/ β adam.k@klografx.de
β¨ SYNOPSIS β¨
qiv [options] file ...
π¦ DESCRIPTION π¦
qiv is an image viewer developed with gdk3/gdk2. bc of that, qiv is faster than those traditional image viewers such as xv or xli. it's giving main character energy tbh. π
π OPTIONS π
yes bestie there are a LOT of them. every single one is here. do not panic. we go through them one by one, periodt.
-h,--helpβ prints out a brief help message for you. π«Ά--display dispβ opens the qiv window on displaydisp.-F,--file file | stdinβ reads file names fromfileorstdin, one name per line. you can specify this option multiple times to read from several files, and it will not affect other file names passed on the command line.-u,--recursivedirβ changes qiv's behaviour so it recursively descends into the directories given on the command line.-L,--followlinksβ with--recursivedir, this lets a symlink point to a directory. super useful for organizing photo dirs into categories, but it is up to you to ensure that there are no symlink loops that would cause an infinite scan. like, protect your machine bestie. π-e,--centerβ disables window centering.-w,--fixed_width xβ window with fixed widthx.-W,--fixed_zoom x.β window with fixed zoom factor (percentagex).--highDPIfactor FLOATβ resizes everything by this factor to compensate for high (or also low) DPI screens.-x,--root fileβ setsfileas the current desktop background (centered) and exits.-y,--root_t fileβ setsfileas the current desktop background (tiled) and exits.-z,--root_s fileβ setsfileas the current desktop background (stretched) and exits.-m,--maxpectβ expands image(s) to fit screen size while preserving aspect ratio.-t,--scale_downβ shrinks image(s) which are larger than screen size to fit.-b,--brightness xβ sets brightness tox(-50..50).-c,--contrast xβ sets contrast tox(-50..100).-g,--gamma xβ sets gamma tox(-50..100).-n,--no_filterβ disables filtering of images by extension. normallyqivwill only load images with an image extension such as.jpg,.png,.gif... but this option lets you load any file as an image. chaotic but iconic.-i,--no_statusbarβ disables statusbar.-I,--statusbarβ enables statusbar.-J,--showJPEGcommentsβ enables display of JPEG comments.-E,--showArtistNameβ enables display of artist (author) name (in JPEG images).--artist_ignore STRINGβ does NOT show artist name if it is equal to this string.-p,--transparencyβ enables transparency for transparent images.-a,--do_grabβ grabs the pointer in windowed mode.-G,--disable_grabβ disables grabbing the pointer/kbd in fullscreen mode. useful e.g. ifqivdisplays images on a display other than where it was invoked from. Use with caution!-v,--versionβ prints version information.-o,--bg_color xβ sets root background color to named colorxor 24 bit hex RGB triple in the format#RRGGBB.-C,--cycleβ changes cycle behaviour.qivwill exit after last picture has been shown.-s,--slideβ starts slideshow immediately. this can also be used for the desktop background (x/y/z).-r,--randomβ randomizes slideshow.-R,--readonlyβ disables the deletion feature.-S,--shuffleβ shuffles images (random order with next/previous functionality).-d,--delay xβ sets slideshow delay toxseconds.-f,--fullscreenβ uses fullscreen window on start-up.-P,--ignore_path_sortβ sorts all the image files by just their filename, ignoring the path.-M,--merged_case_sortβ sorts all the image files in merged-case order (AaBbCc...).-K,--mtime_sortβ sorts files by their modification time.-N,--numeric_sortβ a "smart" numeric sort that attempts to sort filenames with numbers in a logical manner. for instance:2.jpgsorts before10.jpg;1foo.jpgthrough10foo.jpgsorts after1bar.jpgthrough15bar.jpg(because "foo" comes after "bar"); andbaz0001.jpgthroughbaz0010.jpgsorts afterbaz01.jpgthroughbaz99.jpg(because the longer group of zero-padded digits indicates that they shouldn't be intermingled). she's smart, she's organized, she ate. π-D,--no_sortβ does not apply any sorting to the list of files.-T,--watchβ reloads the image if it has changed on disk.-A,--select_dir dirβ stores the selected files indir(default is.qiv-select).-q,--rotate xβ rotates each image90(x=1),180(x=2),270(x=3) degrees clockwise. ifx=11orx=13, the 90 or 270 degree rotation is conditional on the image fitting better if rotated. e.g. if the display is wide and a tall image is too tall to fit on the screen, it will be rotated.-l,--autorotateβ does NOT autorotate JPEGs according to EXIF rotation tag. default is ON.-X,--xineramascreen xβ uses monitorxas preferred screen.-Y,--source_profile xβ uses color profile filexas source profile for all images.-Z,--display_profile xβ uses color profile filexas display profile for all images.-B,--browseβ this option is useful when configuringqivto be used with a file manager.qivwill scan the directory of the clicked image and allow you to scroll through those images.--trashbinβ uses user's trash bin instead of.qiv-trash. undeleting an image will not work, open the trash bin and restore the image instead.--vikeysβ enables movement withh/j/k/l, vi-style (HJKLwill do whathjklpreviously did).
πΈ EXAMPLES πΈ
run these bestie, they're cute:
qiv -atsd2 *.jpg
qiv --maxpect --root image.png
qiv --maxpect --slide --random --delay=2 *
qiv --maxpect --scale_down --slide --delay=2 `find / *`
qiv --bg_color 0000FF --root image.png
qiv --bg_color blue --root image.png
π KEYS π
okay so the keys are the whole personality of this app. memorize them, no cap.
space/left mouse/wheel right next picture
backspace/right mouse/wheel left previous picture
PgDn/wheel down 5 pictures forward
PgUp/wheel up 5 pictures backward
q/ESC/middle mouse exit
0-9β runqiv-command <key> <current-img>^...<return>β runqiv-command ^... <current-img>where...can be any string?/F1β show keysF11/F12β in/decrease slideshow delay (1 second)aβ copy picture to.qiv-selectAβ artist (author) info on/offd/D/delβ move picture to.qiv-trash(-Rdisables this feature). (if started with--trashbinpicture is moved to user's trash bin)uβ undelete the previously trashed image (not working if--trashbinis used)+/=/mouse btn 9 β zoom in (+10% / +50% if above 100%)-/mouse btn 8 β zoom out (10%)eβ center mode on/offfβ fullscreen mode on/offmβ scale to screen size on/offtβ scale down on/offXβ cycle through monitorssβ slide show on/offpβ transparency on/offrβ random order on/offbβ-brightnessBβ+brightnesscβ-contrastCβ+contrastgβ-gammaGβ+gammaoβ reset brightness, contrast, gammahβ flip horizontallyvβ flip verticallykβ rotate rightlβ rotate leftjtx<return>β jump to image numberxjfx<return>β jump forwardximagesjbx<return>β jump backwardximagesenter/returnβ reset zoom, rotation and color settingsEβ display Exif informationiβ statusbar on/offJβ JPEG comments on/offIβ iconify windowwβ watch file on/offxβ center image on backgroundyβ tile image on backgroundzβ stretch image on background,β grab on/off<β turn on/off magnifying window- arrow keys/wheel β move image (in fullscreen mode)
- arrow keys/wheel+Shift β move image faster (in fullscreen mode)
- NumPad-arrow keys+NumLock β move image faster (in fullscreen mode)
π±οΈ MOUSE CONTROLS π±οΈ
- Button 1 β next picture
- Button 1 (hold down) & Mouse-Move β moving picture
- Button 2 β quit
- Button 3 β previous picture
- Wheel Up/Dn β move image vertically
- Wheel Left/Right β move image horizontally
- Extra mouse buttons (
8,9) β zoom out/in (10%)
ποΈ DELETING ποΈ
okay so important: qiv doesn't actually delete files. it creates a directory named .qiv-trash and moves the images to that directory. qiv maintains the directory structure of your "deleted" images. you can also undelete the most recently trashed images in reverse order, which moves each file back into its original directory. there is a limit to how many deletions can be undone, but it should be pretty large (currently 1024 items). sometimes this feature might be unwanted. to prevent accidents you can specify the -R option to disable this feature. if the --trashbin option is used qiv will move the deleted pictures to the user's trash bin. in that case undeleting with pressing u will not work. open the trash bin and restore the image instead. π
lowkey the whole thing is reversible-ish but bestie, don't be reckless with your photos. π
π²οΈ IMWHEEL SUPPORT π²οΈ
with XFree86 3.3.2+ server, using the wheel is seen as button 4 and 5 pressed. you only have to use "IMPS/2" or "Intellimouse" for protocol and add "ZAxisMapping 4 5 " in the "Pointer" section of XF86Config.
if imwheel (a program used to emulate key pressed when wheel is used for program not supporting wheel), the following two lines must be add to imwheel config file:
"qiv"
@Exclude
β¨ USER-DEFINED KEYBOARD ACTIONS β¨
okay bestie this is the part where qiv lets you drive ππ
The keys 0 through 9 will invoke qiv-command with the key you pressed as the first argument and the current image filename as the second argument. So yeah, you get ten whole custom slots and qiv will just hand it the key number and the file. iconic.
Real talk though: qiv-command is not distributed with qiv. it's not included, it's not bundled, it's to be supplied by the user. you have to write it yourself, bestie. the feature gets enabled by dropping a simple shell script in your command search path (for example, in the user's ~/bin directory) π«Ά
and like, it could literally look something like this:
#!/bin/sh
# Argument sanity checking eliminated for brevity
case $1 in
0|1|2|3|4|5|6|7|8|9) mkdir -f dir$1; mv "$fname" dir$1 ;;
*) echo "unrecognized command"; exit ;;
esac
heads up: that "Argument sanity checking eliminated for brevity" comment is doing a LOT of heavy lifting in that script. it's the original's own little disclaimer, not mine π
now here's the β¨magic trickβ¨ β if the first line of the output looks like NEWNAME=xxxxxxx then qiv thinks that the filename of the currently displayed image has changed to this new name and updates its internal filelist. so if your qiv-command renames files, qiv keeps up with you instead of getting confused. it's giving main character energy, no cap π₯
also please check out the example that came together with qiv, it's right there and it's helpful πΈ
π AUTHORS π
the absolute legends, the founding mothers and fathers of the vibe, the whole squad that made this happen β every single one of them, in order, no skips:
- Adam Kopacz <adam.k@klografx.de>
- Andy Spiegl <qiv.andy@spiegl.de>
- Darren Smith <darren.smith@juno.com>
- Pavel Andreev <paxvel@vumsoft.cz>
- Decklin Foster <decklin@red-bean.com>
- Holger Mueller <hmueller@hrzpub.tu-darmstadt.de>
- Scott Sams <sbsams@eos.ncsu.edu>
- Serge Winitzki <winitzki@geocities.com>
- Frederic Crozat <fcrozat@mail.dotcom.fr>
- Rutger Nijlunsing <rutger@wingding.demon.nl>
- John Knottenbelt <jak97@doc.ic.ac.uk>
- Danny <dannys@mail.com>
- Tomas Ogren <stric@ing.umu.se>
- Erik Jacobsen <erik@openix.com>
- Alfred Weyers <alfred@otto.gia.RWTH-Aachen.DE>
- Daniel <danad157@student.liu.se>
- Henning Kulander <hennikul@ifi.uio.no>
- Ask Bjoern Hansen <ask@valueclick.com>
- Adrian Lopez <adrian2@caribe.net>
- Y Furuhashi <y_furuhashi@ot.olympus.co.jp>
- Wayne Davison <wayned@users.sourceforge.net>
- Johannes Stezenbach <js@convergence.de>
- OEyvind Kolaas <pippin@users.sourceforge.net>
- Matthieu Castet <castet.matthieu@free.fr>
- Geoffrey T. Dairik <dairiki@dairiki.org>
- Leopoldo Cerbaro <redbliss@aliceposta.it>
- Heikki Lehvaslaiho <heikki@sanbi.ac.za>
- Larry Doolittle <ldoolitt@boa.org>
- S. Dobrev <sdobrev@sistechnology.com>
- Thomas Wiegner <wiegner@gmx.de>
- Barry deFreese <bdefreese@debian.org>
- Peter deWachter <pdewacht@gmail.com>
- Akos Pasztory <akos.pasztory@gmail.com>
thirty-two whole humans. a whole community. we love to see it π
π MISC π
the random-but-important section, aka the vibes checklist:
- qiv homepage:
http://qiv.spiegl.de/ - homepage of original author Adam Kopacz <adam.k@klografx.de> β
http://www.klografx.net/qiv/ - Mail bug, reports and comments to Andy Spiegl <qiv.andy@spiegl.de> π¬
- Sending a
SIGUSR1to qiv will cause the program to flip to next picture.SIGUSR2will move to previous. so you can yeet signals at it from the outside and it'll still land on beat π - This program is covered by the GNU GPL; see the file
COPYINGfor details π
fr fr, that GPL line is load-bearing β go read your COPYING file, bestie.
and that's a wrap on qiv(1), the fast image viewer for X, section 1, name qiv β that little footer line at the bottom of the page, the one that says qiv in the middle and qiv(1) on the right? that's it, that's the source and version and the date stamp of this whole masterpiece, and honestly it ate. slay, go look at some pictures π
π¦π
π¦ where this page comes from
- nixpkgs unstable: qiv 3.0.4
- ubuntu stonking: qiv 3.0.4-0.1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms