Next: File Commands, Previous: Group Information, Up: Misc Group Stuff [Contents][Index]

#### 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.