based on https://emacs.cafe/emacs/orgmode/gtd/2017/06/30/orgmode-gtd.html checked 10% of this (need update)
- inbox.org - Collect all things
- todo.org - All projects
- someday.org - All inactive tasks that I might do at some point in the future, but don’t want to see all the time
- 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"))
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.