25
May

Todo.txt, Screen, and not forgetting things

Posted on May 25, 2011 by justin

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.

Comments

0 comments have been posted.

Post a comment