Emacs: tmr version 1.0.0
TMR is an Emacs package that 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.0.0 on 2024-08-30
This version adds quality-of-life improvements to an already stable base.
The tmr-with-details
supersedes the tmr-with-description
The tmr-with-description
would always prompt for a time input and
then a description of the resulting timer object. We now provide a
more general command, tmr-with-details
, which does this in addition
to an extra prompt for an acknowledgement. What an “acknowledgement”
is, is documented in the following section.
Timers can now be “acknowledged”
Normally, when a timer elapses it does not stick around to notify the user again and again. This means that the user may miss the one notification if, say, they were away from the computer. As such, we now provide an opt-in mechanism where a timer persists until it is explicitly acknowledged as finished. The acknowledgement is either an additional duration for the timer to produce another notification in the future, or an explicit consent from the timer to count as finished. The goal is to help the user never miss a timer.
Setting up an acknowledgement can be done in the following ways:
-
Call the standard
tmr
command with a prefix argument (C-u
by default). This will make it prompt for a description and an acknowledgement. -
Use the new command
tmr-with-details
, which asks for a timer input, a description, and whether to include an acknowledgement prompt. -
Use the new command
tmr-toggle-acknowledge
, which will prompt for a timer and then toggle the acknowledgement status on/off. In this scenario, the timer already exists (e.g. it was created withtmr
without a prefix argument).
All timers are listed in a nice list with the command
tmr-tabulated-view
. An extra column will indicate their
acknowledgement status.
Thanks to Daniel Mendler for contributing this feature. This was done in the form of patches, sent via email. Daniel has assigned copyright to the Free Software Foundation.
The tmr-list-timers
is an alias for tmr-tabulated-view
Perhaps the “list timers” is a more meaningful description of what the command does, as opposed to “tabulated view”.
Use the tmr-prefix-map
We now define a prefix keymap that users can bind directly to a key
and get all the TMR commands in one go. For example, this adds all TMR
commands behind the C-c t
prefix:
(define-key global-map (kbd "C-c t") 'tmr-prefix-map)
Thanks to Daniel Mendler for this patch.
TMR uses its own faces
Theme developers or users can now modify how the various TMR indicators look by tweaking the faces we provide:
tmr-duration
tmr-description
tmr-start-time
tmr-end-time
tmr-is-acknowledged
tmr-must-be-acknowledged
tmr-finished
The default values inherit from basic faces that should be supported everywhere.
Existing users will not notice any visual difference, other things being equal.
Fixed some typos in the manual
Thanks to Ed Tavinor for the contribution. The change pertains to typos and is within the limit of edits that do not require copyright assignment to the Free Software Foundation.