After writing about counsel-org-clock, I got an email from Kevin Brubeck Unhammer, the author of another package facilitating clocking recent things: org-mru-clock (where “mru” stands for “most recently used” items).
It looks similar to counsel-org-clock
in that it uses completion (not necessarily Ivy) to clock in (or jump to) one of the recently clocked tasks. However, what is really the killer feature of this package is that it can look through your agenda files and prefill your clock history with (a given number of) things you actually clocked.
Even though Org-mode has the persistence of clock history built-in, org-mru-clock
has its place for me. It turns out that the default history gets mangled when Emacs crashes. (This is by no means a common phenomenon – I think I’ve only experienced one Emacs crash in quite a few years, even though I’m often on the bleeding edge, and this crash was most probably due to a GTK bug Emacs loyally warns of when compiling – but a system crash, or just battery failure, does happen from time to time). In such cases, org-mru-clock
is really helpful, and it will now remain in my Org-mode toolbox.
In my case, I am going to stay with counsel-org-clock
for clocking in – it has two advantages from my point of view. One is that it supports more Ivy actions (but extending org-mru-clock
with more actions should be very easy, so this is definitely not a strong argument - also, 99% of the time I only use goto and clock in). The other one is that I prefer the full path presented to me by counsel-org-clock
than the org-mru-clock
‘s format of “title (parent)” (but again – this should be easy to add, and some people may actually prefer the shorter variant).
Still, these are just easily fixable nitpicks. I might be even tempted to send patches to Kevin one day to improve org-mru-clock
, which might then replace counsel-org-clock
altogether (and is probably a better choice for non-Ivy-users anyway). For now, I’m going to use both, for different purposes.