Emacs: tmr version 1.1.0
TMR provides facilities for setting timers using a convenient notation. Lots of commands are available to operate on timers, while there also exists a tabulated view to display all timers in a nice grid.
- Package name (GNU ELPA):
tmr
- Official manual: https://protesilaos.com/emacs/tmr
- Change log: https://protesilaos.com/emacs/tmr-changelog
- Git repositories:
- GitHub: https://github.com/protesilaos/tmr
- GitLab: https://gitlab.com/protesilaos/tmr
- Backronym: TMR May Ring; Timer Must Run.
Below are the release notes.
Version 1.1.0 on 2025-04-18
This version makes small refinements to an already stable package.
All of tmr-tabulated.el
is part of tmr.el
The command tmr-tabulated-view
, which produces a grid with
timers+descriptions, used to be in a separate file. It now is part of
the singular tmr.el
to keep things simple. Users who were using
(require 'tmr-tabulated)
or similar will now get a warning. Simply
load tmr
instead.
Refined the behaviour of the tmr-tabulated-view
command
When the command tmr-tabulated-view
(alias tmr-list-timers
) is
called interactively, it uses the *tmr-tabulated-view*
buffer just
as it did before. Though it also evaluates the new user option
tmr-list-timers-action-alist
: it is a variable that controls where
the buffer is displayed. The default value displays the buffer at the
bottom of the Emacs frame and makes some other tweaks for usability.
Watch my video on the display-buffer-alist
for further details on
how to control the display of buffers: https://protesilaos.com/codelog/2024-02-08-emacs-window-rules-display-buffer-alist/.
The tmr-tabulated-view
command is further revised to make it
callable from a program. One scenario where we do this is to interrupt
the termination of Emacs if there are running timers (more below).
TMR interrupts the termination of Emacs if it must
In the past, we did not have anything to prevent the termination of
Emacs if timers were running: Emacs would simply shut down. Now we
define the tmr-kill-emacs-query-function
, which is added to the
standard kill-emacs-query-functions
: if there are running timers, it
asks for confirmation before closing Emacs. To make it easier for
users to decide how to proceed, it also pops up the list with all the
timers (i.e. it uses tmr-tabulated-view
from Lisp, as noted above).
The list view is easier to follow
The buffer produced by tmr-tabulated-view
now uses more colours to
make it easier to track the data it presents. These are all the faces
it applies:
-
tmr-tabulated-start-time
: The time when the timer was started. -
tmr-tabulated-end-time
: The time when the timer is set to end. -
tmr-tabulated-remaining-time
: The remaining time. -
tmr-tabulated-acknowledgement
: Whether the timer needs to be “acknowledged” after it ends (if it is marked as “acknowledged”, then it will not go away until the user confirms they have seen it). -
tmr-tabulated-description
: The text describing what the timer is about.