Third Time support for Emacs.
This package is compatible with Emacs >= 27.1 and has no external dependencies.
third-time.el may be placed on the
required or auto-loaded.
It is recommended that you bind
C-x M-t w (or
third-time-prefix w, see below for information about the prefix).
C-x M-t w) starts or restarts work.
It enables the mode if it is not enabled.
C-x M-t b) starts a break.
If the prefix argument is passed, it will prompt for how long the break should be, otherwise, all remaining break time is used instead.
C-x M-t l,
C-x M-t m) starts a long (or meal) break.
C-x M-t e,
C-x M-t s) ends a Third Time session (i.e., workday).
Finally, the command
C-x M-t S) describes the current status, including current time in state, and information about break times.
third-time-prefix defaults to
C-x M-t, and is the prefix for the minor mode's bindings.
If you wish the bindings to be under a different prefix, you must set the variable before loading
third-time-fraction controls what fraction of time is used for breaks.
It should be a positive integer.
third-time-change-hook are run on state changes.
Those with a named state are run on change to that state, and
third-time-change-hook is run for all changes.
third-time-mode-hook is run when the mode is enabled.
This library supports logging of state changes when
third-time-log-file is a string referring to a file.
third-time-log-time-format control the log format, the latter of which should comply with
third-time-log-format describes what a log entry looks like.
It may contain the following formatting codes:
%T: the time as formatted using
%s: the state entered.
%h: the time which has been worked at
%b: the time remaining for breaks.
third-time uses a simple minibuffer message alerting mechanism by default.
This can be overriden with
third-time-alert-function which should be a function which takes one argument, a message to alert the user with.
Other information can be
third-time-state for more advanced formatting.
Additionally, there's a "nag" timer which can be used to periodically remind the user that a break has been completed.
It is controlled with the
third-time-nag-time which is a number of minutes, if it is 0, no nagging will take place.
Users of the Universal Sidecar package can add
universal-sidecar-sections to see a summary of the current third-time status in the sidecar.
If you find a bug or wish to submit a patch, send an email to