Files
memex/projects/dotemacs/docs/emacs-gtd.org

3.8 KiB

GTD & Agenda Configuration

Agenda

Basic agenda settings

   (setq org-deadline-warning-days 7)
   (setq org-agenda-skip-additional-timestamps-same-entry t)
   (setq org-agenda-span 'fortnight)
   (setq org-agenda-tags-column 'auto)
   (setq org-agenda-skip-scheduled-if-deadline-is-shown t)

Agenda files

  (setq org-agenda-files (list
  			(concat org-directory "inbox.org")
  			(concat org-directory "gtd.org")
  			)
        )

Better agenda views

  (use-package org-super-agenda)

To-do

Basic todo

  (setq org-todo-keywords
          '(
            (sequence "TODO(t)" "NEXT(n)" "WAIT(w@/!)" "|" "DONE(d!)" "CNCL(c@)")
            )
          )

  (setq org-todo-keyword-faces
          '(
            ("TODO" :foreground "red" :weight bold)
            ("NEXT" :foreground "red" :weight bold)
            ("WAIT" :foreground "yellow" :weight bold)
            ("DONE" :foreground "green" :weight bold)
            ("CNCL" :foreground "blue" :weight bold)
            )
          )

  (setq org-enforce-todo-dependencies t)
  (setq org-tags-exclude-from-inheritance '("crypt" "!private"))

Switch entry to 'DONE' when all subentries are done

  (defun org-summary-todo (n-done n-not-done)
    "Switch entry to 'DONE' when all subentries are done, to 'TODO' otherwise.
  Uses N-DONE and N-NOT-DONE"
    (let (org-log-done org-log-states)   ; turn off logging
      (org-todo (if (= n-not-done 0) "DONE" "TODO")
                )
        )
    )

    (add-hook 'org-after-todo-statistics-hook #'org-summary-todo)

Getting Things Done (GTD)

  (use-package org-gtd
    :defer t
    :init (setq org-gtd-update-ack "4.0.0")
    :after org
    :config
    (setq org-edna-use-inheritance t)
    (org-edna-mode)
    (setq org-gtd-keyword-mapping
          '((todo . "TODO")
            (next . "NEXT")
            (wait . "WAIT")
            (done . "DONE")
            (canceled . "CNCL")))
    (setq org-gtd-custom-node-paths
          '(("Actionable" . '("~/memex/gtd.org" "Actions"))
            ("Incubate" . '("~/memex/gtd.org" "Incubate"))))
    (org-gtd-mode)
    :bind (
  	 ("C-c d c" . org-gtd-capture)
  	 ("C-c d e" . org-gtd-engage)
  	 ("C-c d p" . org-gtd-process-inbox)
  	 :map org-gtd-clarify-map
  	 ("C-c c" . org-gtd-organize)
  	 )
    )
  (defvar org-gtd-directory org-directory)
  (defvar org-gtd-organize-hooks '(org-gtd-set-area-of-focus org-set-tags-command))
  (defvar org-gtd-organize-hooks '(org-gtd-set-area-of-focus))
  (defvar org-gtd-areas-of-focus '(
  				 "Atoms"
  				 "Bits"
  				 "Cells"
  				 "Flags"
  				 "Business"
  				 "Wealth"
  				 "Learning"
  				 "Skills"
  				 "Privacy"
  				 "Archive"
  				 "Library"
  				 "Writing"
  				 "Health"
  				 "Home"
  				 "Family"
  				 "Social"
  				 "Egypt"
  				 )
    )
  (defvar org-gtd-clarify-show-horizons 'right)

Logging

  (setq org-log-into-drawer "LOGBOOK")

Clocking work in drawer

  (setq org-clock-into-drawer t)

Habits

  (setq org-habit-graph-column 80)
  (setq org-habit-show-habits-only-for-today nil)

Refile

org-refile targets

  (setq org-refile-targets '((nil :maxlevel . 9)
                             (org-agenda-files :maxlevel . 9)
                             )
        )

Set type of refile targets completion

  (setq org-outline-path-complete-in-steps nil)

Allow refiling to new parents created on the go after confirmation

  (setq org-refile-allow-creating-parent-nodes 'confirm)