Skip to content

Instantly share code, notes, and snippets.

@iturdikulov
Last active September 25, 2019 21:07
Show Gist options
  • Save iturdikulov/b7b45cfd10da8fd828c54c6aa8cadbdf to your computer and use it in GitHub Desktop.
Save iturdikulov/b7b45cfd10da8fd828c54c6aa8cadbdf to your computer and use it in GitHub Desktop.
Orgmode for GTD

based on https://emacs.cafe/emacs/orgmode/gtd/2017/06/30/orgmode-gtd.html checked 10% of this (need update)

The orgmode files

  1. inbox.org - Collect all things
  2. todo.org - All projects
  3. someday.org - All inactive tasks that I might do at some point in the future, but don’t want to see all the time
  4. tickler.org - Entries with timestamp to get reminded at the right moment

You can quickly initialize this files in shell:

# Quick initialize repository
mkdir -p ~/_gtd && cd ~/_gtd && touch inbox.org todo.org someday.org tickler.org

add files into agenda (create this files and place in your emacs config). It’s ok that someday.org not in config.

(setq org-agenda-files '("~/_gtd/inbox.org"
                         "~/_gtd/todo.org"
                         "~/_gtd/tickler.org"))

The GTD inbox

Capturing a thought is one key press away: simply Press C-c c, and a capture popup will appear in Emacs. Once you’re done capturing, C-c C-c and it will get stored in the inbox My inbox is then processed and emptied daily. When processing the inbox, I refile each entry that is actionable and belongs to a project using C-c C-w, moving the entry to the appropriate place. If need be, I create a new project out of it. I put a todo keyword in all project entries. I think I use fairly regular todo keywords: TODO, WAITING, DONE and CANCELLED mostly. The first two for are used for incomplete states, and the last two for completed states.

(setq org-capture-templates '(("t" "Todo [inbox]" entry
                               (file+headline "~/_gtd/inbox.org" "Tasks")
                               "* TODO %i%?")
                              ("T" "Tickler" entry
                               (file+headline "~/_gtd/tickler.org" "Tickler")
                               "* %i%? \n %U")))
                               
(setq org-refile-targets '(("~/_gtd/todo.org" :maxlevel . 3)
                           ("~/_gtd/someday.org" :level . 1)
                           ("~/_gtd/tickler.org" :maxlevel . 2)))
                           
(setq org-todo-keywords '((sequence "TODO(t)" "WAITING(w)" "|" "DONE(d)" "CANCELLED(c)")))

Tagging is done using C-c C-c on a headline, whether it’s a project or action. I use tags for several purposes: Regular categories, like :emacs: or :writing:; Tags that link to people, like :daniel:; GTD contexts are just regular tags, starting with @. I make heavy use of them in custom Org Agenda commands. My contexts tend to change over time, but I always have at least @home, @office, @travelling, @phone, @email, @errands to filter out next actions based on my current location for instance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment