org-mode is an amazing tool, you can use it to write documents, make spreadsheets, track to-do list, generate agendas, etc. If you use Emacs a lot, you don't want to miss this unicorn.
I mainly use it as my notebook, and GTD tool.
This post is about how I configured it to be my single daily use GTD tool.
I use 5 different states of my task item.
CANCELED are abnormal cases, when switching to these
of reason should be added, as well as time-stamp, if task is done,
it switches to DONE state, with a time-stamp, but no note needed.
What are the meaning of the single characters such as "t", "s", "w"?
They're the shortcuts to switch task state,
C-c C-t and
type "s", task is started, type "d", task done.
;; Enable task switching shortcuts
To make states look clear, I set some colors for each state.
Sometimes, tasks contain sub-tasks, it looks messy if I mark the task done, but some sub-tasks are in other states. I prefer task will be automatically mark as done only if all sub-tasks are done.
;; Parent can't be marked as done unless all children are done
I store all my tasks in one single file named "work.org", it contains lots of task items, different categories, adding task directly to it is not an easy job.
Org capture saves me, when I think something might need to do, just
C-c c, then, select a capture template, and record it.
Later, to move it to
work.org, just type
I save all captures in
refile.org, and templates
(setq org-default-notes-file "~/Dropbox/Documents/org/refile.org")
Come to The Cloud
We live in a cloud era, services are weak if can't be accessed from anywhere, any device.
I want to see my agendas, and tasks in my iPhone, lucky me, guys make MobileOrg, although it's not fully functional as a GTD tool, but it works.
To use MobileOrg via Dropbox,
accessing to Dropbox should be authorized, and a folder
MobileOrg will be created after.
In Emacs, some configuration need to be added.
(setq org-mobile-directory "~/Dropbox/MobileOrg")
Below settings tell org-mobile where to find captures, tasks and
org-mobile-push will transfer them to
MobileOrg folder, which will be synced to Dropbox.
Grab an iPhone, open MobileOrg, tap sync, you get all your tasks and agendas.
Everything you changed in iPhone, will be synced to Dropbox (don't
worry, just diffs, small amount of data).
will get the changes and apply it, for my example, the changes will be
But manually do this is so inefficient, hooks can be added to pull everything in cloud during Emacs startup, and push every changes to cloud during quitting Emacs.
(add-hook 'after-init-hook 'org-mobile-pull)
But this will slow down Emacs startup, I don't like it. So another way comes, automatically sync when you are idle in Emacs, like drinks coffee, or walks away.
(defvar org-mobile-sync-timer nil)
This will pull, then push org files after 10 minutes idle time.