diff options
| author | Raúl Benencia <id@rbenencia.name> | 2026-01-07 09:37:09 -0300 |
|---|---|---|
| committer | Raúl Benencia <id@rbenencia.name> | 2026-01-07 09:37:09 -0300 |
| commit | 65816d0e3e762c96deee3dc0164c530b3e7087de (patch) | |
| tree | 592d2a5713b1b1ac38c17bcb41670fedf22beeb5 | |
| parent | b046645918330e788a6845310e81a325d23855dd (diff) | |
Session now starts on activity by default
| -rw-r--r-- | org-tempus.el | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/org-tempus.el b/org-tempus.el index b54186a..f07aa63 100644 --- a/org-tempus.el +++ b/org-tempus.el @@ -113,6 +113,12 @@ The value is a string like: :type 'integer :group 'org-tempus) +(defcustom org-tempus-session-starts-on-activity t + "When non-nil, start session tracking as soon as activity is detected. +When nil, start session tracking on clock-in." + :type 'boolean + :group 'org-tempus) + (defcustom org-tempus-session-threshold-minutes 30 "Minutes of continuous session after which a notification is sent." :type 'integer @@ -472,13 +478,18 @@ Known providers are `emacs' (activity inside Emacs), (gap (and last-out (float-time (time-subtract org-clock-start-time last-out))))) (setq org-tempus--session-start-time - (if (and gap - (>= gap 0) - (<= gap org-tempus-session-gap-seconds)) - (or org-tempus--session-start-time org-clock-start-time) - (progn - (org-tempus--reset-notification-state) - org-clock-start-time)))))) + (cond + ((and org-tempus-session-starts-on-activity + org-tempus--session-start-time + (not last-out)) + org-tempus--session-start-time) + ((and gap + (>= gap 0) + (<= gap org-tempus-session-gap-seconds)) + (or org-tempus--session-start-time org-clock-start-time)) + (t + (org-tempus--reset-notification-state) + org-clock-start-time)))))) (defun org-tempus--current-session-duration () "Return current session duration in seconds. @@ -634,6 +645,9 @@ A session does not reset when switching tasks within (let ((start-time (time-subtract (current-time) (seconds-to-time org-tempus--idle-active-streak)))) + (when (and org-tempus-session-starts-on-activity + (not org-tempus--session-start-time)) + (setq org-tempus--session-start-time start-time)) (unless (or (org-tempus--maybe-auto-clock-in start-time) (org-tempus--maybe-auto-clock-in-default start-time)) (when (org-tempus--notification-allowed-p) |
