I don't want to expire mail in gnus

3.7k views Asked by At

I am using gnus and I would rather it not expire read mail in the usenet fashion.

This doesn't seem to be working:

(remove-hook 'gnus-mark-article-hook                                                                                                                                      
             'gnus-summary-mark-read-and-unread-as-read)                                                                                                                  
(add-hook 'gnus-mark-article-hook 'gnus-summary-mark-unread-as-read)

Any ideas to make it a little bit more like a "normal" MUA?

3

There are 3 answers

1
Rémi On

As all reasonable mail agent, gnus won't destroy (or expire) mail unless you ask it to do it.

It will hide them, so when entering a group (mailbox/folder) it will only show you mail that are unread or ticked. But if you enter a group with C-u RET, or if you use C-u M-g in the summary buffer, all hidden message will be shown.

If you really want to have all article all the time, you could use

 (defun rv-gnus-topic-select-group ()
     (gnus-topic-select-group t))

 (eval-after-load 'gnus-topic
     (gnus-define-keys gnus-topic-mode-map
    "\r" rv-gnus-topic-select-group))

But you'd better do as gnus does, and tick message you use often, and use the prefix arg when you want more.

(this is untested code, but it could work)

3
Joseph Gay On

I believe you need to set your gnus-parameters display setting. The relevant bit from info node (gnus) Gnus Parameters is:

`all'
     Display all articles, both read and unread.

Here is an example taken from the manual:

(setq gnus-parameters
      '(("mail\\..*"
         (gnus-show-threads nil)
         (gnus-use-scoring nil)
         (gnus-summary-line-format
          "%U%R%z%I%(%[%d:%ub%-23,23f%]%) %s\n")
         (gcc-self . t)
         (display . all))

        ("^nnimap:\\(foo.bar\\)$"
         (to-group . "\\1"))

        ("mail\\.me"
         (gnus-use-scoring  t))

        ("list\\..*"
         (total-expire . t)
         (broken-reply-to . t))))

This is likely not exactly what you want, but you should be able to construct a parameter set that works.

Also, Gnus will not actually expire your mail by default. For example, in your current groups the read messages should still be there, just not visible. You can check by entering the group with a C-u prefix. See (gnus) Expiring Mail info for details.

0
yPhil On
(setq gnus-large-newsgroup 'nil)

Is the only way I found to stop gnus to

  • ask me "how many articles from" and
  • show-me-all-my-mail-all-ways.