10.19.1 Gnus Registry Setup

Fortunately, setting up the Gnus registry is pretty easy:

(setq gnus-registry-max-entries 2500)

(gnus-registry-initialize)

This adds registry saves to Gnus newsrc saves (which happen on exit and when you press s from the *Group* buffer). It also adds registry calls to article actions in Gnus (copy, move, etc.) so it’s not easy to undo the initialization. See gnus-registry-initialize for the gory details.

Here are other settings used by the author of the registry (understand what they do before you copy them blindly).

(setq
 gnus-registry-split-strategy 'majority
 gnus-registry-ignored-groups '(("nntp" t)
                                ("nnrss" t)
                                ("spam" t)
                                ("train" t))
 gnus-registry-max-entries 500000
 ;; this is the default
 gnus-registry-track-extra '(sender subject))

They say: keep a lot of messages around, track messages by sender and subject (not just parent Message-ID), and when the registry splits incoming mail, use a majority rule to decide where messages should go if there’s more than one possibility. In addition, the registry should ignore messages in groups that match “nntp”, “nnrss”, “spam”, or “train.”

You are doubtless impressed by all this, but you ask: “I am a Gnus user, I customize to live. Give me more.” Here you go, these are the general settings.

Variable: gnus-registry-unfollowed-groups

The groups that will not be followed by gnus-registry-split-fancy-with-parent. They will still be remembered by the registry. This is a list of regular expressions. By default any group name that ends with “delayed”, “drafts”, “queue”, or “INBOX”, belongs to the nnmairix backend, or contains the word “archive” is not followed.

Variable: gnus-registry-max-entries

The number (an integer or nil for unlimited) of entries the registry will keep. If the registry has reached or exceeded this size, it will reject insertion of new entries.

Variable: gnus-registry-register-all

If this option is non-nil, the registry will register all messages, as you see them. This is important to making split-to-parent and Message-ID references work correctly, as the registry needs to know where all messages are, but it can slow down group opening and the saving of Gnus. If this option is nil, entries must be created manually, for instance by storing a custom flag or keyword for the message.

Variable: gnus-registry-prune-factor

This option (a float between 0 and 1) controls how much the registry is cut back during pruning. In order to prevent constant pruning, the registry will be pruned back to less than gnus-registry-max-entries. This option controls exactly how much less: the target is calculated as the maximum number of entries minus the maximum number times this factor. The default is 0.1: i.e., if your registry is limited to 50000 entries, pruning will try to cut back to 45000 entries. Entries with keys marked as precious will not be pruned.

Variable: gnus-registry-default-sort-function

This option specifies how registry entries are sorted during pruning. If a function is given, it should sort least valuable entries first, as pruning starts from the beginning of the list. The default value is gnus-registry-sort-by-creation-time, which proposes the oldest entries for pruning. Set to nil to perform no sorting, which will speed up the pruning process.

Variable: gnus-registry-cache-file

The file where the registry will be stored between Gnus sessions. By default the file name is .gnus.registry.eieio in the same directory as your .newsrc.eld.