org: Resolving idle time
8.4.3 Resolving idle time and continuous clocking
-------------------------------------------------
Resolving idle time
...................
If you clock in on a work item, and then walk away from your
computer—perhaps to take a phone call—you often need to “resolve” the
time you were away by either subtracting it from the current clock, or
applying it to another one.
By customizing the variable ‘org-clock-idle-time’ to some integer,
such as 10 or 15, Emacs can alert you when you get back to your computer
after being idle for that many minutes(1), and ask what you want to do
with the idle time. There will be a question waiting for you when you
get back, indicating how much idle time has passed (constantly updated
with the current amount), as well as a set of choices to correct the
discrepancy:
‘k’
To keep some or all of the minutes and stay clocked in, press ‘k’.
Org will ask how many of the minutes to keep. Press <RET> to keep
them all, effectively changing nothing, or enter a number to keep
that many minutes.
‘K’
If you use the shift key and press ‘K’, it will keep however many
minutes you request and then immediately clock out of that task.
If you keep all of the minutes, this is the same as just clocking
out of the current task.
‘s’
To keep none of the minutes, use ‘s’ to subtract all the away time
from the clock, and then check back in from the moment you
returned.
‘S’
To keep none of the minutes and just clock out at the start of the
away time, use the shift key and press ‘S’. Remember that using
shift will always leave you clocked out, no matter which option you
choose.
‘C’
To cancel the clock altogether, use ‘C’. Note that if instead of
canceling you subtract the away time, and the resulting clock
amount is less than a minute, the clock will still be canceled
rather than clutter up the log with an empty entry.
What if you subtracted those away minutes from the current clock, and
now want to apply them to a new clock? Simply clock in to any task
immediately after the subtraction. Org will notice that you have
subtracted time “on the books”, so to speak, and will ask if you want to
apply those minutes to the next task you clock in on.
There is one other instance when this clock resolution magic occurs.
Say you were clocked in and hacking away, and suddenly your cat chased a
mouse who scared a hamster that crashed into your UPS’s power button!
You suddenly lose all your buffers, but thanks to auto-save you still
have your recent Org mode changes, including your last clock in.
If you restart Emacs and clock into any task, Org will notice that
you have a dangling clock which was never clocked out from your last
session. Using that clock’s starting time as the beginning of the
unaccounted-for period, Org will ask how you want to resolve that time.
The logic and behavior is identical to dealing with away time due to
idleness; it is just happening due to a recovery event rather than a set
amount of idle time.
You can also check all the files visited by your Org agenda for
dangling clocks at any time using ‘M-x org-resolve-clocks RET’ (or ‘C-c
C-x C-z’).
Continuous clocking
...................
You may want to start clocking from the time when you clocked out the
previous task. To enable this systematically, set
‘org-clock-continuously’ to ‘t’. Each time you clock in, Org retrieves
the clock-out time of the last clocked entry for this session, and start
the new clock from there.
If you only want this from time to time, use three universal prefix
arguments with ‘org-clock-in’ and two ‘C-u C-u’ with
‘org-clock-in-last’.
---------- Footnotes ----------
(1) On computers using macOS, idleness is based on actual user
idleness, not just Emacs’ idle time. For X11, you can install a utility
program ‘x11idle.c’, available in the ‘contrib/scripts’ directory of the
Org git distribution, or install the ‘xprintidle’ package and set it to
the variable ‘org-clock-x11idle-program-name’ if you are running Debian,
to get the same general treatment of idleness. On other systems, idle
time refers to Emacs idle time only.