Emacs: tmr version 1.2.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.2.0 on 2025-10-06
This release introduces several quality-of-life refinements to an already stable and featureful package.
Timers can now appear on the modeline
The new minor mode tmr-mode-line-mode
controls whether running
timers are displayed on the mode line. More specifically, they are
displayed in the global-mode-string
, which can also be set in the
tab-bar-mode
(this way the information appears in one place instead
of all the mode lines, assuming default settings).
The exact format of a timer on display is controlled by the user
option tmr-mode-line-format
. The number of timers is set with the
option tmr-mode-line-max-timers
. The separator between multiple
timers is tmr-mode-line-separator
. The length of each timer’s
optional description is subject to tmr-mode-line-max-desc-length
.
While the entire indicator can have a prefix, per tmr-mode-line-prefix
.
Thanks to Steven Allen for contributing the original version of this
feature in pull request 2: https://github.com/protesilaos/tmr/pull/2.
Steven has assigned copyright to the Free Software Foundation. Further
changes by me, such as to make the timers on the mode line clickable
(which produces a tabulated view, per tmr-tabulated-view
).
Notifications for more operating systems
Timers can optionally trigger a system notification, via the abnormal
hook tmr-timer-finished-functions
. The relevant function is
tmr-notification-notify
. It used to only support Linux. Now it is
extended to handle Android, Windows, and Haiku.
Thanks to Lucas Quintana for the contribution in pull request 10: https://github.com/protesilaos/tmr/pull/10. Lucas has assigned copyright to the Free Software Foundation.
The tabulated timers have a “duration” column
The tmr-tabulated-view
command (alias tmr-list-timers
) now
includes a “duration” column, in addition to all the other informative
data on display.
[ Remember that the tabulated view can be used to create, duplicate, edit, etc. the timers. ]
Thanks to jpg for suggesting this in issue 11: https://github.com/protesilaos/tmr/issues/11.
Miscellaneous
-
System notifications specify the
:app-icon
of Emacs. It will be displayed, if the underlying software supports it (I see it on Linux, anyway). -
The option to play the
tmr-sound-file
via the abnormal hooktmr-timer-finished-functions
is redone to not rely on the system shell (implicitlybash
). This way, users who use exotic shell alternatives will not run into any trouble. This is done in response to a relevant problem that g-gundam was facing with thenushell
: https://github.com/protesilaos/tmr/pull/7. -
The function
tmr-notification-notify
is better at informing the user that it has produced the warning about the lack of DBUS support. Before, the notification did not identity itself as belonging to thetmr
package. -
The function
tmr-running-timers-p
is now available as a standalone function to do what was done before inside other functions. This is useful for anyone writing custom code on top oftmr
. Thanks to Eugene Mikhaylov for suggesting the idea in issue 9: https://github.com/protesilaos/tmr/issues/9. -
The manual is updated to include whatever necessary from the aforementioned.