diff options
| author | Matt Kosarek <matt.kosarek@canonical.com> | 2026-01-26 15:34:16 -0500 |
|---|---|---|
| committer | Matt Kosarek <matt.kosarek@canonical.com> | 2026-01-26 15:34:16 -0500 |
| commit | 942f58a42e065c4c8751a181b3f7e9bf0696f643 (patch) | |
| tree | a515ddd4daa08bf8428dcc13fb68b6eaae9ba695 /lisp/org-custom.el | |
| parent | a616a3c3edbe05652a2056b0b25593c528ceb310 (diff) | |
featrue: automatically clocking in and out on todos and done tasks
Diffstat (limited to 'lisp/org-custom.el')
| -rw-r--r-- | lisp/org-custom.el | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lisp/org-custom.el b/lisp/org-custom.el index d999a83..a6c31c3 100644 --- a/lisp/org-custom.el +++ b/lisp/org-custom.el @@ -62,8 +62,7 @@ (setq org-default-notes-file (concat org-directory "/inbox.org")) (setq org-todo-keywords - '((sequence "TODO" "PROGRESS" "VERIFY" "|" "DONE" "ABANDONED") - (sequence "IDEA(i)" "QUESTION(q)" "|" "RESOLVED"))) + '((sequence "TODO" "PROGRESS" "|" "DONE"))) (setq org-return-follows-link t) @@ -159,5 +158,24 @@ (setq org-log-repeat nil) +(defun mk/org-clock-active-p () + "Return non-nil if a clock is currently running." + (and (boundp 'org-clock-current-task) + org-clock-current-task)) + +(defun mk/org-auto-clock-based-on-state () + "Automatically clock in/out based on TODO state changes." + (when (derived-mode-p 'org-mode) + (pcase org-state + ("PROGRESS" + (unless (mk/org-clock-active-p) + (org-clock-in))) + ("DONE" + (when (mk/org-clock-active-p) + (org-clock-out)))))) + +(add-hook 'org-after-todo-state-change-hook #'mk/org-auto-clock-based-on-state) +(setq org-clock-history-length 0) + (provide 'org-custom) ;;; org-custom.el ends here |
