* Compilation:: How to speed Gnus up.
* Mode Lines:: Displaying information in the mode lines.
* Highlighting and Menus:: Making buffers look all nice and cozy.
-* Buttons:: Get tendinitis in ten easy steps!
* Daemons:: Gnus can do things behind your back.
* Undo:: Some actions can be undone.
* Predicate Specifiers:: Specifying predicates.
* Smileys:: Show all those happy faces the way they were
meant to be shown.
* Picons:: How to display pictures of what you're reading.
+* Gravatars:: Display the avatar of people you read.
* XVarious:: Other XEmacsy Gnusey variables.
Thwarting Email Spam
corresponding regular expression in @code{gnus-article-banner-alist} is
used.
+For instance:
+
+@lisp
+(setq gnus-article-banner-alist
+ ((googleGroups .
+ "^\n*--~--~---------\\(.+\n\\)+")))
+@end lisp
+
Regardless of a group, you can hide things like advertisements only when
the sender of an article has a certain mail address specified in
@code{gnus-article-address-banner-alist}.
can use include:
@table @code
+@item mm-shr
+Use Gnus simple html renderer.
+
@item gnus-article-html
Use Gnus rendered based on w3m.
@code{nnbabyl}, @code{nnmaildir}, @code{nnml}, are able to locate
articles from any groups, while @code{nnfolder}, and @code{nnimap} are
only able to locate articles that have been posted to the current
-group. (Anything else would be too time consuming.) @code{nnmh} does
-not support this at all.
+group. @code{nnmh} does not support this at all.
+Fortunately, the special @code{nnregistry} back end is able to locate
+articles in any groups, regardless of their back end (@pxref{Registry
+Article Refer Method, fetching by @code{Message-ID} using the
+registry}).
@node Alternative Approaches
@section Alternative Approaches
@item mm-text-html-renderer
@vindex mm-text-html-renderer
If set to @code{gnus-article-html}, Gnus will use the built-in method,
-that's based on @code{curl} and @code{w3m}.
+that's based on @code{w3m}.
@item gnus-blocked-images
@vindex gnus-blocked-images
(This is the default.) If @code{nil}, each group will have its own
article buffer.
+@item gnus-widen-article-window
+@cindex gnus-widen-article-window
+If non-@code{nil}, selecting the article buffer with the @kbd{h}
+command will ``widen'' the article window to take the entire frame.
+
@vindex gnus-article-decode-hook
@item gnus-article-decode-hook
@cindex @acronym{MIME}
Note that not all servers support the recommended ID. This works for
INN versions 2.3.0 and later, for instance.
+@item nntp-server-list-active-group
+If @code{nil}, then always use @samp{GROUP} instead of @samp{LIST
+ACTIVE}. This is usually slower, but on misconfigured servers that
+don't update their active files often, this can help.
+
+
@end table
@menu
(nnimap-inbox "INBOX")
(nnimap-split-methods default)
(nnimap-expunge t)
- (nnimap-stream 'ssl)
+ (nnimap-stream ssl)
(nnir-search-engine imap)
(nnimap-expunge-inbox t))
@end example
@item nnimap-server-port
If the server uses a non-standard port, that can be specified here. A
-typical port would be @samp{imap} or @samp{imaps}.
+typical port would be @code{"imap"} or @code{"imaps"}.
@item nnimap-stream
How @code{nnimap} should connect to the server. Possible values are:
Mail}), except the symbol @code{default}, which means that it should
use the value of the @code{nnmail-split-methods} variable.
+@item nnimap-split-fancy
+Uses the same syntax as @code{nnmail-split-fancy}.
+
@end table
message. The function should return a list of group names that it
thinks should carry this mail message.
+This variable can also be a fancy split method. For the syntax,
+see @ref{Fancy Mail Splitting}.
+
Note that the mail back ends are free to maul the poor, innocent,
incoming headers all they want to. They all add @code{Lines} headers;
some add @code{X-Gnus-Group} headers; most rename the Unix mbox
:fetchflag "\\Seen")
@end lisp
-@item webmail
-Get mail from a webmail server, such as @uref{http://www.hotmail.com/},
-@uref{http://webmail.netscape.com/}, @uref{http://www.netaddress.com/},
-@uref{http://mail.yahoo.com/}.
-
-NOTE: Webmail largely depends on cookies. A "one-line-cookie" patch is
-required for url "4.0pre.46".
-
-WARNING: Mails may be lost. NO WARRANTY.
-
-Keywords:
-
-@table @code
-@item :subtype
-The type of the webmail server. The default is @code{hotmail}. The
-alternatives are @code{netscape}, @code{netaddress}, @code{my-deja}.
-
-@item :user
-The user name to give to the webmail server. The default is the login
-name.
-
-@item :password
-The password to give to the webmail server. If not specified, the user is
-prompted.
-
-@item :dontexpunge
-If non-@code{nil}, only fetch unread articles and don't move them to
-trash folder after finishing the fetch.
-
-@end table
-
-An example webmail source:
-
-@lisp
-(webmail :subtype 'hotmail
- :user "user-name"
- :password "secret")
-@end lisp
-
@item group
Get the actual mail source from the @code{mail-source} group parameter,
@xref{Group Parameters}.
mail back ends.
@code{nnmaildir} is largely similar to @code{nnml}, with some notable
-differences. Each message is stored in a separate file, but the
-filename is unrelated to the article number in Gnus. @code{nnmaildir}
+differences. Each message is stored in a separate file, but the
+filename is unrelated to the article number in Gnus. @code{nnmaildir}
also stores the equivalent of @code{nnml}'s overview files in one file
-per article, so it uses about twice as many inodes as @code{nnml}. (Use
-@code{df -i} to see how plentiful your inode supply is.) If this slows
-you down or takes up very much space, consider switching to
-@uref{http://www.namesys.com/, ReiserFS} or another non-block-structured
+per article, so it uses about twice as many inodes as @code{nnml}.
+(Use @code{df -i} to see how plentiful your inode supply is.) If this
+slows you down or takes up very much space, a non-block-structured
file system.
Since maildirs don't require locking for delivery, the maildirs you use
@item lanl-gov-announce
Announcement messages from LANL Gov Announce.
+@cindex git commit messages
+@item git
+@code{git} commit messages.
+
@cindex forwarded messages
@item rfc822-forward
A message forwarded according to RFC822.
* Compilation:: How to speed Gnus up.
* Mode Lines:: Displaying information in the mode lines.
* Highlighting and Menus:: Making buffers look all nice and cozy.
-* Buttons:: Get tendinitis in ten easy steps!
* Daemons:: Gnus can do things behind your back.
* Undo:: Some actions can be undone.
* Predicate Specifiers:: Specifying predicates.
buffer should be given. Here's an excerpt of this variable:
@lisp
-((group (vertical 1.0 (group 1.0 point)
- (if gnus-carpal (group-carpal 4))))
+((group (vertical 1.0 (group 1.0 point)))
(article (vertical 1.0 (summary 0.25 point)
(article 1.0))))
@end lisp
@lisp
(article (vertical 1.0 (group 4)
(summary 0.25 point)
- (if gnus-carpal (summary-carpal 4))
(article 1.0)))
@end lisp
If the @dfn{split} looks like something that can be @code{eval}ed (to be
precise---if the @code{car} of the split is a function or a subr), this
split will be @code{eval}ed. If the result is non-@code{nil}, it will
-be used as a split. This means that there will be three buffers if
-@code{gnus-carpal} is @code{nil}, and four buffers if @code{gnus-carpal}
-is non-@code{nil}.
+be used as a split.
Not complicated enough for you? Well, try this on for size:
@lisp
(article (horizontal 1.0
(vertical 0.5
- (group 1.0)
- (gnus-carpal 4))
+ (group 1.0))
(vertical 1.0
(summary 0.25 point)
- (summary-carpal 4)
(article 1.0))))
@end lisp
@end table
-@node Buttons
-@section Buttons
-@cindex buttons
-@cindex mouse
-@cindex click
-
-Those new-fangled @dfn{mouse} contraptions is very popular with the
-young, hep kids who don't want to learn the proper way to do things
-these days. Why, I remember way back in the summer of '89, when I was
-using Emacs on a Tops 20 system. Three hundred users on one single
-machine, and every user was running Simula compilers. Bah!
-
-Right.
-
-@vindex gnus-carpal
-Well, you can make Gnus display bufferfuls of buttons you can click to
-do anything by setting @code{gnus-carpal} to @code{t}. Pretty simple,
-really. Tell the chiropractor I sent you.
-
-
-@table @code
-
-@item gnus-carpal-mode-hook
-@vindex gnus-carpal-mode-hook
-Hook run in all carpal mode buffers.
-
-@item gnus-carpal-button-face
-@vindex gnus-carpal-button-face
-Face used on buttons.
-
-@item gnus-carpal-header-face
-@vindex gnus-carpal-header-face
-Face used on carpal buffer headers.
-
-@item gnus-carpal-group-buffer-buttons
-@vindex gnus-carpal-group-buffer-buttons
-Buttons in the group buffer.
-
-@item gnus-carpal-summary-buffer-buttons
-@vindex gnus-carpal-summary-buffer-buttons
-Buttons in the summary buffer.
-
-@item gnus-carpal-server-buffer-buttons
-@vindex gnus-carpal-server-buffer-buttons
-Buttons in the server buffer.
-
-@item gnus-carpal-browse-buffer-buttons
-@vindex gnus-carpal-browse-buffer-buttons
-Buttons in the browse buffer.
-@end table
-
-All the @code{buttons} variables are lists. The elements in these list
-are either cons cells where the @code{car} contains a text to be displayed and
-the @code{cdr} contains a function symbol, or a simple string.
-
-
@node Daemons
@section Daemons
@cindex demons
The size in pixels of gravatars. Gravatars are always square, so one
number for the size is enough.
-@item gnus-gravatar-relief
-@vindex gnus-gravatar-relief
-If non-nil, adds a shadow rectangle around the image. The value,
-relief, specifies the width of the shadow lines, in pixels. If relief
-is negative, shadows are drawn so that the image appears as a pressed
-button; otherwise, it appears as an unpressed button.
+@item gnus-gravatar-properties
+@vindex gnus-gravatar-properties
+List of image properties applied to Gravatar images.
+
+@item gnus-gravatar-too-ugly
+@vindex gnus-gravatar-too-ugly
+Regexp that matches mail addresses or names of people of which avatars
+should not be displayed, or @code{nil}. It default to the value of
+@code{gnus-article-x-face-too-ugly} (@pxref{X-Face}).
@end table
group:
@table @kbd
-@item M-d
+@item $
+@itemx M-d
@itemx M s x
@itemx S x
-@kindex M-d
-@kindex S x
-@kindex M s x
+@kindex $ (Summary)
+@kindex M-d (Summary)
+@kindex S x (Summary)
+@kindex M s x (Summary)
@findex gnus-summary-mark-as-spam
@findex gnus-summary-mark-as-spam
Mark current article as spam, showing it with the @samp{$} mark
spam-move-spam-nonspam-groups-only nil
spam-mark-only-unseen-as-spam t
spam-mark-ham-unread-before-move-from-spam-group t
- nnimap-split-rule 'nnimap-split-fancy
;; @r{understand what this does before you copy it to your own setup!}
+ ;; @r{for nnimap you'll probably want to set nnimap-split-methods, see the manual}
nnimap-split-fancy '(|
;; @r{trace references to parents and put in their group}
(: gnus-registry-split-fancy-with-parent)
@example
(setq spam-use-spamoracle t
spam-split-group "Junk"
+ ;; @r{for nnimap you'll probably want to set nnimap-split-methods, see the manual}
nnimap-split-inbox '("INBOX")
- nnimap-split-rule 'nnimap-split-fancy
nnimap-split-fancy '(| (: spam-split) "INBOX"))
@end example
the sender in addition to the Message-ID. Several strategies are
available.
+@item
+Refer to messages by ID
+
+Commands like @code{gnus-summary-refer-parent-article} can take
+advantage of the registry to jump to the referred article, regardless
+of the group the message is in.
+
@item
Store custom flags and keywords
@menu
* Setup::
* Fancy splitting to parent::
+* Registry Article Refer Method::
* Store custom flags and keywords::
* Store arbitrary data::
@end menu
The file where the registry will be stored between Gnus sessions.
@end defvar
+@node Registry Article Refer Method
+@subsection Fetching by @code{Message-ID} Using the Registry
+
+The registry knows how to map each @code{Message-ID} to the group it's
+in. This can be leveraged to enhance the ``article refer method'',
+the thing that tells Gnus how to look up an article given its
+Message-ID (@pxref{Finding the Parent}).
+
+@vindex nnregistry
+@vindex gnus-refer-article-method
+
+The @code{nnregistry} refer method does exactly that. It has the
+advantage that an article may be found regardless of the group it's
+in---provided its @code{Message-ID} is known to the registry. It can
+be enabled by augmenting the start-up file with something along these
+lines:
+
+@example
+;; Keep enough entries to have a good hit rate when referring to an
+;; article using the registry. Use long group names so that Gnus
+;; knows where the article is.
+(setq gnus-registry-max-entries 2500
+ gnus-registry-use-long-group-names t)
+
+(gnus-registry-initialize)
+
+(setq gnus-refer-article-method
+ '(current
+ (nnregistry)
+ (nnweb "gmane" (nnweb-type gmane))))
+@end example
+
+The example above instructs Gnus to first look up the article in the
+current group, or, alternatively, using the registry, and finally, if
+all else fails, using Gmane.
+
@node Fancy splitting to parent
@subsection Fancy splitting to parent
Masanobu @sc{Umeda}---the writer of the original @sc{gnus}.
@item
-Shenghuo Zhu---uudecode.el, mm-uu.el, rfc1843.el, webmail.el,
+Shenghuo Zhu---uudecode.el, mm-uu.el, rfc1843.el,
nnwarchive and many, many other things connected with @acronym{MIME} and
other types of en/decoding, as well as general bug fixing, new
functionality and stuff.
You can do lots of strange stuff with the Gnus window & frame
configuration (@pxref{Window Layout}).
-@item
-You can click on buttons instead of using the keyboard
-(@pxref{Buttons}).
-
@end itemize