Archive

Archive for the ‘CLI’ Category

Todo.txt CLI Enhancements.

November 11, 2012 1 comment

I need to do have a To Do list. As I get older I find that I can’t remember things nearly as easily as I used to be able to and because of this I end up forgetting to do something that needed to be done. Because I tend to have a strong perfectionist streak, I feel really bad when I forget something. So I decided I really needed to do something about it.

I’ve read up on GTD (Getting Things Done) and have incorporated many of the principles into my workflow. Since I was originally all Mac based, I originally went with OmniFocus from the Omni Group. OmniFocus is a brilliant program and syncs well between the Mac, iPhone and iPad. However, one of the challenges with using OmniFocus is for those of us that use cross platform solutions; there’s no way to get to my OmniFocus setup from a non-Apple environment. When your primary laptop is a Linux based machine, that’s not going to work out so well.

So then I moved to Remember The Milk. While it is definitely not a strict GTD type of environment, Remember The Milk has lots of cross platform goodness and a pretty good web-based application. I liked the theory of it a lot, especially the ability to enter things in using a natural language such as “Take out the garbage on Thursday by 10:00 p.m.” The problem with RTM was that I just could not wrap my head around the web application. I know that this is kind of odd, because I write web applications for a living, but there was something that just felt too complicated about the app. I believe that one of the primary things about a GTD app is that it should do it’s function but stay out of your way as much as possible.

And this is where the KISS, or “Keep It Simple, Stupid” principle comes in. I decided to move my ToDo needs to a plain-text file that synchronized between my computers using Dropbox. I could access it from home and from work. I decided to do all this using Gina Trapani‘s todo.txt CLI.

Todo.txt is sheer simple brilliance.

Not only can I use any text editor to manage my plain-text ToDo list, ToDo.txt CLI also gives me the ability to easily manage my tasks right from the command line. As long as I can get to my server, I can get to my tasks. Couple this ability with the excellent, simple iOS and Android apps, and I’m golden.

I have a method for tracking my tasks on my ToDo list. I use deadlines for myself when I can, usually with a “due:” notation before it. I also categorize my tasks (using “+Project”) and the context (“@Context”). This makes searching my task list that much easier.  For example, if I want to find something that has to do with garbage (like the task Take Out The Garbage), I can do this (where I have ‘t’ as an alias for my ‘todo.sh’ script:

$ t list | grep garbage

After typing these commands for a few days, I finally got around to building some aliases in my .bashrc to make it that much easier.  Here’s what I am doing these days:

Anything that needs to be processed into a project and context can be found like this:

alias tinbox='/home/machias/todo.sh list | grep -E "Inbox|inbox"'

Anything that has a due date of today, or is a daily task, or has to be completed on a certain day of the week, can be found with this alias:

alias today='/home/machias/todo.sh list | grep -E "Daily|daily|`date +%Y-%m-%d`|`date +%A`"'

Again, pretty simple stuff but still quite valuable.

Once you adapt a keyword type approach to your Todo.txt, you will find that the possibilities are endless. If you’re looking for a simple way to stay organized, give it a try!

Advertisements
Categories: bash scripting, CLI