ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/CV/README
(Generate patch)

Comparing CV/README (file contents):
Revision 1.6 by root, Sun Nov 25 14:16:35 2007 UTC vs.
Revision 1.13 by root, Thu Jul 15 00:41:44 2021 UTC

1NAME 1NAME
2 cv - a fast gtk+ image viewer loosely modeled after XV 2 cv - a fast gtk+ image viewer loosely modeled after XV
3 3
4SYNOPSIS 4SYNOPSIS
5 cv [file...] 5 cv
6
7 cv directory
8
9 cv path...
10
11 cv -g <glob expression...>
12
13 find .. -print0 | cv -0r
6 14
7FEATURES 15FEATURES
8 CV is supposed to work similar to the venerable XV image viewer, just 16 CV is supposed to work similar to the venerable XV image viewer, just
9 faster. Why faster? 17 faster. Why faster?
10 18
11 * optimized directory scanning algorithm 19 * optimized directory scanning algorithm
20
12 The directory scanning in CV uses some tricks that - on most modern 21 The directory scanning in CV uses some tricks that - on most modern
13 filesystems - makes it possible to detect filetypes faster than 22 filesystems - makes it possible to detect filetypes faster than
14 stat()'ing every file. This makes CV suitable for directories with 23 stat()'ing every file. This makes CV suitable for directories with
15 lots of files (10000+). 24 lots of files (10000+).
16 25
20 29
21 On the positive side, it is usually many orders of magnitude faster 30 On the positive side, it is usually many orders of magnitude faster
22 than traditional scanning techniques (good for directories with 31 than traditional scanning techniques (good for directories with
23 10000 or 100000+ files). 32 10000 or 100000+ files).
24 33
25 * queuing for all time-consuming background tasks 34 * queuing for all time-consuming background tasks
35
26 All tasks, such as unlinking files or generating thumbnails, that 36 All tasks, such as unlinking files or generating thumbnails, that
27 can be done in the background will be done so - no waiting required, 37 can be done in the background will be done so - no waiting required,
28 even when changing directories. 38 even when changing directories.
29 39
30 * use of asynchronous I/O 40 * use of asynchronous I/O
41
31 CV tries to use asynchronous I/O whereever it makes sense, for 42 CV tries to use asynchronous I/O whereever it makes sense, for
32 example while scanning directories, waiting for stat data, unlinking 43 example while scanning directories, waiting for stat data, unlinking
33 files or generating thumbnails. This usually decreases scanning 44 files or generating thumbnails. This usually decreases scanning
34 times for large directories a bit (especially on RAID devices and 45 times for large directories a bit (especially on RAID devices and
35 over NFS) and makes CV much more interactive. 46 over NFS) and makes CV much more interactive.
36 47
37 * fast image loading 48 * fast image loading
49
38 The time span between the user issuing a command and displaying the 50 The time span between the user issuing a command and displaying the
39 new image should be as small as possible. CV uses optimized 51 new image should be as small as possible. CV uses optimized
40 (especially for JPEG) loading functions and sacrifices some quality 52 (especially for JPEG) loading functions and sacrifices some quality
41 (e.g no gamma correction, although this might change) to achieve 53 (e.g no gamma correction, although this might change) to achieve
42 this speed. 54 this speed.
43 55
44 * fast thumbnail creation 56 * fast thumbnail creation
57
45 Thumbnail creation uses both CPU and Disk-I/O. CV interleaves both, 58 Thumbnail creation uses both CPU and Disk-I/O. CV interleaves both,
46 so on modern CPUs, thumbnailing is usually limited by I/O speed. 59 so on modern CPUs, thumbnailing is usually limited by I/O speed.
47 Thumbnail creation for JPEGs has been specially optimized and can 60 Thumbnail creation for JPEGs has been specially optimized and can
48 even take advantage of multiple CPUs. 61 even take advantage of multiple CPUs.
49 62
50 * minimum optical clutter 63 * minimum optical clutter
64
51 CV has no menus or other user interface elements that take up a lot 65 CV has no menus or other user interface elements that take up a lot
52 of screen space (or are useful for beginning users). The schnauzer 66 of screen space (or are useful for beginning users). The schnauzer
53 windows can also be somewhat crowded. 67 windows can also be somewhat crowded.
54 68
55 The point of an image viewer is viewing images, not a nice GUI. This 69 The point of an image viewer is viewing images, not a nice GUI. This
56 is similar to XV's behaviour. 70 is similar to XV's behaviour.
57 71
58 * efficient (and hard to learn) user interface 72 * efficient (and hard to learn) user interface
73
59 CV uses key combinations. A lot. If you are an experienced XV user, 74 CV uses key combinations. A lot. If you are an experienced XV user,
60 you will find most of these keys familiar. If not, CV might be hard 75 you will find most of these keys familiar. If not, CV might be hard
61 to use at first, but will be an efficient tool later. 76 to use at first, but will be an efficient tool later.
62 77
63 * multi-window GUI 78 * multi-window GUI
79
64 CV doesn't force you to use a specific layout, instead it relies on 80 CV doesn't force you to use a specific layout, instead it relies on
65 your window manager, thus enabling you to chose whatever layout that 81 your window manager, thus enabling you to chose whatever layout that
66 suits you most. 82 suits you most.
67 83
68 * i18n'ed filename handling throughout 84 * i18n'ed filename handling throughout
85
69 As long as glib can recognize your filename encoding (either UTF-8 86 As long as glib can recognize your filename encoding (either UTF-8
70 or locale-specific, depending on the setting of G_BROKEN_FILENAMES) 87 or locale-specific, depending on the setting of G_BROKEN_FILENAMES)
71 and you have the relevant fonts, CV will display your filenames 88 and you have the relevant fonts, CV will display your filenames
72 correctly. 89 correctly.
73 90
74 * extensible through plug-ins 91 * extensible through plug-ins
92
75 I have weird plug-ins that access remote databases to find a 93 I have weird plug-ins that access remote databases to find a
76 directory. This is not likely to be of any use to other people. 94 directory. This is not likely to be of any use to other people.
77 Likewise, others might have weird requirements I cannot dream of. 95 Likewise, others might have weird requirements I cannot dream of.
78 96
79 * filename clustering 97 * filename clustering
98
80 Among the standard plug-ins is a filename clustering plug-in, that 99 Among the standard plug-ins is a filename clustering plug-in, that
81 (in case of tens of thousands images in one directory) might be able 100 (in case of tens of thousands images in one directory) might be able
82 to cluster similar names together. 101 to cluster similar names together.
83 102
84DESCRIPTION 103DESCRIPTION
86 You can use the following keys in the image window: 105 You can use the following keys in the image window:
87 106
88 q quit the program 107 q quit the program
89 < half the image size 108 < half the image size
90 > double the image size 109 > double the image size
91 , shrink the image by 10% 110 , shrink the image by ~9% (opposite of .)
92 . enlarge the image by 10% 111 . enlarge the image by 10%
93 n reset to normal size 112 n reset to normal size
94 m maximize to screensize 113 m maximize to screensize
95 M maximize to screensize, respecting image aspect 114 M maximize to screensize, respecting image aspect
96 ctrl-m toggle maxpect-always mode 115 ctrl-m toggle maxpect-always mode
97 ctrl-sift-m toggle using current image size as max image size 116 ctrl-sift-m toggle using current image size as max image size
98 u uncrop 117 u uncrop
99 r set scaling mode to 'nearest' (fastest) 118 r set scaling mode to 'nearest' (fastest)
100 s set scaling mode to 'bilinear' (default) 119 s set scaling mode to 'bilinear' (default)
101 shift-s set scaling mode to 'hyper' (slowest)
102 t rotate clockwise 90° 120 t rotate clockwise 90°
103 T rotate counterclockwise° 121 T rotate counterclockwise°
104 a apply all rotations loslessly to a jpeg file (using exiftran) 122 a apply all rotations loslessly to a jpeg file (using exiftran)
123 ctrl-shift-t apply current rotation for future image loads
105 ctrl-v open a new visual schnauzer window for the current dir 124 ctrl-v open a new visual schnauzer window for the current dir
106 ctrl-c clone the current image window 125 ctrl-c clone the current image window
107 ctrl-e run an editor ($CV_EDITOR or "gimp") on the current image 126 ctrl-e run an editor ($CV_EDITOR or "gimp") on the current image
108 ctrl-p fire up the print dialog 127 ctrl-p fire up the print dialog
128 ctrl-shift-p same as ctrl-p, but automatically selects "ok"
109 escape cancel a crop action 129 escape cancel a crop action
110 130
111 And when playing movies, these additional keys are active: 131 And when playing movies, these additional keys are active:
112 132
113 left rewind by 10 seconds 133 left rewind by 10 seconds
149 end move to last file 169 end move to last file
150 170
151 ctrl-a select all files 171 ctrl-a select all files
152 ctrl-shift-a select all files currently displayed in the schnauzer window 172 ctrl-shift-a select all files currently displayed in the schnauzer window
153 ctrl-d delete selected files WITHOUT ASKING AGAIN 173 ctrl-d delete selected files WITHOUT ASKING AGAIN
154 ctrl-g force generation of thumbnais for the selected files 174 ctrl-g force generation of thumbnails for the selected files
175 ctrl-shift-g remove thumbnails for the selected files
155 ctrl-s rescan current direcory or files updates/deletes etc. 176 ctrl-s rescan current direcory or files updates/deletes etc.
156 ctrl-u update selected (or all) icons if neccessary 177 ctrl-u update selected (or all) icons if neccessary
157 ctrl-l don't use, will become a plug-in eventually 178 ctrl-- unselected thumbnailed images
179 ctrl-+ keep only thumbnailed images, deselect others
158 180
159 ^ go to parent directory (caret). 181 ^ go to parent directory (caret).
160 182
161 0-9, 183 0-9,
162 a-z find the first filename beginning with this letter 184 a-z find the first filename beginning with this letter
203 or require "/fs/cv/cvplugin.pl"; 225 or require "/fs/cv/cvplugin.pl";
204 226
205 This will load a plug-in, but only if the machine *ether* is reachable 227 This will load a plug-in, but only if the machine *ether* is reachable
206 (supposedly the plug-in is networked in some way :). 228 (supposedly the plug-in is networked in some way :).
207 229
208ENVIRONMENT 230ENVIRONMENT VARIABLES
209 CV_EDITOR 231 CV_EDITOR
210 The program that gets executed when the user presses "CTRL-e" in the 232 The program that gets executed when the user presses "CTRL-e" in the
211 Schnauzer or image window. The default is "gimp". 233 Schnauzer or image window. The default is "gimp".
212 234
213 CV_AUDIO_PLAYER 235 CV_AUDIO_PLAYER
236 EXPERIMENTAL: audio playback is now via mpv, this variable is
237 currently ignored.
238
214 Program used to play all sorts of audio (wav, aif, mp3, ogg...), 239 Program used to play all sorts of audio (wav, aif, mp3, ogg...),
215 default "play". Will be called like "$CV_AUDIO_PLAYER -- <path>". 240 default "play". Will be called like "$CV_AUDIO_PLAYER -- <path>".
216 241
242 CV_MPLAYER
243 Program used to play all sorts of video files. Unlike
244 "CV_AUDIO_PLAYER", this really must be some version of the "mpv"
245 programs, or something that is very command-line compatible to them.
246
247 Note: for video-thumbnailing, mplayer is still used (and hardcoded).
248
217 CV_PRINT_DESTINATION 249 CV_PRINT_DESTINATION
218 The default (perl-style) destination to use in the print dialog. 250 The default (perl-style) destination to use in the print dialog.
219 251
220 CV_TRASHCAN 252 CV_TRASHCAN
221 When set, must point to a directory where all files that are deleted 253 When set, must point to a directory where all files that are deleted
222 are moved to. If unset, files that are deleted are really being 254 by the "Delete Physically" (ctrl-d) action are moved to (other
223 deleted. 255 deletion actions still delete!). If unset, files that are deleted
256 are really being deleted.
257
258SIGNALS
259 Sending CV a SIGUSR1 signal will cause all image viewers to reload the
260 currently loaded image. This is useful if you use CV as a viewer for
261 changing data - just run it in the background with some path and each
262 time the image changes, send it a SIGUSR1.
224 263
225SECURITY CONSIDERATIONS 264SECURITY CONSIDERATIONS
226 CV uses Pixbuf to load non-JPEG images. Pixbuf is not considered safe 265 CV uses Pixbuf to load non-JPEG images. Pixbuf is not considered safe
227 for this purpose, though (from the gtk-2.2 release notes): 266 for this purpose, though (from the gtk-2.2 release notes):
228 267

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines