It can be convenient to let Gnus keep track of when you last read a
group. To set the ball rolling, you should add
gnus-group-set-timestamp
to gnus-select-group-hook
:
(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
After doing this, each time you enter a group, it’ll be recorded.
This information can be displayed in various ways—the easiest is to use the ‘%d’ spec in the group line format:
(setq gnus-group-line-format "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n")
This will result in lines looking like:
* 0: mail.ding 19961002T012943 0: custom 19961002T012713
As you can see, the date is displayed in compact ISO 8601 format. This may be a bit too much, so to just display the date, you could say something like:
(setq gnus-group-line-format "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
If you would like greater control of the time format, you can use a user-defined format spec. Something like the following should do the trick:
(setq gnus-group-line-format "%M\%S\%p\%P\%5y: %(%-40,40g%) %ud\n") (defun gnus-user-format-function-d (headers) (let ((time (gnus-group-timestamp gnus-tmp-group))) (if time (format-time-string "%b %d %H:%M" time) "")))
To see what variables are dynamically bound (like
gnus-tmp-group
), you have to look at the source code. The
variable names aren’t guaranteed to be stable over Gnus versions,
either.