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

Comparing CV/README (file contents):
Revision 1.3 by root, Wed Sep 7 17:17:39 2005 UTC vs.
Revision 1.12 by root, Wed Dec 27 17:48:16 2017 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
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
116 ctrl-sift-m toggle using current image size as max image size
97 u uncrop 117 u uncrop
98 r set scaling mode to 'nearest' (fastest) 118 r set scaling mode to 'nearest' (fastest)
99 s set scaling mode to 'bilinear' (default) 119 s set scaling mode to 'bilinear' (default)
100 shift-s set scaling mode to 'hyper' (slowest) 120 shift-s set scaling mode to 'hyper' (slowest)
101 t rotate clockwise 90° 121 t rotate clockwise 90°
102 T rotate counterclockwise° 122 T rotate counterclockwise°
123 a apply all rotations loslessly to a jpeg file (using exiftran)
124 ctrl-shift-t apply current rotation for future image loads
103 ctrl-v open a new visual schnauzer window for the current dir 125 ctrl-v open a new visual schnauzer window for the current dir
126 ctrl-c clone the current image window
104 ctrl-e run an editor ($CV_EDITOR or "gimp") on the current image 127 ctrl-e run an editor ($CV_EDITOR or "gimp") on the current image
105 ctrl-p fire up the print fialog 128 ctrl-p fire up the print dialog
129 ctrl-shift-p same as ctrl-p, but automatically selects "ok"
106 escape cancel a crop action 130 escape cancel a crop action
107 131
108 And when playing movies, these additional keys are active: 132 And when playing movies, these additional keys are active:
109 133
110 left rewind by 10 seconds 134 left rewind by 10 seconds
124 148
125 Left-clicking into the image window will let you crop the image (usually 149 Left-clicking into the image window will let you crop the image (usually
126 to zoom into large images that CV scales down). 150 to zoom into large images that CV scales down).
127 151
128 THE VISUAL SCHNAUZER 152 THE VISUAL SCHNAUZER
153 Any image-loading action in a schnauzer window acts on the
154 "last-recently-activated" imagewindow, which currently is simply the
155 last image window that received a keypress.
156
129 You can use the following keys in the schnauzer window: 157 You can use the following keys in the schnauzer window:
130 158
131 ctrl-space, 159 ctrl-space,
132 space move to and display next image 160 space move to and display next image
133 ctrl-backspace, 161 ctrl-backspace,
142 end move to last file 170 end move to last file
143 171
144 ctrl-a select all files 172 ctrl-a select all files
145 ctrl-shift-a select all files currently displayed in the schnauzer window 173 ctrl-shift-a select all files currently displayed in the schnauzer window
146 ctrl-d delete selected files WITHOUT ASKING AGAIN 174 ctrl-d delete selected files WITHOUT ASKING AGAIN
147 ctrl-g force generation of thumbnais for the selected files 175 ctrl-g force generation of thumbnails for the selected files
176 ctrl-shift-g remove thumbnails for the selected files
148 ctrl-s rescan current direcory or files updates/deletes etc. 177 ctrl-s rescan current direcory or files updates/deletes etc.
149 ctrl-u update selected (or all) icons if neccessary 178 ctrl-u update selected (or all) icons if neccessary
150 ctrl-l don't use, will become a plug-in eventually 179 ctrl-- unselected thumbnailed images
180 ctrl-+ keep only thumbnailed images, deselect others
151 181
152 ^ go to parent directory (caret). 182 ^ go to parent directory (caret).
153 183
154 0-9, 184 0-9,
155 a-z find the first filename beginning with this letter 185 a-z find the first filename beginning with this letter
156 186
157 Right-clicking into the schnauzer window displays a pop-up menu with 187 Right-clicking into the schnauzer window displays a pop-up menu with
158 additional actions. 188 additional actions.
189
190 SELECTION
191 You can select entries in the Schnauzer in a variety of ways:
192
193 Keyboard
194 Moving the cursor with the keyboard will first deselect all files
195 and then select the file you moved to.
196
197 Clicking
198 Clicking on an entry will select the one you clicked and deselect
199 all others.
200
201 Shift-Clicking
202 Shift-clicking will toggle the selection on the entry under the
203 mouse.
204
205 Dragging
206 Dragging will select all entries between the one selected when
207 pushing the button and the one selected when releasing the button.
208 If you move above or below the schnauzer area while drag-selecting,
209 the schnauzer will move up/down one row twice per second. In
210 addition, horizontal mouse movement acts as a kind of invisible
211 horizontal scrollbar.
212
213 Hint: double-click works while click-selecting
214 You can double-click any image while click-selecting to display it
215 without stopping the selection process. This will act as if you
216 normally double-clicked the image to display it, and will toggle the
217 selection twice, resulting in no change.
159 218
160FILES 219FILES
161 When starting, CV runs the .cvrc file in your $HOME directory as if it 220 When starting, CV runs the .cvrc file in your $HOME directory as if it
162 were a perl script. in that, you will mostly load plug-ins. 221 were a perl script. in that, you will mostly load plug-ins.
163 222
167 or require "/fs/cv/cvplugin.pl"; 226 or require "/fs/cv/cvplugin.pl";
168 227
169 This will load a plug-in, but only if the machine *ether* is reachable 228 This will load a plug-in, but only if the machine *ether* is reachable
170 (supposedly the plug-in is networked in some way :). 229 (supposedly the plug-in is networked in some way :).
171 230
172ENVIRONMENT 231ENVIRONMENT VARIABLES
173 CV_EDITOR 232 CV_EDITOR
174 The program that gets executed when the user presses "CTRL-e" in the 233 The program that gets executed when the user presses "CTRL-e" in the
175 Schnauzer or image window. The default is "gimp". 234 Schnauzer or image window. The default is "gimp".
176 235
236 CV_AUDIO_PLAYER
237 EXPERIMENTAL: audio playback is now via mpv, this variable is
238 currently ignored.
239
240 Program used to play all sorts of audio (wav, aif, mp3, ogg...),
241 default "play". Will be called like "$CV_AUDIO_PLAYER -- <path>".
242
243 CV_MPLAYER
244 Program used to play all sorts of video files. Unlike
245 "CV_AUDIO_PLAYER", this really must be one of the "mplayer",
246 "mplayer2" or "mpv" programs, or something that is very command-line
247 compatible to them.
248
249 Currently, if this string contains the substring "mpv", then it is
250 assumed to be mpv-compatible, otherwise it is assumed to be
251 mplayer-compatible.
252
253 Note: for video-thumbnailing, mplayer is still used (and hardcoded).
254
177 CV_PRINT_DESTINATION 255 CV_PRINT_DESTINATION
178 The default (perl-style) destination to use in the print dialog. 256 The default (perl-style) destination to use in the print dialog.
179 257
180 CV_TRASHCAN 258 CV_TRASHCAN
181 When set, must point to a directory where all files that are deleted 259 When set, must point to a directory where all files that are deleted
182 are moved to. If unset, files that are deleted are really being 260 by the "Delete Physically" (ctrl-d) action are moved to (other
183 deleted. 261 deletion actions still delete!). If unset, files that are deleted
262 are really being deleted.
263
264SIGNALS
265 Sending CV a SIGUSR1 signal will cause all image viewers to reload the
266 currently loaded image. This is useful if you use CV as a viewer for
267 changing data - just run it in the background with some path and each
268 time the image changes, send it a SIGUSR1.
184 269
185SECURITY CONSIDERATIONS 270SECURITY CONSIDERATIONS
186 CV uses Pixbuf to load non-JPEG images. Pixbuf is not considered safe 271 CV uses Pixbuf to load non-JPEG images. Pixbuf is not considered safe
187 for this purpose, though (from the gtk-2.2 release notes): 272 for this purpose, though (from the gtk-2.2 release notes):
188 273

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines