summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/org-custom.el22
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