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.