Version 1.1.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 Stavrou i...@protesilaos.com ━━━━━━━━━━━━━━━━━━━━━━ This manual, written by Protesilaos Stavrou, 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.1.0, released on 2025-04-18. 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.2.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.1.0 on 2025-04-18 Version 1.0.0 on 2024-08-30 Version 1.1.0 on 2025-04-18 ═══════════════════════════ This version makes small refinements to an already stable package. All of `tmr-tabulated.el' is part of `tmr.el' ────────────────────────────────────────────── The command `tmr-tabulated-view', which produces a grid with timers+descriptions, used to be in a separate file. It now is part of the singular `tmr.el' to keep things simple. Users who were using `(require 'tmr-tabulated)' or similar will now get a warning. Simply load `tmr' instead. Refined the behaviour of the `tmr-tabulated-view' command ───────────────────────────────────────────────────────── When the command `tmr-tabulated-view' (alias `tmr-list-timers') is called interactively, it uses the `*tmr-tabulated-view*' buffer just as it did before. Though it also evaluates the new user option `tmr-list-timers-action-alist': it is a variable that controls where the buffer is displayed. The default value displays the buffer at the bottom of the Emacs frame and makes some other tweaks for usability. Watch my video on the `display-buffer-alist' for further details on how to control the display of buffers: <https://protesilaos.com/codelog/2024-02-08-emacs-window-rules-display-buffer-alist/>. The `tmr-tabulated-view' command is further revised to make it callable from a program. One scenario where we do this is to interrupt the termination of Emacs if there are running timers (more below). TMR interrupts the termination of Emacs if it must ────────────────────────────────────────────────── In the past, we did not have anything to prevent the termination of Emacs if timers were running: Emacs would simply shut down. Now we define the `tmr-kill-emacs-query-function', which is added to the standard `kill-emacs-query-functions': if there are running timers, it asks for confirmation before closing Emacs. To make it easier for users to decide how to proceed, it also pops up the list with all the timers (i.e. it uses `tmr-tabulated-view' from Lisp, as noted above). The list view is easier to follow ───────────────────────────────── The buffer produced by `tmr-tabulated-view' now uses more colours to make it easier to track the data it presents. These are all the faces it applies: `tmr-tabulated-start-time' The time when the timer was started. `tmr-tabulated-end-time' The time when the timer is set to end. `tmr-tabulated-remaining-time' The remaining time. `tmr-tabulated-acknowledgement' Whether the timer needs to be "acknowledged" after it ends (if it is marked as "acknowledged", then it will not go away until the user confirms they have seen it). `tmr-tabulated-description' The text describing what the timer is about. 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" ──────────────────────────────── … …