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.

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 with tmr 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.