pqiv(1)
๐ pqiv(1) ๐
โจ NAME โจ
pqiv โ powerful quick image viewer ๐
๐ SYNOPSIS ๐
pqiv [options] [filename(s)...]
๐ฆ DESCRIPTION ๐ฆ
Okay bestie, so pqiv is a simple command line image viewer that got its whole vibe from qiv. It's highly customizable and it supports a whole variety of formats. It's giving "I just want to look at my pictures" but make it โจiconicโจ.
๐ OPTIONS ๐
-c,--transparent-backgroundโ Draws pqiv's window borderless and transparent. When you're in window mode, a mouse click is what activates and deactivates the window decorations. Fancy, lowkey.-d,--slideshow-interval=SECONDSโ In slideshow mode (which you get to by--slideshowor by hitting keysby default), it cycles through your images at this rate. Floating point values are supported, so like, use0.5and you're moving through images at a rate of two images per second. Speedy girlie ๐โ๏ธ-f,--fullscreenโ Starts in fullscreen mode. You can toggle fullscreen at runtime by pressingfby default. Main character energy, obviously.-F,--fadeโ Fades between images. See also--fade-durationfor the whole โจaestheticโจ.-i,--hide-info-boxโ Initially hides the info box. Whether the box is visible can be toggled by pressingiat runtime by default.--font=FONTโ Specify the Pango font string for the info box. Heads up: the font size will be scaled to the window. Not me getting resized ๐-l,--lazy-loadโ Normally pqiv processes all command line arguments before displaying its main window. With this option, the window is shown as soon as the first image has been found and loaded. Impatient? Valid. ๐ซถ-n,--sortโ Instead of storing images in the order they're given on the command line and found within directories, it sorts them. The default order is by name (natural order). See--sort-keyto change the order.-P,--window-position=POSITIONโ Sets the initial window position.POSITIONmay either bex,yโ screen coordinates, oroffโ to not position the window at all.
-r,--additional-from-stdinโ Reads additional filenames/folders from the standard input. โ ๏ธ This option conflicts with--actions-from-stdin.-s,--slideshowโ Starts in slideshow mode. Slideshow mode can be toggled at runtime by pressingsby default. Set it and forget it, bestie.-t,--scale-images-upโ Scales images up to fill the whole screen. This can be toggled at runtime by pressingtby default. See also--disable-scaling.-T,--window-title=TITLEโ Sets the title of the window. pqiv substitutes several variables intoTITLE:$BASEFILENAMEโ The base file name of the current file (e.g.image.png),$FILENAMEโ The file name of the current file (e.g./home/user/image.png),$WIDTHโ The width of the current image in pixels,$HEIGHTโ The height of the current image in pixels,$ZOOMโ The current zoom level,$IMAGE_NUMBERโ The index of the current image,$IMAGE_COUNTโ The total number of images.
The default is pqiv: $FILENAME ($WIDTHx$HEIGHT) $ZOOM% [$IMAGE_NUMBER/$IMAGE_COUNT].
-z,--zoom-level=FLOATโ Sets the initial zoom level as a floating point value, i.e.,1.0is 100%. This only applies to the first image โ other images are scaled according to the scale mode (see--scale-images-upand--disable-scaling) and the window size.-1,--command-1=COMMANDโ Binds the externalCOMMANDto key1. You can use2..9to bind further commands. The ACTIONS feature (see below) allows one to bind further keys to other commands.COMMANDis executed using the default shell processor.$1is substituted with the current file name. UnlessCOMMANDbegins with|or-, if$1is not present, the file name is appended to the command line.
If COMMAND begins with >, its standard output is displayed in a popup window.
If COMMAND begins with |, the current image is piped to its standard input, and its standard output is loaded as an image. This can be used to e.g. process images.
If COMMAND begins with -, a list of currently marked images is piped to its standard input.
--action=ACTIONโ Executes a specificACTIONwhen starting pqiv. The syntax is
command(parameter); command(parameter);
See the ACTIONS section below for available commands.
--actions-from-stdinโ Like--action, but reads actions from the standard input. See the ACTIONS section below for syntax and available commands. โ ๏ธ This option conflicts with--additional-from-stdin.--allow-empty-windowโ pqiv normally does not display the main window until one image has been found, and it quits when it cannot load any of the images anymore. With this option, both of those situations result in an empty pqiv window being shown. Empty but present, we love a stable queen ๐--auto-montage-modeโ Automatically enters montage mode if pqiv is started with more than one image.--background-pattern=PATTERNโ pqiv draws a checkerboard as transparent images' background. Use this option to alternatively use a white or black background. Valid values arecheckerboard,whiteandblack.--bind-key=KEY BINDINGโ Rebinds a key to an action. The syntax is
key sequence { command(parameter); command(parameter); }
A key sequence may be one or more characters, or special characters supplied as <name>, where name is a GDK key specifier or a mouse button (Mouse-1) or a scrolling direction (Mouse-Scroll-1). If you e.g. use a<Control>b, then a user must hit a followed by control + b to trigger the command. It is possible to bind a and ab as well. The action bound to a will then be slightly delayed to allow a user to hit b. The semicolon separating commands is optional. See ACTIONS below for available commands.
If you need to know the name of a key specifier, you can run xev and press the desired key. The name of the keysym will be printed in parentheses, preceded by keysym and a hexadecimal representation. An alternative is to run xmodmap -pk. The command outputs the symbolic names in parentheses. Or use the list at https://git.gnome.org/browse/gtk+/plain/gdk/gdkkeysyms.h.
pqiv groups key bindings into different contexts. Currently, montage mode is the only context other than the default one: in montage mode, different key bindings are used. To switch the context while binding key sequences, write
@MONTAGE { ... }
and insert the special key bindings within the curly braces.
--box-colors=FOREGROUND COLOR:BACKGROUND COLORโ Customize the colors used to draw the info box and montage mode borders. Colors can be specified either as a comma separated list of RBG-values in the range from 0 to 255 or as a hexvalue, e.g.,#aabbcc. The default value is#000000:#ffff00.--browseโ For each command line argument, additionally loads all images from the image's directory. pqiv will still start at the image that was given as the first parameter.--disable-backends=LIST OF BACKENDSโ Use this option to selectively disable some of pqiv's backends. You can supply a comma separated list of backends here. Non-available backends are silently ignored. Disabling backends you don't want will speed up recursive loading significantly, especially if you disable the archive backend. Available backends are:archiveโ generic archive file supportarchive_cbxโ*.cb?comic book archive supportlibavโ video support, works with ffmpeg as wellgdkpixbufโ imagespopplerโ PDFspectreโ PS/EPSwandโ ImageMagick, various formats, e.g. PSDwebpโ WebP format
--disable-scalingโ Completely disables scaling. This can be toggled at runtime by pressingtby default. See also--scale-images-up.--end-of-files-action=ACTIONโ If all files have been viewed and the next image is to be viewed โ either by the user's request or because a slideshow is active โ pqiv by default cycles and restarts at the first image. This parameter can be used to modify this behaviour. Valid choices forACTIONare:quitโ Quit pqiv,waitโ Wait until a new image becomes available. This only makes sense if used with e.g.--watch-directories,wrap(default) โ Restart at the first image. In shuffle mode, choose a new random order,wrap-no-reshuffleโ Aswrap, but do not reshuffle in random mode.
--enforce-window-aspect-ratioโ Tells the window manager to enforce the aspect ratio of the window. If this flag is set, then a compliant window manager will not allow users to resize pqiv's window to a different aspect ratio. This used to be the default behaviour, but window managers tend to have bugs in the code handling forced aspect ratios ๐ญ. If the flag is not set and the aspect ratios of the window and image do not match, then the image will be still be drawn with the correct aspect ratio, with black borders added at the sides.--fade-duration=SECONDSโ With--fade, makes each fade this long. Floating point values are accepted, e.g.0.5makes each fade take half a second. Soft launch โจ--low-memoryโ Tries to keep memory usage to a minimum. pqiv by default e.g. preloads the next and previous image to speed up navigation and caches scaled images to speed up redraws. This flag disables such optimizations.--max-depth=LEVELSโ For parameters that are directories, pqiv searches recursively for images. Use this parameter to limit the depth at which pqiv searches. A level of0disables recursion completely, i.e. if you call pqiv with a directory as a parameter, it will not search it at all.--negateโ Displays negatives of images. You can toggle this feature at runtime by pressingn. Inverted girlie era ๐--shuffleโ bestie, this is the chaos mode ๐ it shows your files in a random order. Lowkey important: it conflicts with--sort, so pick one, you can't have both. Once every image has been shown, the files get reshuffled again โ but within one single cycle the order stays stable, so it's not reshuffling mid-vibe. You can turn that reshuffling off with--end-of-files-actionif you want. And at runtime you can hit Control + R (that's the default binding) to toggle shuffle mode on and off, and here's the cute part: it retains the shuffled order, meaning you can turn shuffle off, look at a few images, turn it back on, and it picks up right after the last image you saw in shuffle mode. obsessed actually โจ--show-bindingsโ prints out all the keyboard and mouse bindings and then exits. It shows them in the exact format that--bind-keyaccepts, so it's giving you copy-paste-able receipts. Check out--bind-keyand the ACTIONS section for what all those actions actually do. ๐--sort-key=PROPERTYโ tells pqiv which key to sort by. The supported values for PROPERTY are:nameโ sorts by filename in natural order, so likeabc32dcomes beforeabc112d, butb1comes after both of them. iykyk, it's not just plain alphabetical ๐mtimeโ sorts by file modification date. โฐ
--thumbnail-size=WIDTHxHEIGHTโ resizes your thumbnails in montage mode. The default is128x128. ๐ธ--thumbnail-preload=COUNTโ preloads COUNT thumbnails that sit adjacent to the current image, while you're displaying images or while they're selected in montage mode. Great for making montage mode snappier, but heads up: it will lead to high CPU loads. speed vs. your fan spinning, your choice bestie ๐ญ--thumbnail-persistence=DIRECTORY/STATUSโ saves (persists) thumbnails to disk so you don't have to regenerate them every single time. The easiest way to use it is just passing a value ofyes. Thumbnails then get stored according to the Thumbnail Managing Standard, inside$XDG_CACHE_HOME/thumbnails/*. The standard only allows storing thumbnails in the sizes128x128,256x256,512x512and1024x1024โ exclusively โ and it does not say how to store thumbnails for files inside archives or multi-page documents. Any thumbnails that break those rules get stashed in a specialx-pqivsubfolder instead. Passstandardif you want to store only standard-compliant thumbnails. If you don't use this option at all, then thumbnails won't be loaded from the cache either โ every thumbnail gets regenerated each time you use montage mode. ๐ฎโ๐จ A value ofread-onlylets you load thumbnails but never store them, andread-onlyis the default. If you passlocal, pqiv stores thumbnails in a subfolder called.sh_thumbnails, relative to the images, as specified by the Thumbnail Managing Standard. Your third option is to hand it the name of a directory, and pqiv will use that directory to store thumbnails in. > The folder must be given as an absolute path โ relative paths do not work. Also note that any folder not named.sh_thumbnailswill be considered in--watch-directories. And one more thing: even while pqiv stores thumbnails to another folder, it will still try to load them from the standard folders as well. ๐ซถ--recreate-windowโ a workaround for window managers that just don't handle resize requests correctly ๐ Instead of resizing, pqiv recreates the window every time the image changes. Note it does not redraw images when only the zoom changes.--scale-mode-screen-fraction=FRACTIONโ controls how much screen space pqiv uses when it auto-scales images outside of fullscreen mode. Defaults to0.8(that's 80%). โจ--wait-for-images-to-appearโ if no images are found in the directories you gave on the command line, instead of just exiting, pqiv waits for some to show up. This option only works in conjunction with--lazy-loadand--watch-directories, so don't expect it to do anything solo. โญ--watch-directoriesโ makes pqiv watch every directory you passed as a parameter for new files, adding them as they appear. In--sortmode, files get sorted into the correct position; otherwise they're just appended to the end of the list. See also--watch-files, which handles what happens when the image you're currently viewing changes. ๐--watch-files=VALUEโ watches files for changes on disk. Valid choices for VALUE are:on(default) โ watches files for changes, reloads upon a change, and skips to the next file if a file is removed.changes-onlyโ watches files for changes and reloads upon a change, but does nothing if a file is removed.offโ does not watch files for changes at all. ๐
Note that a file that has been removed will still be removed from pqiv's image list when it has been unloaded, i.e. if a user moves more than one image away from it. (See also --low-memory.)
โจ ACTIONS โจ
okay bestie, so actions are literally the building blocks for controlling pqiv ๐. The syntax for entering an action is:
COMMAND(PARAMETER)
where COMMAND is one of the commands described below and PARAMETER is the command's parameter. Strings are not quoted. Instead, the closing parenthesis must be escaped by a backslash if it is used in a string. E.g., command(echo \)) will output a single ). The available commands are:
add_file(STRING)โ Add a file or directory. ๐๏ธanimation_step(INT)โ Stop an animation, and advance by the given number of frames plus one. โฉanimation_continue()โ Continue a stopped animation. โถ๏ธanimation_set_speed_relative(DOUBLE)โ Scale the animation's display speed. ๐animation_set_speed_absolute(DOUBLE)โ Set the animation's display speed scale level to an absolute value.1.0is the animation's natural speed. ๐โโ๏ธbind_key(STRING)โ Override a key binding. Remember to quote closing parenthesis inside the new definition by prepending a backslash. Useful in conjunction withsend_keys(STRING)to set up cyclic bindings. ๐clear_marks()โ Clear all marks. ๐งนcommand(STRING)โ Execute the given shell command. The syntax of the argument is the same as for the--command-1option. ๐ปflip_horizontally()โ Flip the current image horizontally. โ๏ธflip_vertically()โ Flip the current image vertically. โ๏ธgoto_directory_relative(INT)โ Jump to the n'th next or previous directory. ๐goto_earlier_file()โ Return to the image that was opened before the current one. โชgoto_file_byindex(INT)โ Jump to a file given by its number. ๐ขgoto_file_byname(STRING)โ Jump to a file given by its displayed name. ๐ท๏ธgoto_file_relative(INT)โ Jump to the n'th next or previous file. โญ๏ธgoto_logical_directory_relative(INT)โ Jump to the n'th next or previous logical directory. Any multi-page documents, such as PDFs or archive files, are regarded as logical directories. Directories within archive files, recognizable by a slash in the archive member's file name, are regarded as directories too. Basically, the rule is that two images are in the same logical directory if no character following the common prefix of their file names in either name is a slash or a hash symbol. ๐งhardlink_current_image()โ Hardlink the current image to./.pqiv-select/, or copy it if hardlinking is not possible. ๐jump_dialog()โ Display the jump dialog. ๐ชmontage_mode_enter()โ Enter montage mode, a view for interactive selection of images. ๐ผ๏ธmontage_mode_follow(KEYS)โ Set up "follow" mode: Bind a sequence composed of the keys inKEYSto each visible thumbnail, such that typing that sequence moves the cursor to said position. At the same time, turn on binding overlays, increase the keyboard timeout, and revert everything after an image has been selected. ๐montage_mode_return_proceed()โ Leave montage mode, and goto the currently selected image. โmontage_mode_return_cancel()โ Leave montage mode, and return to the last image viewed before entering montage mode. โฉ๏ธmontage_mode_set_shift_x(INT)โ Set the horizontal cursor position in montage mode to an absolute value, indexed from 0. โก๏ธmontage_mode_set_shift_y(INT)โ Set the vertical cursor position in montage mode to an absolute value, indexed from 0. โฌ๏ธmontage_mode_set_wrap_mode(INT)โ Adjust how wrapping around edges works when shifting the cursor position in montage mode: The default,1, is to wrap around rows but not around the whole image list. Set this to0to disable wrapping entirely. A value of2enables full wrapping. ๐montage_mode_shift_x(INT)โ Shift the cursor in montage mode in horizontal direction. Shifts wrap around edges to the adjacent vertical lines, but not around the end of the list back to its beginning. โก๏ธmontage_mode_shift_y(INT)โ Shift the cursor in montage mode in vertical direction. โฌ๏ธmontage_mode_show_binding_overlays(INT)โ Disable (by using a parameter value of0) or enable (by using any other value) follow mode. In follow mode, pqiv will draw mnemonics on top of each thumbnail that is reachable by typing a key (combination). Use this to realize keyboard navigation similar to vimperator/pentadactyl/vimium/etc. โจ๏ธmontage_mode_shift_y_pg(INT)โ Shift the cursor in montage mode in vertical direction by n pages. ๐move_window(INT, INT)โ Move pqiv's window to the specified coordinates. Negative values center the window on the current monitor. ๐ชnop()โ Do nothing. Can be used to clear an existing binding. ๐ซnumeric_command(INT)โ Execute the n'th command defined via--command-1etc. ๐ขoutput_file_list()โ Output a list of all loaded files to the standard output. ๐quit()โ Quit pqiv. ๐reload()โ Reload the current image from disk. ๐remove_file_byindex(INT)โ Remove a file given by its number. ๐๏ธremove_file_byname(STRING)โ Remove a file given by its displayed name. ๐๏ธreset_scale_level()โ Reset the scale level to the default value. ๐rotate_left()โ Rotate the current image left by 90ยฐ. โบrotate_right()โ Rotate the current image right by 90ยฐ. โปsend_keys(STRING)โ Emulate pressing a sequence of keys. This action currently does not support special keys that do not have an ASCII representation. Useful in conjunction withbind_key(STRING)to set up cyclic key bindings. โจ๏ธset_cursor_visibility(INT)โ Set the visibility of the cursor;0disables, other values enable visibility. ๐set_cursor_auto_hide(INT)โ Automatically show the cursor when the pointer moves, and hide it after one second of inactivity. Set to0to disable this feature or any other value to enable it. Note that this enables pointer movement events, which might slow down pqiv if it is used over slow network links. ๐ฑ๏ธset_fade_duration(DOUBLE)โ Set the duration of fades between images. In contrast to the command line option, this action also implicitly enables fading. Set the duration to zero to disable the feature. ๐ซ๏ธset_interpolation_quality(INT)โ Set the interpolation quality for resized images. Options are:0to cycle between the different modes,1for an automated choice based on the image size (small images use nearest interpolation, large ones Cairo'sgoodmode),2forfast,3forgoodand4forbest. ๐จset_keyboard_timeout(DOUBLE)โ Set the timeout for key sequence input. For example, if you bind something toaand another action toab, pqiv will give you by default half a second to enter thebbefore assuming that you intended to type onlya. Use this action to change this value. โฑ๏ธset_scale_level_absolute(DOUBLE)โ Set the scale level to the parameter value.1.0is 100%. See also--zoom-level. ๐set_scale_level_relative(DOUBLE)โ Adjust the scale level multiplicatively by the parameter value. ๐set_scale_mode_fit_px(INT, INT)โ Always adjust the scale level such that each image fits the given dimensions. ๐set_scale_mode_screen_fraction(DOUBLE)โ Adjust how much of the available screen space is used for scaling the window outside fullscreen mode. Defaults to0.8. This also affects the size of the montage mode window. ๐ฅ๏ธset_shift_align_corner(STRING)โ Align the image to the window/screen border. Possible parameter values are the cardinal directions, e.g.NEwill align the image to the north east, i.e. top right, corner. You can prepend the parameter by an additionalCto perform the adjustment only if the image dimensions exceed the available space, and to center the image elsewise. ๐set_shift_x(INT)โ Set the shift in horizontal direction to a fixed value. โ๏ธset_shift_y(INT)โ Set the shift in vertical direction to a fixed value. โ๏ธset_slideshow_interval_absolute(DOUBLE)โ Set the slideshow interval to the parameter value, in seconds. โฒ๏ธset_slideshow_interval_relative(DOUBLE)โ Adjust the slideshow interval additively by the parameter value. See also--slideshow-interval. โฒ๏ธset_status_output(INT)โ Set this to non-zero to make pqiv print status information for scripts to stdout, once upon activation and then whenever the user moves between images. The format is compatible with shell variable definitions. Variables currently implemented areCURRENT_FILE_NAMEandCURRENT_FILE_INDEX. An output sweep always ends with an empty line. ๐คset_thumbnail_preload(INT)โ Change the amount of thumbnails to be preloaded. A value of zero disables the feature. ๐ผ๏ธset_thumbnail_size(INT,INT)โ Change the size of thumbnails. The order of the arguments is width, then height. Thumbnails are always scaled such that no side is larger than this limit. ๐shift_x(INT)โ Shift the current image in x direction. โ๏ธshift_y(INT)โ Shift the current image in y direction. โ๏ธtoggle_background_pattern(INT)โ Toggle between the different background patterns:0to toggle,1for checkerboard pattern,2for black,3for white. ๐toggle_fullscreen(INT)โ Toggle fullscreen mode:0to toggle,1to go to fullscreen,2to return to window mode. ๐ฅ๏ธtoggle_info_box()โ Toggle the visibility of the info box. โน๏ธtoggle_mark()โ Toggle the current image's mark. โญtoggle_negate_mode(INT)โ Toggle negate (color inversion) mode:0to toggle,1to enable,2to disable. ๐toggle_scale_mode(INT)โ Change the scale mode: Use1to disable scaling,2for automated scaledown (default),3to always scale images up,4to maintain the user-set zoom level, and5to maintain the window's size.0cycles through modes 1-3. ๐toggle_shuffle_mode(INT)โ Toggle shuffle mode. Use0to cycle through the possible values,1to enable shuffle, and any other value to disable it. ๐toggle_slideshow()โ Toggle slideshow mode. ๐๏ธ
โจ๏ธ DEFAULT KEY BINDINGS โจ๏ธ
Okay bestie, these are the keys that just work the second you open pqiv. No setup, no config, just vibes ๐
Backspace/Spaceโ previous/next file. The classic. The moment.ctrl-aโ links the current image into./.pqiv-select/, or copies it if hardlinking isn't possible. (It tries the link first, bestie, it's efficient like that โจ)fโ toggle fullscreen mode. Main character energy, activate.h/vโ flip the image horizontally or vertically. Mirror mirror ๐ชk/lโ rotate the image right or left.iโ toggle visibility of the info box.jโ pops up a dialog with a list of all your files for quick selection. No scrolling in the file manager, we're doing it in pqiv ๐mโ toggle montage mode, which is an interactive image selection mode. Use the cursor keys or your mouse to select an image, andReturnto go back to single image view. Hitgto quickly navigate to a thumbnail. It's giving contact sheet ๐oโ toggle a mark on an image. Usectrl-Rto reset all marks. This one's used together with commands starting with a-.qโ quit pqiv. Bye bestie ๐ญrโ reload the current image.sโ toggle slideshow mode.tโ toggle the scale mode; it cycles between scaling all images up, scaling large images down, and no scaling at all.ctrl-tโ maintain the user-set scale level.mod-tโ maintain the window's size.Plus/Minusโ zoom. In and out, in and out ๐Period,ctrl-Periodโ stop, single-step and continue animated images.mod-Plus,mod-Minusโ alter animation speed.ctrl-rโ toggle shuffle mode. Chaos, but make it aesthetic ๐ctrl-pโ go to the image you were viewing before the current one. The way that history works ๐ซถctrl-Space,ctrl-Backspaceโ go to the next/previous logical directory.ctrl-Plus,ctrl-Minusโ alter the slideshow interval.bโ toggle the background pattern for transparent images.nโ toggle negate ("negative") mode.- Mouse buttons (fullscreen) โ goto the next and previous files.
- Mouse drag (fullscreen) โ move the image.
- Mouse drag with right button (fullscreen) โ zoom.
- Arrow keys โ move the image.
Heads up: this list omitted some advanced default bindings, no cap. The descriptions of the actions above are annotated with those bindings, so go look there. You can also run pqiv --show-bindings to display a complete list, and honestly? Iconic behaviour.
โ๏ธ CONFIGURATION FILE โ๏ธ
Upon startup, pqiv parses the file ~/.config/pqivrc. It should be an INI-style key/value file with an options section. All long form parameters are valid keys. To set a boolean flag, set the value to 1. A set flag inverts the meaning of the associated parameter โ so like, if you set fullscreen=1, then pqiv will start in fullscreen mode unless you supply -f upon startup. Sneaky, right? ๐
As an example,
[options]
fullscreen=1
sort=1
command-1=|convert - -blur 20 -
will make pqiv start in fullscreen by default, sort the file list and bind a blur filter to key 1. The -f flag on the command line will make pqiv not start in fullscreen, and -n will make it not sort the list. Flip the flip, bestie โจ
You can place key bindings in the format of the --bind-key parameter in a special [keybindings] section. E.g.,
[keybindings]
q { goto_file_relative(-1); }
w { goto_file_relative(1); }
x { send_keys(#1); }
<numbersign>1 { set_scale_level_absolute(1.); bind_key(x { send_keys(#2\); }); }
<numbersign>2 { set_scale_level_absolute(.5); bind_key(x { send_keys(#3\); }); }
<numbersign>3 { set_scale_level_absolute(0.25); bind_key(x { send_keys(#1\); }); }
will remap q and w to move between images, and set up x to cycle through 100%, 50% and 25% zoom levels. Look at her go ๐
Similarly, you can also specify (multiple) actions to be executed each time pqiv is started, in a section called [actions].
For backwards compatibility with old versions of pqiv, if the file does not start with a section definition, the first line will be parsed as command line parameters. Nostalgia era fr fr ๐ฆ
You may place comments into the file by beginning a line with ; or #. Comments at the end of a line are not supported โ full-line comments only, bestie, don't try it.
Other supported paths for the configuration file are ~/.pqivrc, /etc/xdg/pqivrc and /etc/pqivrc. pqiv will use whichever file it finds first. You can use the environment variable PQIVRC_PATH to override the configuration file. Your config, your rules ๐
๐ EXAMPLES ๐
Let's get practical, bestie. Real commands, real results:
pqiv --bind-key="a { goto_file_byindex(0) }" --bind-key='c {
command(echo -n $1 | xclip) }' --sort foo bar.pdf
Rebinds a to go back to the first image, c to store the path to the current image to the clipboard using xclip, and loads all files from the foo folder and bar.pdf, sorted. Clipboard game: unmatched ๐โจ
pqiv --slideshow --watch-directories --end-of-files-action=wait
--slideshow-interval=0.001 test
Load all files from the test folder in a slideshow progressing very fast, and in the end wait until new files become available. This effectively displays new images as they appear in a directory and is useful e.g. if you output images from a script that you later intent to combine into a movie and wish to monitor progress. Basically a live progress bar but make it โจ pictures โจ
pqiv --slideshow --allow-empty-window --watch-directories
--wait-for-images-to-appear --lazy-load test
Set up a slideshow that displays all images from the test folder such that it is possible to remove all images from the directory and place new ones into it afterwards without pqiv exiting. She simply cannot be killed ๐๐ฅ
echo "output_file_list(); quit()" | pqiv --actions-from-stdin test
Output a list of all files from the test folder that pqiv can handle and quit. One and done, no notes ๐
๐ BUGS ๐
Please report any bugs on github, on https://github.com/phillipberndt/pqiv
(Not me asking you to file a good issue with reproduction steps... okay yes, me asking that ๐)
๐ AUTHOR ๐
Phillip Berndt (phillip dot berndt at googlemail dot com)
And that's the whole page, bestie โ pqiv version 2.13.3, dated November 2025, section pqiv(1). You read all of it, which means you're officially built different ๐ซถ๐ Go look at some pictures.
๐ฆ where this page comes from
- arch rolling: pqiv 2.13.3-4 ยท GPL-3.0-only
- nixos 26.05: pqiv 2.13.3
- nixpkgs unstable: pqiv 2.13.3
- ubuntu resolute: pqiv 2.13.3-1build1
- ubuntu stonking: pqiv 2.13.3-1build1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms