homeBlog | Tags | Archives | Projects | Stats | Contact

Viewer2 Manual

Sep 17, 2009



Dragging images around will move them and double clicking will open them. If you drag with the right mouse button, Viewer2 will select a group (closely clumped images) and drag them. In most cases doing something with the right button treats images as a group and left button treats them as individual images.

Drag with the middle mouse button to navigate around, mouse wheel zooms in and out. Navigating the history with Alt + Left/Right works just as in a regular web browser. Drawing with the left mouse button will select with the lasso, you can force this by holding down Shift.

Clicking on the left and right edges of the screen opens the file list and the tag list. The lists work just as any list you would expect, that is you can select multiple images if you hold down Ctrl while left clicking and so on. Mousewheel scrolls the selected menu. Clicking on the edge again closes the list. Move the mouse on the upper edge of the screen to open the toolbar menu. Most of the keyboard stuff below is also usable by clicking the toolbar buttons.

Use Ctrl + O to order selected images in a neat spiral. If you have grouped images (or created groups by sorting with Alt + N/D/T), use Ctrl + Shift + O to order all images in multiple spirals. If you have ordered images by hand and want to order them while preserving the manual groups, you have to press Alt + G before Ctrl + Shift + O.

The image thumbnails have little icons on their right bottom corner. Red tag means the file has no tags, yellow tag means the file has tags but all other files in current view have the same tags (i.e. the tags are no individual) and green means the tags are good enough to separate the file from the other files in current view. The heart icon of course means the image is a favorite as favorited using the button on the toolbar.


The viewer works similarly to the browser. Use middle mouse button to drag the view around, mousewheel to zoom and left button to select areas you want to zoom into. Right click activates the film strip view that shows neighboring images and allows you to navigate by dragging the mouse.


Fast Search

Fast Search uses indexed word lists to speed up the search. To use Fast Search, you need to have the indexing enabled (the default). As a bonus, Fast Search will find files based on text in the metadata provided by IPTC such as image captions, keywords and so on. Another bonus is fuzzy searching that will find similar words.

Word indexing

You can use dbtool to rebuild the indexes in case the search is not working correctly. You can also update the indexes manually if you have AutoExtractWords turned off. dbtool extractwords updates the index and dbtool rebuildwords completely rebuilds the indexes. Note that it can take a big while when indexing large amounts of files (super fast searching is worth it).

The default settings make Viewer2 index only words that are between 3 and 25 characters in length. You can tweak the settings if you like (MinWordLength, MaxWordLength), but you must rebuild the index after that. More words equals slower search, less words equals less results.

Deep Search

Deep Search is same as the search in old versions. It is slow but will find all the files, eventually. It won’t search the metadata Fast Search searches.


The search works like most web searches do, i.e. separate search terms with spaces and text inside quotes is considered exact. You can use wildcards (? and *). searching for cat is the same as searching for “*cat*”.

Some examples:

  • cat cute – will search for images with the words ‘cat’ and ‘cute’ in the filename, any associated text or tags, even if they are inside a longer word
  • name:cat – will search for images with the word ‘cat’
  • “cat” “cute” – will search for images with the exact tags, if an image has the tags ‘hepcat’ and ‘acute’ it will not match.
  • “cat001.jpg” – will match all images with the exact filename or tag ‘cat001.jpg’
  • cat -cute – searches for all images with the text ‘cat’ but not the text ‘cute’
  • path:2007 cat – matches all images with the word cat in the tags or the filename in any directory whose name has the word 2007
  • path:”2007*” cat – matches all images with the word cat in the tags or the filename in any directory whose name beings with 2007
  • -tag:* cat – matches all images with no tags and the word cat in the filename
  • cat OR dog – matches all images that match “cat” or “dog”
  • date:lastweek – matches all images whose date is earlier than last monday but newer than the monday before that. All valid words for date: are: today, yesterday, thisweek, lastweek, thismonth, lastmonth, thisyear and lastyear. Other valid dates (use period, minus or slash as the separator): date:2007 (the year 2007), date:1-12-2006 (December 1st, 2006 NOTE: 2007-31-1 and 2007-1-31 will be recognized as January 31st, 2007 for obvious reasons), date:1/1 (January 1st this year), date:2007.6 (June 2007)
  • viewed:lastweek – matches all images viewed last week. Look above for valid date formats. Note: you need to enable KeepAccurateLogs (see below for help how to edit the options).
  • size:small – shows images that are small. Valid words for size: tiny, small, medium, large, huge, ultra
  • top:views results:40 – show the top 40 based on views. If you combine a viewed: query with top:, the query is based on views during that time.
  • is:favorite – the image is flagged as favorite
  • ~word – look for words that are similar to “word”. Works only in Fast Search and needs word indexing to be enabled
  • added:today – the image was added to the database on the specified date


You can tag images by pressing Ctrl + T while viewing the image or having some images selected in the browser view. Enter the tags to the message box that will then appear. Separate multiple tags with commas. If you open the tag list while the add tag box is open, you can add tags from the list by left clicking on them.

Open the tag list by clicking on the right edge of the screen. In the list you can see the tags the current image(s) have, the most popular tags and the most cross referenced tags (words like ‘cute’ will appear here because images are likely to have them among other tags, e.g. ‘kitten’ and ‘cute’ or ‘puppy’ and ‘cute’. It is less likely you will apply both ‘puppy’ and ‘kitten’ to the same image). Add tags from the list to images by dragging them on images: left drag adds tags to one image, right drag will apply them to a group of images. Double click on a tag to view all images with the tag. Or, select a few tags and double click on one of them. This will view all images with all the selected tags.

To remove tags from images, first select them in the browser and open the tag list. All tags that the selected images have will be highlighted in red. Deselect (Ctrl + Left click) the tags you want to leave to the images and press delete. You can also do this while viewing an image.

You can make aliases to tags by adding both tags and dragging the tags on each other in the list. The draggee will become the alias for the tag you drag the tag on. Every time you add the alias, it will actually add the original tag.

For quickly tagging image as a favorite, use the heart icon in the menu. This is the same as tagging image as .favorite.

Typical tagging scenario

Let’s imagine you have a screenful of untagged and tagged images. First, press Alt + T to sort images by tags. With the mouse, click on the left edge of the screen to open the file list. You should see a group of files in the beginning of the list marked as having no tags. Right click on the list to select a whole group of images, and press Ctrl + C to copy the files on the clipboard. Press Ctrl + N to open a new view and paste the images with Ctrl + V. Now you have a nice, clean workspace with no unwanted files.

Next, you want to group the files into smaller subgroups so you can easily assign tags to a bigger bunch of images. In most cases a similar group of images have similar dates that files have been modified at (for example, you would download a series kitten images in the afternoon and then some tiger pictures a bit later in the evening). Press Alt + D to sort and group images by the date. Next, press Ctrl + Shift + O to automatically sort all files into smaller subgroups. Most likely, those files downloaded in the afternoon are in a different group than some other files. It is because the afternoon files have modify dates that never are separated except by a few minutes and there is a big gap between afternoon and evening.

You can also sort by path, name or resolution.

Now, simply start dragging tags on files. Open the tag list by clicking on the right edge of the screen. If you have tagged files earlier, you will see some popular tags in the list. If not, you have to select an image and press Ctrl + T and type in the tag. When the tag is in the list, you can easily drag it on other images. Since the images are in groups, you should drag with the right mouse button to apply the tags on a group of images. See above how to remove tags if you make a mistake.

Adding complete directories

Use the included program dbtool to add directories recursively with any tags you like. E.g., if you installed Viewer2 in the directory c:\Program Files\Viewer2, click Start -> Run… and type in "c:\Program Files\Viewer2\dbtool" add "c:\my photos\kittens" cats cute. This will add everything in the specified directory and add the tags cats and cute to each image.

Automated tagging

First, you need to add valid tags to the database. You can do this by tagging images in the program or with dbtool (e.g. dbtool synonym "bear" "ursus" "godless killing machine" which makes tags “ursus” and “godless killing machine” point to “bear”). Then after adding the directories with dbtool or simply while browsing, do dbtool extract to check every filename in the database for known tags (use extractiptc to look in the IPTC metadata as well). dbtool -fuzzy extract looks for the tags harder and dbtool -fuzzy -prompt extract also asks if there’s an ambiguous case.

Syncing tags and IPTC keywords

This feature is experimental.

Synchronizing IPTC keywords and Viewer2 tags is disabled by default, because it physically modifies image files. You can enable it in the configuration by ensuring the option “Synchronize tags and IPTC keywords” is checked. Viewer2 will then tag every new image with IPTC keywords and set the IPTC keywords to the tags the image has in Viewer2.

The old method (deprecated)

First, you need to enable SyncIPTC in the config (set it to a non-zero value). This will make Viewer2 automatically add all IPTC keywords as tags when adding images to the database. Note: this is not mandatory, if you only want to export tags, you don’t have to enable it.

Secondly, you need to use dbtool to export tags (Viewer2 won’t write the keywords in the header automatically, for now).

dbtool -rewriteiptc exportiptc c:\pictures

This will add the tags as IPTC keywords for every file in the specified directory (-rewriteiptc tells dbtool to remove all keywords that do not match tags, leave it out to add tags and leave in the existing keywords). These files will be physically different from the original files. This confuses Viewer2 because it relies on the file data that is now changed and it will think they’re completely new images.

In short, this means if you have two identical files in the database (Viewer2 would see them as identical, thus they would share all the tags) and write IPTC data to the other file, they will be different from Viewer2′s viewpoint. If you then add tags to either file, the other file will not be updated.

I recommend users to do this:

  1. Copy the files you want to update with IPTC keywords to a temporary directory

  2. Write the IPTC keywords with dbtool. E.g.

    dbtool add C:\yourtempdir
    dbtool -rewriteiptc C:\yourtempdir
  3. Upload the files on Flickr or whatever you want to do

  4. Delete the modified files

This way you won’t have two copies of the same file in the system.

Of course, if you are ready for some manual work, you shouldn’t be worried about duplicate files.


I have included a few ways to do the same action because then it is easier to bind the keypresses to the mouse. E.g. I like to make my mouse emit Ctrl + Left when I tilt the wheel to the left and Ctrl + Right when I tilt it to the right. That way I can browse images nicely with just the mouse.


Mouse wheel / Keypad plus / Keypad minus: Zoom

Backspace / Page Up / Ctrl + Left: Previous image

Space / Page Down / Ctrl + Right: Next image

Cursor keys: Move around

Return: Switch between the browser and the image viewer

Alt + F4 / Ctrl + Q / Left click the top left corner of the screen: Quit

Escape Generally exit and close things

Browser mode

Left click on left edge of the screen: Show file list

Left click on right edge of the screen: Show tag list

Middle click: Move around

Left click: Select an image / start lasso selection

Ctrl + Left click: Add an image to the selected images

Left drag: Move images

Shift + left drag: Force lasso selection

Ctrl + Shift + left drag: Add lasso selection to the selected images

Right drag: Select and drag a group of images (see below)

Right click on filelist: Select group

Double click: View image or all currently selected images

Alt + Left: Previous view in history

Alt + Right: Next view in history

Alt + C: Sort by color (press Alt + C multiple times to adjust fuzziness)

Alt + D: Sort by date (press Alt + D multiple times to adjust fuzziness)

Alt + G: Sort by group

Alt + L: Sort by forced links

Alt + N: Sort by name (press Alt + N multiple times to adjust fuzziness)

Alt + O: Sort by original order (e.g. the order of images returned from a query, useful with top:views query)

Alt + P: Sort by path

Alt + R: Sort by resolution

Ctrl + A: Select all

Ctrl + C: Copy selected images

Ctrl + D: Select none

Ctrl + E: "Explore", i.e. go to the directory of the selected image

Ctrl + F: Fast Search files

Ctrl + Shift + F: Deep Search files

Ctrl + G: Go to saved view

Ctrl + Shift + F: Find files with matching tags

Ctrl + I: Invert selection

Ctrl + L: Force link between selected files

Ctrl + N: New view

Ctrl + O: Order selected images in one group

Ctrl + Shift + O: Order images in groups

Ctrl + P: Prefix selected files (renames physical files!)

Ctrl + R: Rename view (for example, save a search result with a different name)

Ctrl + S: Zoom into all files (fit files on screen)

Ctrl + Shift + S: Zoom into selected files

Ctrl + T: Tag selected files, separate tags with commas

Ctrl + V: Paste selected images (to an empty view, perhaps? WIP)

Delete: If tag list is not open delete selected files from the view, if the list is open the selected tags will be removed from the selected images

Ctrl + Delete: Physically delete selected files

F8: Lock/unlock image positions in browser

F9: Edit currently selected images’ IPTC data. If multiple images are selected, the entered data will be set to each image.

Viewer mode

Double click: Switch to browser mode

Left drag: Move around

Right drag: Activate film strip browser

Home: Zoom image to fit to screen

End: Zoom image to original size

Ctrl + T: Tag currently viewed file (Experimental: separate tags with commas)

Configuration options

To change some of the settings Viewer2 uses, run the configuration tool provided in the installer. You can find it in the installation directory and in the Start menu. The ‘Tweaking’ page contains some options that are not commonly used. Here are the descriptions for some of them:

FullScreen If non-zero, Viewer2 will not use the desktop resolution and change to the resolution specified by ResolutionX and ResolutionY. Also, BitDepth controls the color depth of the new resolution.
FancyBrowserLimit If the number of images in the view is more than the value of this option, Viewer2 will turn off the nice browsing options such as the dodging thumbnails. This is because a lot of images leads into a huge performance loss.
FilmStripPos The position of the film strip browser. A value of 1.0 will position the browser on the bottom of the screen, 0.0 will position the browser in the middle. Negative values will make the browser appear near the top of the screen. The value is a percentage, so 0.5 would make the browser appear between where it would be if the values were 0.0 and 1.0.
FilmStripRows Number of rows in the film strip view.
HotSpotSize The width of the area in which you have to click to open the file and tag list. Also the width of the area that opens the menu when hovered on.
Inertia The inertia of everything, less means everything will be smoother but slower.
IndexOnLoad If non-zero, Viewer2 will start loading thumbnails immediately when you open an image. If zero, Viewer2 will wait until you exit the image viewing mode and start browsing the images.
MaxMemoryUsage Viewer2 tries to keep the memory usage below this (in megabytes). This only affects the way thumbnail images are cached. For maximum performance, this should be less or equal to the amount of available video memory.
MaxTextureSize Viewer2 loads the images in chunks to make things more efficient and this is the maximum size (i.e. 256 means the chunk is 256×256). Too small values will create some seam artifacts when you zoom the image and too big value will possibly lead into too large textures that won’t fit in the video memory, resulting in performance loss.
ShowBrowserWhenViewing If set to zero, hides the browser when viewing an image. Useful, if you use the film strip browser instead, so you have potentiall less thumbnails filling up the memory.
KeepAccurateLogs If set to a nonzero value, Viewer2 keeps accurate logs when images were viewed and for how long.
ShowDirectories Show subdirectories in the browser.
SyncIPTC If set to a non-zero value, Viewer2 will automatically import IPTC keywords as tags.
ThumbNailSize The maximum width/height of thumbnail images.
UseSpiral If set to 0, order images in a square, otherwise order images in a spiral.
ZoomSpeed E.g. 1.25000 means each mouse wheel or zoom button click makes the image zoom in/out 125 percent.

29 responses to "Viewer2 Manual"

  • Sam says:


    Thanks for this great program. But does Viewer2 support Asian characters? Filenames in chinese become blocks, any ideas?

  • kometbomb says:



    I believe it is because of the font. In theory every character should work (I have tested with the few non-ASCII characters I have on my keyboard and also with some Russian text). You can change the font if you have some font you know has the missing characters. Simply edit the registry entries in


    and change the font filename (e.g. verdanab.ttf) to some other file you have in c:\windows\fonts (if you look at the properties of the font, you will see its real filename instead of the font name). I know this is rather clumsy and I should write a proper configuration tool :) Let me know if this works.

  • Sam says:


    It works. Thanks.

    I hope a config tool will be launched soon. Thanks again for the product. I love it so much!

  • Jens says:


    Hello kornetbomb,
    you made a great program, i’m using it very often to
    find out the best pictures for galleries. My only problem is, that i always have to write down the filenames of the pictures i finally want to sort out. Would it be possible to insert a command to delete images from the harddisk? That would be great.
    Greetings Jens

  • kometbomb says:


    Hello Jens,

    Until recently, I have tried to keep physical alteration of files out of Viewer2 but I guess that is a feature that is badly needed. I’ll see if that will be in the next release (due very soon – probably tomorrow).

  • spocket says:


    Viewer2 is very cool. Especially for assigning keywords it really improves my life.
    Then I used dbtool to write the keywords as IPTC into the files but they don’t show up in Picasa.
    Other tools, such as Exifer or IrfanView can display them.

  • kometbomb says:


    Hi spocket,

    I’ll look into that. Nice to know the IPTC export works at least on some programs ;)

  • spocket says:


    Hello kornetbomb,
    I found some time to analyze this behaviour last night and got some ideas, what the problem could be. I will try to proof that the next days.

  • Joe7 says:


    Hi, is there a chance to get configurable mouse buttons? LMB is doing lasso selection, MMB drags the image, it would like to change this. Top Feature would be also to enable control keys + Buttons :-D

    Another idea especially for dragging large images: There should be some kind of acceleration or drag speed factor depending on image size to reduce mouse movement.

    Thanks for Viewer2! :-)

  • 3psyl0n says:


    hello (sorry for english)

    I search a basicly tool. How add reccursive folder in the viewer.

    ex :

    i want add photo and view all subdirectory

    seem don’t work


  • kometbomb says:



    Sorry, no configuration for controls (yet). It may be possible to swap the buttons with the lefty accessibility feature in Windows but that is all.

    I have never found the dragging too slow, if I zoom out when I need to perform a larger drag. Then just zoom in again. (Which basically means since I like it, I won’t bother fixing it ;)


    Currently, there’s no recursive browsing per se.

    However, if all the photos are in the database (on the command line: dbtool add “c:\path”), you can use the search feature to find all images with that path. That is, search for path:c\path\* (note the asterisk, it means the path can be c:\path, c:\path\dir and so on). See the manual, I think it has quite extensive help for other search features.

  • PJ says:


    I’d like to see a the ability to swap middle mouse button with the right mouse button as well. (Can’t use windows function, because that would swap all other programs then)

    Also, often I end up getting all the images to flash on and off – very annoying. Can’t that be turned of?

  • PJ says:


    Oh, btw, it doesn’t write IPTC back to the images when we set tags – is that by design?

  • kometbomb says:


    I’m currently rewriting pretty much the complete application (every old thing I thought I’ll just reuse seems to scream for a total rehaul…). E.g. the right click selection thing will be useless because the groups are visible in itself, meaning you can simply click the group area to select all images in it. Also, I think I’ll do something to the middle button since it bothers me too, thanks to even a fairly expensive mouse usually having poor mouse wheel click.

    As for the annoyance for the flashing, maybe you could simply click outside any images (i.e. click the background) or hit Ctrl+D to deselect all.

    Check the configuration for the IPTC options (“Synchronize IPTC tags” needs to be checked on the “Database” page). That feature definitely exists but it’s not enabled by default. I’m not entirely sure if enabling the syncing will automatically write the tags that you have added earlier but either adding (or removing) any tag will trigger the IPTC update for the file. Or, you can use dbtool to sync manually (something like “dbtool exportiptc c:\Photos”).

  • Crash says:


    Haven’t played around with Viewer2 too much yet – but I just have to say this is one of the most interesting pieces of software I have seen in years.

    As far as adding image-editing… I really wouldn’t bother, there are so many other applications out there that can do that already. A program doesn’t have to be everything to be great. This might be a little buggy in places, but it really is great.

    Some Key customization would be nice, though that can be accomplished with AutoHotKey in the interim.

    Perhaps an in-program F1 to browse keyboard shortcuts.


  • Anjan says:


    Thanks for making the best image viewer on the planet :)

    I have a couple of questions:

    I use a pen tablet. In the film strip view, the program becomes extremely responsive even to small movements in the pen. Is it possible to slow it down?

    Also, I hate the bluish background color of the thumbnail view. Can I change it?

    Thanks again!!!

  • kometbomb says:


    Thanks for mentioning that pen tablet bug, I think the rapid “fake” mouse movements between pen “draws” mess something up (at least how I would imagine the pen behaves).

    I hate to say this yet again but wait for the upcoming version (which is not vaporware I might add…) since I have abandoned the “1.0″ version of Viewer2.

  • Anjan says:


    Thanks for the quick response!

    I would like to mention that a Pen-Tablet behaves quite differently from a mouse.

    Unlike a mouse, the pen doesn’t MOVE the pointer.
    Every point on the tablet, plots to a particular position on the screen.
    i.e. when the pen is at the top-right of the tablet, the pointer on the screen is also on the top-right.
    Hence, the fast movements, i guess!

    And, sorry if I sounded like I was in a hurry.. I can wait :)

  • Anjan says:


    Also, is there a way to rename the currently viewed file in the viewer mode?

  • Anjan says:


    if there is none, I would like to request a cool handy feature in the next version:

    while viewing an image:
    simply typing a name (with NO HOTKEY) and pressing ENTER would rename the file.

  • Jimmy says:


    I do not want any history listing. Any ideas? Thanks.

  • Frank says:


    Really cool image viewer!

    It would be nice to have a tool that automatically assign tags on images based on the (sub-)directories in which images are.

    Myself, I have already classified my images in different directories and I don’t want to re-classify everything again using your proprietary tag system. This is too much work. For example, the directory “holiday 2009″ contains all the images that should have the “holiday” and “2009″ tags. Of course, I understand that you tags system is more powerful than simple “directory names” but it would be extremely nice (and useful) to be able to “initialize” your tags based on my directory names.

    So, a small tool that recursively parse the whole image repository to automatically assign tags would be nice.

    See you!

  • kometbomb says:


    The new dbtool does this automatically. You can simply add a file in a directory and the tags in the file are applied to all the subdirectories. It can also tag files based on the tags it sees in the directory names, so if you have the tags “2009″ and “holiday” in the system and a directory named “holiday 2009″, dbtool will apply both tags to the images in the directory.

    I have to check if it is possible to use the new dbtool with the current Viewer2. I’ve changed the database quite a bit so it may not work properly with the old version.

  • Frank says:



    Would it be possible integrate this new dbtool inside the “MSWindows explorer”? For example: I right-click on a directory inside an explorer window and I have one option that says: “add images to Viewer2 DB” (and second option that says: “recursively add images to Viewer2 DB”).

    Thanks for the answer!
    See you!

  • kometbomb says:


    It is possible to add any program in the menu, as long as the program takes command line arguments. In fact you can do that yourself for the current tool, in case you just want to quickly add a directory or something else you do fairly often.

    http://windowsitpro.com/article/articleid/13596/how-do-i-add-an-item-to-the-right-click-menu.html (not the best example but you’ll get the idea)

    The command line would be something like “c:\viewer2 directory\dbtool.exe” iptcadd “%1″.

  • David says:


    Does your software, which looks awesome BTW, move the image files from their original locations?

  • Peter says:


    If I could delete files from inside this program I would spend money to buy it.

    HATE windows explorer!!!

  • kometbomb says:


    From the manual: “Ctrl + Delete: Physically delete selected files” No guarantee this works under UAC.

  • alex says:


    awesome app, im actually using it! :)
    one question, is it possible to force viewer2 to re-read tags on files that it has in the db already?
    1. i open the image in viewer2
    2. i set the tag in some other program for this image
    3. i open the image in viewer2 but dont know how to make it see the change other than moving the file or deleting the database completely


Leave a Reply