Colin Baxter wrote:
>>>>>> James Thomas writes:
>
> > Colin Baxter writes:
> >> I have a group called `mail.expiry' that I use for emails that
> >> are awaiting final expiry. Every now and again I have to compact
> >> the group in order to see old messages.
> >>
> >> Is there anything I can put in my ~/.gnus.el that will always
> >> keep the group compacted? At present the relevant part of my
> >> ~/.gnus.el is simply (setq nnmail-expiry-target
> >> "nnml:mail.expiry").
>
> > Pyromania writes:
>
> >> On Thu, Jun 05 2025, Colin Baxter wrote:
> >>
> >>> ...
> >>
> >> I have an ‘️nnml:mail.expiry’, too. Is compacting it required?
> >> Does it provide any user-facing benefit?
> >>
> >> If so, one can use a timer, or use ‘️gnus-demon-add-handler’ and a
> >> custom demon function.
>
> > A timer won't persist across sessions, which are likely in the
> > weekly intervals you need for this. The only way to do that _I_
> > know of is:
>
> > (progn (require 'gnus-group) (gnus-group-read-ephemeral-group
> > "nntp+news.gmane.io:gmane.emacs.devel" '(nntp "news.gmane.io") nil
> > nil nil nil nil 1) (gnus-summary-goto-article
> > "<[email protected]>"))
>
> Thanks for this. I have found that entering 'Gz' is sufficient since I
> only need to compact occasionally.
Never give up! :D
You may rightly ignore my general-purpose customization - which runs a
sexp if it's the first thing in the diary entry:
--8<---------------cut here---------------start------------->8---
'(appt-disp-window-function
'(lambda (min-to-app time text)
(let
((rval
(read-from-string text
(cdr
;; Time.
(read-from-string
(string-trim-left text))))))
(when (listp (car rval))
(setq text (substring text (cdr rval))))
(appt-disp-window min-to-app time text)
(when (listp (car rval)) (ignore-errors (eval (car rval)))))))
'(appt-display-interval 5)
'(appt-message-warning-time 5)
--8<---------------cut here---------------end--------------->8---
--