https://github.com/dxknight/helm-chronos.git
git clone 'git://github.com/dxknight/helm-chronos.git'
A Helm interface to chronos, the multiple countdown/countup timer package for Emacs https://github.com/dxknight/chronos.
Ensure you already have helm
and chronos
installed. Put helm-chronos.el
somewhere Emacs can find it and evaluate:
(require 'helm-chronos)
If you have set up access to MELPA http://melpa.org/#/getting-started, you can install helm-chronos and its dependencies using:
M-x package-install helm-chronos
If you have MELPA and use-package
https://github.com/jwiegley/use-package,
you can install (with dependencies) by evaluating:
(use-package helm-chronos :ensure t)
Add that snippet to your init file if you want helm chronos for future sessions.
M-x helm-chronos-add-timer
will pop up a helm interface to match the pattern
you enter against predefined timers. If no timer matches your pattern, a timer
definition can be entered directly and will be remembered for this and future
sessions.
In helm-chronos, the format for timers is the same as that for
chronos-add-timers-from-string
- a string consisting of a chronos expiry time
specification and a message, separated by /. For example: “5/Coffee” would be
for a timer expiring in five minutes with the message “Coffee”. See the
chronos
documentation for more details on expiry time specifications.
Setting a timer relative to another timer's expiry (rather than current time) is
done by selecting the timer and using the prefix argument, as with standard
chronos
. However, remember that with helm
, the C-u
is entered when
already in the helm interface, not before calling it up.
You can also add multiple cumulative timers by separating them with +
.
No configuration is necessary, but you will probably want to bind
helm-chronos-add-timer
to a handy key combination, and you may want to set
helm-chronos-standard-timers
to a list of time/message strings useful to your needs.
See M-x customize-group
helm-chronos for other customizable items.
If you use use-package
, you can conveniently put the customization in your init
file, for example:
(use-package helm-chronos
:ensure t
:init (setq helm-chronos-standard-timers
'( " 5/Coffee"
" 4/Soak noodles"
" 25/Pomodoro: Work on helm-chronos + 5/Pomodoro: Rest"))
:bind (("C-c t" . helm-chronos-add-timer)))
I want to steam some asparagus. I have already defined some standard timers in
the list helm-chronos-standard-timers
, and there are a few recent timers I
entered in this or previous sessions.
I narrow the selections by starting to type steam
. By the time I get to
stea
, I can see there is no steamed asparagus timer available.
I go to the start of the search pattern and clear it with C-a C-k
, then enter
a suitable timer specification of six minutes to steam the asparagus: 6/Steam
asparagus. After pressing enter, the timer is started.
The next time I call helm-chronos-add-timer
, I see that 6/Steam asparagus has
been included as a recent timer.