From 5c34c360251026ae45f9bac375072bb882b28ef6 Mon Sep 17 00:00:00 2001 From: Nathan McCarty Date: Tue, 13 Sep 2022 22:11:06 -0400 Subject: [PATCH] Tweak org todo sequences --- doom.d/config.el | 38 ++++++++++++++++++++++++++++++++++++++ doom.d/config.org | 46 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 81 insertions(+), 3 deletions(-) diff --git a/doom.d/config.el b/doom.d/config.el index e15fa03..40cfb7d 100644 --- a/doom.d/config.el +++ b/doom.d/config.el @@ -246,8 +246,45 @@ work if it thinks it needs to." (after! org (setq org-log-into-drawer t + org-log-refile 'time + org-log-repeat 'time + org-log-reschedule 'time org-log-done 'time)) +(after! org + (setq org-todo-keywords + '((sequence + "TODO(t)" ; A task that needs doing & is ready to do + "PROJ(p)" ; A project, which usually contains other tasks + "LOOP(r)" ; A recurring task + "STRT(s!)" ; A task that is in progress + "WAIT(w!)" ; Something external is holding up this task + "HOLD(h!)" ; This task is paused/on hold because of me + "IDEA(i)" ; An unconfirmed and unapproved task or notion + "|" + "DONE(d!)" ; Task successfully completed + "KILL(k!)") ; Task was cancelled, aborted or is no longer applicable + (sequence + "[ ](T)" ; A task that needs doing + "[-](S!)" ; Task is in progress + "[?](W!)" ; Task is being held up or paused + "|" + "[X](D!)") ; Task was completed + (sequence + "|" + "OKAY(o!)" + "YES(y!)" + "NO(n!)")) + org-todo-keyword-faces + '(("[-]" . +org-todo-active) + ("STRT" . +org-todo-active) + ("[?]" . +org-todo-onhold) + ("WAIT" . +org-todo-onhold) + ("HOLD" . +org-todo-onhold) + ("PROJ" . +org-todo-project) + ("NO" . +org-todo-cancel) + ("KILL" . +org-todo-cancel)))) + (use-package! org-roam :custom (org-roam-directory (concat org-directory "Roam/")) @@ -523,6 +560,7 @@ independent key tables." '((:maildir "/nathan@mccarty.io/Folders/Notifications/Github" :key ?h) (:maildir "/nathan@mccarty.io/Folders/Notifications/Gitlab" :key ?l) (:maildir "/nathan@mccarty.io/Folders/Notifications/SourceHut" :key ?s) + (:maildir "/nathan@mccarty.io/Folders/Mailing Lists/Lobsters" :key ?a) (:maildir "/nathan@mccarty.io/Folders/Archival/Receipts/2022" :key ?r) (:maildir "/nathan@mccarty.io/Folders/Job Search" :key ?j) (:maildir "/nathan@mccarty.io/Folders/Archival/Informed Delivery" :key ?i)))) diff --git a/doom.d/config.org b/doom.d/config.org index bc2164d..40ff6e2 100644 --- a/doom.d/config.org +++ b/doom.d/config.org @@ -341,14 +341,53 @@ work if it thinks it needs to." (after! org ;; This method sets up the timer on its own (nm/org-agenda-refresh-conditional)) - #+end_src - - Log state changes into a drawer +#+end_src +** Log state changes and setup TODO keywords +Configure the logging, we want to log into a drawer and also log refiles, reschedules, and repeats #+begin_src emacs-lisp (after! org (setq org-log-into-drawer t + org-log-refile 'time + org-log-repeat 'time + org-log-reschedule 'time org-log-done 'time)) #+end_src + We'll need to override the doom provided ~org-todo-keywords~ to get the state transitions we want logged + #+begin_src emacs-lisp +(after! org + (setq org-todo-keywords + '((sequence + "TODO(t)" ; A task that needs doing & is ready to do + "PROJ(p)" ; A project, which usually contains other tasks + "LOOP(r)" ; A recurring task + "STRT(s!)" ; A task that is in progress + "WAIT(w!)" ; Something external is holding up this task + "HOLD(h!)" ; This task is paused/on hold because of me + "IDEA(i)" ; An unconfirmed and unapproved task or notion + "|" + "DONE(d!)" ; Task successfully completed + "KILL(k!)") ; Task was cancelled, aborted or is no longer applicable + (sequence + "[ ](T)" ; A task that needs doing + "[-](S!)" ; Task is in progress + "[?](W!)" ; Task is being held up or paused + "|" + "[X](D!)") ; Task was completed + (sequence + "|" + "OKAY(o!)" + "YES(y!)" + "NO(n!)")) + org-todo-keyword-faces + '(("[-]" . +org-todo-active) + ("STRT" . +org-todo-active) + ("[?]" . +org-todo-onhold) + ("WAIT" . +org-todo-onhold) + ("HOLD" . +org-todo-onhold) + ("PROJ" . +org-todo-project) + ("NO" . +org-todo-cancel) + ("KILL" . +org-todo-cancel)))) + #+end_src ** org-roam A second brain in emacs @@ -765,6 +804,7 @@ Setup the maildirs we want to see, we'll show our notifications '((:maildir "/nathan@mccarty.io/Folders/Notifications/Github" :key ?h) (:maildir "/nathan@mccarty.io/Folders/Notifications/Gitlab" :key ?l) (:maildir "/nathan@mccarty.io/Folders/Notifications/SourceHut" :key ?s) + (:maildir "/nathan@mccarty.io/Folders/Mailing Lists/Lobsters" :key ?a) (:maildir "/nathan@mccarty.io/Folders/Archival/Receipts/2022" :key ?r) (:maildir "/nathan@mccarty.io/Folders/Job Search" :key ?j) (:maildir "/nathan@mccarty.io/Folders/Archival/Informed Delivery" :key ?i))))