complete-computing-environment/project_work_with_org_mode.org

66 lines
2.6 KiB
Org Mode

:PROPERTIES:
:ID: cce/project_work_with_org_mode
:ROAM_ALIASES: "Org-Mode Task Management Configuration"
:END:
#+TITLE: Project Work with Org Mode
#+filetags: :Emacs:CCE:Org:
#+PROPERTY: header-args :mkdirp yes :results none
#+PROPERTY: header-args:emacs-lisp :tangle org-tasks.el
#+ARROYO_MODULE_WANTS: cce/org_mode_installation.org
#+ARROYO_MODULE_WANTS: cce/appearance.org
#+ARROYO_EMACS_MODULE: org-tasks
#+ARCOLOGY_KEY: cce/org-tasks
#+ARCOLOGY_ALLOW_CRAWL: t
#+begin_src emacs-lisp
(provide 'cce/org-tasks)
#+end_src
Tasks are prioritised when the project is opened, it's an intuitive habit to scan that a list of tasks within a project are reasonable, correct, and prioritised. Re-ordering tasks is done with =M-<UP>= and =M-<DOWN>=, sorting bubbly.
#+begin_src dot :file data/full-state-workflow.png :cmd dot
digraph tasksworkflow {
node [shape=box,fontname="Courier"]
NEXT -> CANCELED;
NEXT -> DONE;
NEXT -> INPROGRESS;
NEXT -> WAITING;
INPROGRESS -> DONE;
INPROGRESS -> WAITING;
INPROGRESS -> CANCELED;
WAITING -> NEXT;
WAITING -> CANCELED;
}
#+end_src
#+results:
[[file:../data/full-state-workflow.png]]
Tasks can be in five states, and flow between them works largely based on intuition. Individual work-objects are created in =NEXT= state if they're ready to work on, or =WAITING= if I have to do mental work on them still, or if it depends on uncompleted work. The move between states, towards either =DONE= or =CANCELED=, two self evident completed states. I move tasks between =INPROGRESS= and =WAITING= based on a scale of weeks, tasks can stay in =INPROGRESS= perhaps for a week before their state should be reevaluated and possibly moved to =WAITING=.
#+begin_src emacs-lisp
(setq org-todo-keywords '((sequence "NEXT(n)" "INPROGRESS(i!)" "DONE(d!)")
(sequence "WAITING(w!)" "CANCELLED(c!)")))
(setq org-use-fast-todo-selection t)
#+end_src
#+begin_src emacs-lisp
(defun cce-get-ef-themes-color (face)
(thread-last
(ef-themes--current-theme-palette)
(alist-get face)
(car)))
(defun cce-update-org-todo-keyword-faces ()
(setq org-todo-keyword-faces
`(("NEXT" :foreground ,(cce-get-ef-themes-color 'blue-warmer) :weight bold)
("INPROGRESS" :foreground ,(cce-get-ef-themes-color 'yellow) :weight bold)
("DONE" :foreground ,(cce-get-ef-themes-color 'green-cooler) :weight bold)
("WAITING" :foreground ,(cce-get-ef-themes-color 'magenta-cooler) :weight bold)
("CANCELLED" :foreground ,(cce-get-ef-themes-color 'red) :weight bold))))
(cce-update-org-todo-keyword-faces)
#+end_src