--- CV/bin/cv 2005/07/17 05:01:30 1.46 +++ CV/bin/cv 2005/07/20 09:06:37 1.47 @@ -142,15 +142,84 @@ =head1 NAME -cv - a fast gtk+ image viewer modeled after xv +cv - a fast gtk+ image viewer loosely modeled after XV =head1 SYNOPSIS cv [file...] -=head1 DESCRIPTION +=head1 FEATURES + +CV is supposed to work similar to the venerable XV image viewer, just +faster. Why faster? + +=over 4 + +=item * optimized directory scanning algorithm + +The directory scanning in CV plays some tricks that - on most modern +filesystems - makes it possible to detect filetypes faster than stat()'ing +every file. This makes CV suitable for directories with lots of files +(10000+). + +This algorithm is quite unprecise - it doesn't make a difference between +files, device nodes, symlinks and the like, and filetype detection is done +using the file extension only. + +=item * use of asynchronous I/O + +CV tries to use asynchronous I/O whereever it makes sense, for example +while scanning directories, waiting for stat data or unlinking files. This +usually decreases scanning times for large directories a bit (especially +on RAID devices and over NFS). + +=item * fast image loading + +The time span between the user issuing a command and displaying the new +image should be as small as possible. CV uses optimized (especially +for JPEG) loading functions and sacrifices some quality (e.g no gamma +correction) to achieve this speed. + +=item * fast thumbnail creation + +Thumbnail creation is crucial for me, so it's better be fast. Thumbnail +creation for JPEGs has been specially optimized. + +=item * minimum optical clutter + +CV has no menus or other user interface elements that take up a lot of +screen space. The schnauzer windows can also be somewhat crowded. + +The point of an image viewer is viewing images, not a nice GUI. This is +similar to XV's behaviour. + +=item * efficient (and hard to learn) user interface + +CV uses key combinations. A lot. If you are an experienced XV user, you +will find most of these keys familiar. If not, CV might be hard to use at +first, but will be an efficient tool later. + +=item * i18n'ed filename handling throughout -None yet. +As long as glib can recognize your filename encoding (either UTF-8 or +locale-specific, depending on your settings) and you have the relevant +fonts, CV will display your filenames correctly. + +=item * extensible through plug-ins + +I have weird plug-ins that access remote databases to find a +directory. This is not likely to be of any use to other people. Likewise, +others might have weird requirements I cannot dream of. + +=item * filename clustering + +Among the standard plug-ins is a filename clustering plug-in, that (in +case of tens of thousands images in one directory) might be able to +cluster similar names together. + +=back + +=head1 DESCRIPTION =head2 THE IMAGE WINDOW @@ -163,17 +232,18 @@ . enlarge the image by 10% n reset to normal size m maximize to screensize - M maxime to screensize, respecting image aspect + M maximize to screensize, respecting image aspect ctrl-m toggle maxpect-always mode u uncrop r set scaling mode to 'nearest' (fastest) s set scaling mode to 'bilinear' (default) - S set scaling mode to 'hyper' (slowest) + shift-s set scaling mode to 'hyper' (slowest) t rotate clockwise 90° T rotate counterclockwise° ctrl-v open a new visual schnauzer window for the current dir - ctrl-s rescan visual schnauzer files for updates/deletes etc. - ctrl-e run an editor ($CV_EDITOR or "gimp") on the current image. + ctrl-e run an editor ($CV_EDITOR or "gimp") on the current image + ctrl-p fire up the print fialog + escape cancel a crop action And when playing movies, these additional keys are active: @@ -189,18 +259,22 @@ 9 turn volume down 0 turn volume up -The following keys are redirected to the default visual schnauzer window: +Any other keys will be sent to the default schnauzer window, which can be +toggled on and off by right-clicking into the image window. - space next image - backspace last image +Left-clicking into the image window will let you crop the image (usually +to zoom into large images that CV scales down). =head2 THE VISUAL SCHNAUZER You can use the following keys in the schnauzer window: + ctrl-space, space move to and display next image + ctrl-backspace, backspace move to and display previous image - return display selected picture + ctrl-return, + return display selected picture, or enter directory cursor keys move selection page-up move one page up @@ -208,10 +282,31 @@ home move to first file end move to last file + ctrl-a select all files ctrl-d delete selected files WITHOUT ASKING AGAIN - ctrl-g generate icons for the selected files + ctrl-g force generation of thumbnais for the selected files + ctrl-s rescan current direcory or files updates/deletes etc. ctrl-u update selected (or all) icons if neccessary - ctrl-a select all files + ctrl-l don't use, will become a plug-in eventually + + 0-9, + a-z find the first filename beginning with this letter + +Right-clicking into the schnauzer window displays a pop-up menu with +additional actions. + +=head1 FILES + +When starting, CV runs the F<.cvrc> file in your F<$HOME> directory as if +it were a perl script. in that, you will mostly load plug-ins. + +Example: + + system "fping -q -t 10 ether" + or require "/fs/cv/cvplugin.pl"; + +This will load a plug-in, but only if the machine I is reachable +(supposedly the plug-in is networked in some way :). =head1 ENVIRONMENT @@ -245,15 +340,15 @@ =head1 BUGS/TODO - Pixbuf doesn't honor G_BROKEN_FILENAMES, so accessing files with names - incompatible with utf-8 fails. + Lots of functionality is missing. + + Pixbuf doesn't always honor G_BROKEN_FILENAMES, so accessing files with + names incompatible might utf-8 fail. rotate on disk - print lots of ui issues save(?) preferences - ctrl-u in schnauzer shift-cursor in schnauzer =head1 AUTHOR