A fast way to get stuff out of your head and into your GTD inbox

Often while you're occupied with something, some thought pops into your head. Something that you want to remember/do something about.
One of the key factors of a successful GTD implementation is having the tools in place to get that stuff out of your head and into something you can trust, so you can continue your work with the smallest interruption possible. Many GTD tools I've checked out focus on the 'action management' part of GTD, leaving out the collection and processing phases (Thinkingrock is a notable exception here) and often some other things (reference system etc).

This is not necessarily a bad thing: The whole GTD system is built around so many different actions and systems that some stuff can be divided into separate programs. The only thing that matters is the global workflow, whether inside 1 program or across multiple.

If you use a program that does not implement the collection/processing phases, one thing thing you should not do, is skip them. You should not try to make out what an idea is, how to implement it, how to file it, which context/project/tag to assign etc on the moment it pops into your head, because it makes you loose your focus, distracts you and generally makes you less efficient.

I'm now trying out the Tracks gtd program, which does not implement collection/processing. The official explanation is that they try to make tracks customizable and flexible to allow you to use it the way you want, but I don't see how I could use it effectively for this.

What I did is write a simple shell script, one that I trigger via a quick keyboard shortcut (ctrl+i), it pops up a Gtk input dialog box - using zenity, which i blogged about earlier.. When you sumbit the form (by pressing enter) it just appends your text to a textfile. That's it !
If something goes wrong (and only then!) it will show a popup with libnotify so if you see nothing after submitting, you can be assured that it saved fine.
Less is more.

When you are ready for processing mode (eg the 'weekly review' in gtd speak) you can then process entry by entry and enter stuff into your GTD program as necessary.

Dependencies:

  • bash
  • zenity
  • notify-send (package libnotify-bin on ubuntu)

Here is the file, save it as gtdinbox.sh

#!/bin/bash

# A very simple script to implement the Collecting part of GTD.
# The only thing this script does is getting something out of head as quickly as possible, into a file you can trust
# See http://dieter.plaetinck.be/posts/a_fast_way_to_get_stuff_out_of_your_head_and_into_your_gtd_inbox

program=`basename $0 .sh`
datadir=${XDG_DATA_HOME:-$HOME/.local/share}/$program
inboxfile=$datadir/inbox.txt

die_error ()
{
        echo "$1" >&2
        notify-send 'Gtd Inbox' "$1" -i gtk-dialog-info -t 5000 -u critical
        exit ${2:-2}
}

if [ ! -d $datadir ]
then
        mkdir -p $datadir 2> /dev/null && chmod 700 $datadir 2> /dev/null || die_error "Could not create/chmod $datadir" 1
fi

if input=`zenity --entry --title "GTD Inbox" --text "Enter text for gtd inbox"` && [ -n "$input" ]
then
        echo "$input" >> $inboxfile && {
                echo "Entered $input into $inboxfile"
                exit 0
        }
        die_error "Something failed while entering $input into $inboxfile" 3
else
        echo "Cancelled input into $inboxfile"
fi

Add comment