So I have this horrible habit of coming up with a great idea, or deciding I need to do something, and then having forgotten about it within an hour.
To remedy this, I've tried all sorts of todo, sticky note, and gtd devices/apps/papers. None of them really seemed to gel with me. Only available on certain platforms. Not easy to share between devices. Proprietary app that wanted more money than I felt it was worth. Required pen and paper on hand. Didn't work satisfactorily on my android handset (or even wanted MORE money for the android version). Then I found Todo.txt. It impressed me enough that I was willing to buy the android app (which uses Dropbox to sync). And I've been loving it.
Combined with Punch the birdseye addon, and the schedule addon, it had all (to be fair: almost all, but enough that it may as well have) the features I wanted, none of the features I didn't want, and I'm keeping track of how long things take me to do.
But for me, that wasn't enough. Whenever I get bored, I pick something at random, and start hacking to do something different with it. So I put together a screen config and a simple script that constantly shows me my bird's eye overview in one pane, a list of my tasks in a second pane(actually, a script that shows whatever I want), and a bash prompt to use for interacting with it.
Screen RC(Your version of screen needs to support vertical splits...):
$ cat .screenrc.todo # don't display the copyright page startup_message off # visable bell vbell_msg "beep" # Set the terminal window's title hardstatus string "Todo.TXT" termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007' #easy quit bindkey "^C" quit split split -v screen -t 'Todo.txt Watch' 0 /path/to/watch.sh # You can get by with a normal watch command if you're not trying to over-engineer things #screen -t Todo.txt 'Todo.txt' 0 /path/to/todo.sh ls focus screen -t 'Todo.txt Birdseye' 1 watch /path/to/todo.sh birdseye focus screen -t 'Todo.txt Prompt' 2 bash resize 4
And my watch.sh (You'll need inotify-tools installed, thus probably won't work in cygwin) (Somewhat over engineered, possibly, but let's me see what i want when I want).
$ cat watch.sh #!/bin/bash CMD_DIR="/tmp/.todo" mkdir -p $CMD_DIR CMD_FILE="$CMD_DIR/watch" [ -x $CMD_FILE ] && echo "ls" > $CMD_FILE if [ $# -gt 0 ]; then echo $@ > $CMD_FILE else CMD=`cat $CMD_FILE` while true; do OUTPUT=`/path/to/todo.sh $CMD` clear && echo "$OUTPUT" inotifywait -q -t 5 -e modify $CMD_FILE && CMD=`cat $CMD_FILE` done fi
run watch.sh to show you a specified command, run watch.sh cmd options (watch.sh projectview for example) to change the todo.sh command that watch shows.