Version 1.4.0 of package Tmr has just been released in GNU ELPA. You can now find it in M-x list-packages RET.
Tmr describes itself as: ====================================== Set timers using a convenient notation ====================================== More at https://elpa.gnu.org/packages/tmr.html ## Summary: ━━━━━━━━━━━━━━━━━━━━━━ TMR MAY RING Protesilaos [email protected] ━━━━━━━━━━━━━━━━━━━━━━ This manual, written by Protesilaos, describes the customization options for `tmr' (or TMR, TMR May Ring, …), and provides every other piece of information pertinent to it. The name of the package is pronounced as “timer” or “T-M-R”. The documentation furnished herein corresponds to stable version 1.4.0, released on 2026-07-31. Any reference to a newer feature which does not yet form part of the latest tagged commit, is explicitly marked as such. Current development target is 1.5.0-dev. ## Recent NEWS: ━━━━━━━━━━━━━━━━━━━ CHANGE LOG OF TMR ━━━━━━━━━━━━━━━━━━━ This document contains the release notes for each tagged commit on the project's main git repository: <https://github.com/protesilaos/tmr>. The newest release is at the top. For further details, please consult the manual: <https://protesilaos.com/emacs/tmr>. Table of Contents ───────────────── Version 1.4.0 on 2026-07-31 Version 1.4.0 on 2026-07-31 ═══════════════════════════ TMR is an efficient package that has been stable for years. This new version introduces some nice new features as well as several smaller internal refinements. Create a timer that repeats ─────────────────────────── The command `tmr-repeat' prompts for a duration, like the standard `tmr' command but also asks for a number of times to repeat the given timer. When called with a prefix argument (`C-u' with default keybindings), `tmr-repeat' will also ask for a description for the new timer and whether it should be acknowledged or not after all repetitions have elapsed. Thanks to Óscar Fuentes for contributing the original implementation of `tmr-repeat' (with many extra changes/features by me). This was done in pull request 16: <https://github.com/protesilaos/tmr/pull/16>. Óscar has assigned copyright to the Free Software Foundation. Modify the repeat count of an existing timer ──────────────────────────────────────────── The command `tmr-edit-repeat-count' prompts for an existing timer and updates its repeat count. If the repeat count is set to `0', then the timer is no longer considered repeatable. As with all commands that operate on existing timers, `tmr-edit-repeat-count' automatically applies to the timer at point when called from inside the tabulated list of timers (per `tmr-tabulated-view'). Modifying a timer's repeat count does not start a new timer. It simply updates the relevant data. Use the command `tmr-clone' to start a new timer using the data of an existing timer. The tabulated view has more columns and all of them can be adjusted ─────────────────────────────────────────────────────────────────── The tabulated list of timers, which is typically produced by the command `tmr-tabulated-view', now has extra columns for the data that pertains to repeatable timers. Users who want to control which columns are displayed, and in what order, can modify the user option `tmr-tabulated-columns'. Its documentation covers the technicalities. The default value is to display all columns. Completion metadata for the prompt that selects a timer ─────────────────────────────────────────────────────── Advanced users can now modify all the `completion-metadata' associated with the prompt that reads/selects one among the existing timer objects (the function is `tmr-read-timer'). The relevant variable is `tmr-completion-metadata'. I am not providing this as a user option, because regular users will anyway not be able to do much with it as it involves custom functions. Timers in the completion prompt are sorted by end time ────────────────────────────────────────────────────── The prompt for selecting a timer now sorts candidates by their end time. The closest end time appears at the top. This affects all commands that operate on a timer, such as `tmr-edit-repeat-count', `tmr-cancel', and more. In the past, there was no sorting whatsoever. Users who prefer that style can add the following to their configuration: ┌──── │ (setq tmr-completion-metadata │ (list │ (cons 'category 'tmr-timer) │ (cons 'display-sort-function #'identity) ; THIS IS THE RELEVANT PART │ (cons 'annotation-function #'tmr-completion-annotate))) └──── Miscellaneous ───────────── • The manual is easier to read. I have rewritten it to group commands … …
