@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Dired, Calendar/Diary, Rmail, Top
@chapter Dired, the Directory Editor
* Updating: Dired Updating. Discarding lines for files of no interest.
* Find: Dired and Find. Using `find' to choose the files for Dired.
* Wdired:: Operating on files by editing the Dired buffer.
+* Tumme:: Image file and thumbnail viewing and
+ manipulation from the Dired buffer.
* Misc: Misc Dired Features. Various other features.
@end menu
command to print them with, but the minibuffer starts out with a
suitable guess made using the variables @code{lpr-command} and
@code{lpr-switches} (the same variables that @code{lpr-buffer} uses;
-@pxref{Hardcopy}).
+@pxref{Printing}).
@findex dired-do-compress
@kindex Z @r{(Dired)}
arguments, @var{directory} and @var{regexp}; it chooses all the files in
@var{directory} or its subdirectories that contain a match for
@var{regexp}. It works by running the programs @code{find} and
-@code{grep}. See also @kbd{M-x grep-find}, in @ref{Compilation}.
+@code{grep}. See also @kbd{M-x grep-find}, in @ref{Grep Searching}.
Remember to write the regular expression for @code{grep}, not for Emacs.
(An alternative method of showing files whose contents match a given
regexp is the @kbd{% g @var{regexp}} command, see @ref{Marks vs Flags}.)
world-writable. These changes also take effect when you type @kbd{C-c
C-c}.
+@node Tumme
+@section Thumbnail and image file viewing and manipulation
+
+@cindex tumme mode
+
+ Tumme provides for simple viewing of thumbnails of image files. It
+provides viewing of the original file, sized or in full size, inside
+Emacs or in an external viewer.
+
+ Tumme aims to be both easy to use for a beginner but also powerful
+and useful to an experienced user.
+
+ The quickest way to try out Tumme is to use the command
+@code{tumme}. It will prompt for a directory where there are images
+files. All images in that directory will get thumbnail files created
+for them, and the thumbnails will be displayed in the ``thumbnail
+buffer''.
+
+ If the directory contains many image files and becayse thumbnails
+are created on the fly before they can be displayed, the above command
+might take a long time, especially the first time (consecutive
+viewings will use the cached thumbnail files). Also, if the number of
+image files is higher than @code{tumme-show-all-from-dir-max-files},
+the command will be aborted. To work around this you can instead mark
+the files you want to look at, using @kbd{m} as usual in Dired, and
+then type @kbd{C-t d} (@code{tumme-display-thumbs}).
+
+ Regardless of which command you chose to display the thumbnails, a
+new buffer will open up, displaying thumbnail images of the files that
+were marked in dired. The new buffer will be the active one.
+
+ With point in the thumbnail buffer, type @kbd{RET}
+(@code{tumme-display-thumbnail-original-image}) to display a sized
+version of it in another window. The image will be sized to fit the
+window. Use the arrow keys to move around in the buffer. For easy
+browing, type @kbd{SPC} (@code{tumme-display-next-thumbnail-original})
+to advance and display the next image. Typing @kbd{DEL}
+(@code{tumme-display-previous-thumbnail-original}) backs up to the
+previous thumbnail and displays that instead.
+
+ If you want to see the image in its original size, either provide a
+prefix argument (@kbd{C-u}) before pressing @kbd{RET}, or type
+@kbd{C-return} (@code{tumme-thumbnail-display-external}) to display
+the image in an external viewer. To use the latter,
+@code{tumme-external-viewer} must be configured.
+
+ If you find in image that you want to delete, type @kbd{d}
+(@code{tumme-flag-thumb-original-file}) and the file will be flagged
+for deletion in the dired buffer. If you just want visually to delete
+the thumbnail image from the thumbnail buffer, type @kbd{C-d}
+(@code{tumme-delete-char}).
+
+ More advanced features include commands for using ``tags''. ``Tag''
+is just another word for ``keyword'', ``label'' or ``category''. In
+short, it is meta data used to categorize an image file. Commands
+exist to add tags for one or many image files from dired, to mark
+files having a certain tag in Dired and to remove tags from files.
+The tags put on image files are stored in a database file (currently a
+plain text file).
+
+ To tag image files, mark them in the dired buffer and type @kbd{C-t
+t} (@code{tumme-tag-files}). You will be prompted for a tag. To mark
+files having a certain tag, type @kbd{C-t f}
+(@code{tumme-mark-tagged-files}). After marking image files with a
+certain tag, they can be viewed as explained earlier, by typing
+@key{C-t d}.
+
+ You can also tag a file from the thumbnail buffer by typing @kbd{t
+t} and remove it by typing @kbd{t r}. There is also a special ``tag''
+called ``comment'' for each file (it is not a tag in the exact same
+sense as the other tags, it is handled slightly different). That is
+used to enter a comment or description about the image. You comment a
+file from the thumbnail buffer by typing @kbd{c}. You will be
+prompted for a comment. Comments can also be added from Dired, and
+then also to multiple files at once, by typing @kbd{C-t c}
+(@code{tumme-dired-comment-files}).
+
+ Tumme also provides simple image manipulation commands, like
+rotating thumbnails and original image files. In the thumbnail
+buffer, type @kbd{L} to rotate the original image 90 degrees anti
+clockwise, and @kbd{R} to rotate it 90 degrees clockwise. This
+rotation will be done lossless (the image quality will not be reduced)
+and needs an external utility called JpegTRAN to work.
+
@node Misc Dired Features
@section Other Dired Features
headerline, @kbd{w} gives you the absolute name of that directory.
Any prefix argument or marked files are ignored in this case.
+@findex dired-compare-directories
+ The command @kbd{M-x dired-compare-directories} is used to compare
+the current Dired buffer with another directory. It marks all the files
+that are ``different'' between the two directories. It puts these marks
+in all Dired buffers where these files are listed, which of course includes
+the current buffer.
+
+ The default comparison method (used if you type @key{RET} at the
+prompt) is to compare just the file names---each file name that does
+not appear in the other directory is ``different''. You can specify
+more stringent comparisons by entering a Lisp expression, which can
+refer to the variables @code{size1} and @code{size2}, the respective
+file sizes; @code{mtime1} and @code{mtime2}, the last modification
+times in seconds, as floating point numers; and @code{fa1} and
+@code{fa2}, the respective file attribute lists (as returned by the
+function @code{file-attributes}). This expression is evaluated for
+each pair of like-named files, and if the expression's value is
+non-@code{nil}, those files are considered ``different''.
+
+ For instance, @code{M-x dired-compare-directories @key{RET} (>
+mtime1 mtime2) @key{RET}} marks files newer in this directory than in
+the other, and marks files older in the other directory than in this
+one. It also marks files with no counterpart, in both directories, as
+always.
+
+@cindex drag and drop, Dired
On the X window system, Emacs supports the ``drag and drop''
protocol. You can drag a file object from another program, and drop
it onto a Dired buffer; this either moves, copies, or creates a link