66 lines
2.6 KiB
Org Mode
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
|
|
|