Dear Emacs maintainers,
I want to propose the addition of an optional recency column to Ibuffer,
which shows the last buffer display time. Sorting by recency is already
supported by Ibuffer (ibuffer-do-sort-by-recency). I use the following
code in my configuration:
(defvar-keymap ibuffer-recency-header-map
"<mouse-1>" #'ibuffer-do-sort-by-recency)
(define-ibuffer-column recency
(:inline t :summarizer ignore :header-mouse-map ibuffer-recency-header-map)
(if-let ((time (buffer-local-value 'buffer-display-time buffer)))
(progn
(require 'marginalia)
(marginalia--time (buffer-local-value 'buffer-display-time buffer)))
"never"))
The time string is formatted in a human readable form, relative to to
the current time, e.g., "2 mins ago", "30 secs ago" or "never". I use
the function from the Marginalia package from GNU ELPA for formatting
right now. As far as I know Emacs does not yet provide a relative time
formatting function? Maybe there is interest in adding marginalia--time
to Emacs, e.g., with the name format-time-relative? As far as I know,
multiple packages define a similar formatting function, such that we
could potentially get some code reuse. The function could be ported
back via Compat to make it available to ELPA packages.
Thank you!