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
  …  …

Reply via email to