Background

Recently, several days have be invested in learning GTD (Get Tings Done) and setting up the org-mode in Emacs.
However, I have not finished reading the two guide books of David Allen: Getting Things Done - The Art of Stress Free Productivity and Ready for Anything - 52 Productivity Principles for Work and Life, but I will. The main references are list below:

The famous application of GTD with Emacs is the document Org Mode - Organize Your Life In Plain Text!, so I read it three times but still cannot catch all of them, all of my settings of org-mode are from it.

Principles of GTD

According to some of Chinese blogs as list above, GTD is a system to handle all your things and lead you to get them done one by one. It can record the timing cost of each task, which is helpful for construct the ability of correctly estimating the task duration. As the book’s name indicates STRESS FREE, there must be a flood of things around you and new ideas coming up randomly. From my life experiments, some tedious things can ruin your whole enthusiasm, cause you maybe disturbed or interrupted again and again, leading to a situation where you do not know what you are focus on yourself. GTD can save you from it, and get your things in control. There are five progresses in GTD:

  1. Collection. Collect all your stuff into a inbox.
  2. Refile. Identify each stuff and make a decision on each of them with deleting, archive or generate a new task to do.
  3. Organization. Judge each stuff’s importance and time consideration, send(refile) them into specification destinations.
  4. Review. Check the list of things to be done, and mark them with some tags, deadlines, schedules and status.
  5. Do it. Select the right things to do with a right time and right place.

All in one, the core of GTD is:

WRITE DOWN ALL THE STUFF IN YOUR MIND, AND ORGANIZE THEM INTO STREAM OF DOING THINGS.

Org-Mode Settings in Emacs

Org-Mode is a super powerful tool to manage your life, it is said org-mode can get track of all your stuff: to-do list, account, projects…As I said in the Background section, all the settings are get from Org Mode - Organize Your Life In Plain Text!, but there are several changes should be noted for a org-mode newer like me. Most of the settings by Bernt Hansen is OK, except for the org-habit.el file you should download from the internet. That’s the first tip, the second one is the stuff capture process. I set the capture settings as below:

(setq org-agenda-files (list "/home/jerry/GTD/"))
;; Org Capture
;; Capture templates for: TODO tasks, Notes, appointments, phone calls, meetings, and org-protocol
(setq org-capture-templates
(quote (("t" "todo" entry (file concat org-directory  "/refile.org")
       "* TODO %?\n%U\n%a\n" :clock-in t :clock-resume t)
      ("r" "respond" entry (file concat org-directory "/refile.org")
       "* NEXT Respond to %:from on %:subject\nSCHEDULED: %t\n%U\n%a\n" :clock-in t :clock-resume t :immediate-finish t)
      ("n" "note" entry (file concat org-directory  "/refile.org")
       "* %? :NOTE:\n%U\n%a\n" :clock-in t :clock-resume t)
      ("j" "journal" entry (file+datetree "/home/jerry/GTD/diary.org")
       "* %?\n%U\n" :clock-in t :clock-resume t)
      ("w" "org-protocol" entry (file concat org-directory "/refile.org")
       "* TODO Review %c\n%U\n" :immediate-finish t)
      ("m" "meeting" entry (file concat org-directory "/refile.org")
       "* MEETING with %? :MEETING:\n%U" :clock-in t :clock-resume t)
      ("p" "phone call" entry (file concat org-directory "/refile.org")
       "* PHONE %? :PHONE:\n%U" :clock-in t :clock-resume t)
      ("h" "habit" entry (file concat org-directory "/refile.org")
       "* NEXT %?\n%U\n%a\nSCHEDULED: %(format-time-string \"<%Y-%m-%d %a .+1d/3d>\")\n:PROPERTIES:\n:STYLE: habit\n:REPEAT_TO_STATE: NEXT\n:END:\n"))))

In this section, all the stuff collected in refile.org, which should be cleaned (refile) everyday, for example at the end of the day. Mettings and phones are handled intermediately, which are also clocked by org-mode. If you have a habit of writing a diary, the journal section will be perfect for you, it will generate a time tree in the diary.org file.

Agenda view is also tuned by the advice of Bernt Hansen. The below picture shows a to-do list:

Because I am a very newer to GTD and org-mode, so I did not setup the publish and export section. Next step, I will add some feature of time estimation and summery.

Practice with GTD

Firstly, I update my Emacs’s key bindings to fit both the Prelude mode and org-mode, the mostly used key bindings are list below:

(global-set-key (kbd "<f10>") 'org-agenda)
(global-set-key (kbd "<f9> c") 'calendar)
(global-set-key (kbd "<f9> g") 'gnus)
(global-set-key (kbd "<f9> w") 'widen)
(global-set-key (kbd "<f9> I") 'bh/punch-in)
(global-set-key (kbd "<f9> O") 'bh/punch-out)
(global-set-key (kbd "<f9> t") 'bh/insert-inactive-timestamp)
(global-set-key (kbd "<f9> v") 'visible-mode)
(global-set-key (kbd "<f9> SPC") 'bh/clock-in-last-task)
(global-set-key (kbd "C-<f9>") 'previous-buffer)
(global-set-key (kbd "C-<f10>") 'next-buffer)

Referring to Bernt Hansen‘s life style, I work out my own as below:

  • Punch in (it will start the default clock of Organization)
  • Look at the agenda and make a decision from the NEXT tags
  • Check email and news from thunderbird and android phone
    • Create notes, new tasks with org-capture
  • Look at the agenda and work on important tasks for today
    • Clock it in
    • Work on it until it is DONE or gets any interrupted by Meetings or Phone
  • Work on tasks
  • Make journal entries for interruptions
  • Punch out fro lunch and punch back in after lunch
  • Work on more tasks
  • Refile tasks to empty the list
    • Bulk refile the tasks to the same target with B r
    • Repeat refile (C-c C-w) until all refile tasks are gone
  • Mark habits done today as DONE
  • Punch out at the end of the day

Seems cool? aha?