high wisdom

Mon Jan 28 15:17:57 IST 2008

Commandline GTD with gtdo

I was introduced to GTD around a year ago, but wanted to manage mine using a commandline. I discovered todotxt.com and modified a todo.py to suit my needs (removed priorities, added some commands, bash-completion etc).

But I stopped doing it.

Because I had nothing to manage my "projects" (tasks with multiple action items). I maintained a list of projects out-of-band, as a directory structure, which required me to identify the next task for a project and move it to my todo list. Of course it didn't work!

So I wrote gtdo. gtdo has a similar interface - todo.py was the inspiration - but in addition to the contexts (marked by a '@'), it supports groups (or "projects" - marked by a '/'). So, you might have a project about starting using GNUcash. Of course, the first step is to install/set-up GNUcash. Adding your portfolio comes later. If you have both these items in your todo list, the second one does nothing but adds noise and makes the list longer. The answer is to add them in a group /gnucash. If there are multiple tasks in a group, only the first one is displayed - till its marked done. By default, new tasks are added at the end of the queue in a group, but may be added at a specific position.

An example would be better than the ramble above (gtdo being aliased to 't'):
$ t add /gnucash @online install gnucash
$ t add /frames @errands buy wood
$ t add /email @online set up spamassassin
$ t add /gnucash @online add portfolio to gnucash

# only the immediate next task is displayed when you 'ls' $ t ls 1 : /gnucash @online install gnucash 2 : /frames @errands buy wood 3 : /email @online set up spamassassin

$ t ls @online 1 : /gnucash @online install gnucash 3 : /email @online set up spamassassin

# except when you specifically ask for a group $ t ls /gnucash 1 : /gnucash @online install gnucash 4 : /gnucash @online add portfolio to gnucash

# well, we need to fix F::Q::IndiaMutual before we add our portfolio # we'll try adding that as the second step in the /gnucash group $ t add /gnucash.2 fix F::Q::IndiaMutual

$ t ls /gnucash 1 : /gnucash @online install gnucash 4 : /gnucash fix F::Q::IndiaMutual 5 : /gnucash @online add portfolio to gnucash
Comes with standard todo.sh style bash-completion. The Git repository is available at http://repo.or.cz/w/gtdo.git. You can obtain a tarball by clicking here.

Posted by gera | Permanent link | File under: tricks, perl, code, hacks | [ 0 ]