gnus: Group Timestamp
2.18.3 Group Timestamp
----------------------
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.