gnus: Propagating marks

 
 8.2.7 Propagating marks
 -----------------------
 
 First of: you really need a patched mairix binary for using the marks
 propagation feature efficiently.  Otherwise, you would have to update
 the mairix database all the time.  You can get the patch at
 
    <http://www.randomsample.de/mairix-maildir-patch.tar>
 
    You need the mairix v0.21 source code for this patch; everything else
 is explained in the accompanied readme file.  If you don’t want to use
 marks propagation, you don’t have to apply these patches, but they also
 fix some annoyances regarding changing maildir flags, so it might still
 be useful to you.
 
    With the patched mairix binary, you can use ‘nnmairix’ as an
 alternative to mail splitting (SeeFancy Mail Splitting).  For
 example, instead of splitting all mails from ‘david@foobar.com’ into a
 group, you can simply create a search group with the query
 ‘f:david@foobar.com’.  This is actually what “smart folders” are all
 about: simply put everything in one mail folder and dynamically create
 searches instead of splitting.  This is more flexible, since you can
 dynamically change your folders any time you want to.  This also implies
 that you will usually read your mails in the ‘nnmairix’ groups instead
 of your “real” mail groups.
 
    There is one problem, though: say you got a new mail from
 ‘david@foobar.com’; it will now show up in two groups, the “real” group
 (your INBOX, for example) and in the ‘nnmairix’ search group (provided
 you have updated the mairix database).  Now you enter the ‘nnmairix’
 group and read the mail.  The mail will be marked as read, but only in
 the ‘nnmairix’ group—in the “real” mail group it will be still shown as
 unread.
 
    You could now catch up the mail group (SeeGroup Data), but this
 is tedious and error prone, since you may overlook mails you don’t have
 created ‘nnmairix’ groups for.  Of course, you could first use
 ‘nnmairix-goto-original-article’ (Seennmairix keyboard shortcuts)
 and then read the mail in the original group, but that’s even more
 cumbersome.
 
    Clearly, the easiest way would be if marks could somehow be
 automatically set for the original article.  This is exactly what _marks
 propagation_ is about.
 
    Marks propagation is inactive by default.  You can activate it for a
 certain ‘nnmairix’ group with
 ‘nnmairix-group-toggle-propmarks-this-group’ (bound to ‘G b p’).  This
 function will warn you if you try to use it with your default search
 group; the reason is that the default search group is used for temporary
 searches, and it’s easy to accidentally propagate marks from this group.
 However, you can ignore this warning if you really want to.
 
    With marks propagation enabled, all the marks you set in a ‘nnmairix’
 group should now be propagated to the original article.  For example,
 you can now tick an article (by default with ‘!’) and this mark should
 magically be set for the original article, too.
 
    A few more remarks which you may or may not want to know:
 
    Marks will not be set immediately, but only upon closing a group.
 This not only makes marks propagation faster, it also avoids problems
 with dangling symlinks when dealing with maildir files (since changing
 flags will change the file name).  You can also control when to
 propagate marks via ‘nnmairix-propagate-marks-upon-close’ (see the
 doc-string for details).
 
    Obviously, ‘nnmairix’ will have to look up the original group for
 every article you want to set marks for.  If available, ‘nnmairix’ will
 first use the registry for determining the original group.  The registry
 is very fast, hence you should really, really enable the registry when
 using marks propagation.  If you don’t have to worry about RAM and disc
 space, set ‘gnus-registry-max-entries’ to a large enough value; to be on
 the safe side, choose roughly the amount of mails you index with mairix.
 
    If you don’t want to use the registry or the registry hasn’t seen the
 original article yet, ‘nnmairix’ will use an additional mairix search
 for determining the file name of the article.  This, of course, is way
 slower than the registry—if you set hundreds or even thousands of marks
 this way, it might take some time.  You can avoid this situation by
 setting ‘nnmairix-only-use-registry’ to ‘t’.
 
    Maybe you also want to propagate marks the other way round, i.e., if
 you tick an article in a "real" mail group, you’d like to have the same
 article in a ‘nnmairix’ group ticked, too.  For several good reasons,
 this can only be done efficiently if you use maildir.  To immediately
 contradict myself, let me mention that it WON’T work with ‘nnmaildir’,
 since ‘nnmaildir’ stores the marks externally and not in the file name.
 Therefore, propagating marks to ‘nnmairix’ groups will usually only work
 if you use an IMAP server which uses maildir as its file format.
 
    If you work with this setup, just set
 ‘nnmairix-propagate-marks-to-nnmairix-groups’ to ‘t’ and see what
 happens.  If you don’t like what you see, just set it to ‘nil’ again.
 One problem might be that you get a wrong number of unread articles;
 this usually happens when you delete or expire articles in the original
 groups.  When this happens, you can recreate the ‘nnmairix’ group on the
 back end using ‘G b d’.