Getting Things Done with Hazel
I figured I should mention Hazel at least here on this blog, because occasionally I get people asking “We want a Hazel Screencast!”
You really didn’t think this isn’t planned already, did you? I made plans for this, such a long time ago…, but I want this screencast to be really, really good. What basically means I need to sit on it for a bit longer.
However, I didn’t want to leave Hazel unmentioned. Hazel is one of my favorite tools. When I bought it a long, long time ago1, I set it up so it keeps my file structure sane. How? Here’s how.
First, I have a folder in my Home that is named
Current in there I got 5 more folders named:
1 - pending
2 - procrastinate
3 - idea
4 - junk
5 - read
The idea was inspired by the Kinkless GTD approach. Unfortunately this fantastic screencast series is not online anymore. (Am I really such an old Mac guy? Ten years now on a Mac,huh?) Anyway, using numbers to sort the folder makes it also very easy to navigate in there. I just press key 1 through 5 followed by ⌘↓ to get to where I want. Easy.
Hazel also watches a couple of other folders, and executes some actions accordingly. I explain the easier ones first:
~/Downloads2: If a file has been downloaded and I didn’t take care of it within one day, Hazel will move this file/folder to
4 - junk
~/Desktop: If I have something on there untouched for 4 days it will also be moved to the junk folder.
After a while junk will get quite big. This will annoy me so much that I go clean the mess and delete stuff I probably didn’t want to have in the first place. Not as drastic as deleting the files immediately (as Kinkless suggested). I know.
Are you still following? Good, because this was the easy part. Let’s get to Getting Things Done.
New projects usually start on my desktop. I use my Template Folder Maker Automator script that I call from Keyboard Maestro to create a couple of folders, copy some template files, as well as create an empty MindNode file to get me started. (Markus, if you read this: Yes, MindNode is really that essential.)
Then I go ahead and plan this new screencast (or whatever project I have). I collect material, I create reference stuff, I create a DEVONthink database. In short: I work.
When I finally realize “This is a project” all I have to do is tag it either with a Spotlight comment or OpenMeta named simply "pending".
When Hazel sees folders on my Desktop tagged like that, it automatically moves that folder into
1 - pending and send a Growl notification.
The Current folders are really the heart of this whole operation. When I got something that I realize that it won’t lead me anywhere I tag it procrastinate or idea.
When Hazel sees the changed tag and it will move the tagged folder to, who’d have known,
2 - procrastinate.
Or, when tagged idea go to
3 - idea. You get it….
If you tried doing something similar already, you may (very well and unfortunately) be aware of how vexing getting this set up is. Frankly, it took me a while to figure it out, but finally I did it!
The trick is: Hazel is able to run actions on folders subsequently. So you can set it to look for a folder and only operate on subfolders. All I have is Hazel watching
Current. Using "Run on subfolder contents" Hazel will only work on subfolders, but I also don’t want to go any deeper, so I also limit this action to subfolder depth 0. This way Hazel will only mess about with items that are one folder level deeper from
Current - not more.
Here’s the Run on subfolder contents rule:
This is the “Tagged as pending” rule. (Change other rules accordingly):
Hazel will give you erros with this, but it will do what I describe here.
I know one can nerd everything to death. Actually, I would have preferred the title “Nerding things do death with Hazel” for this posting, but I figured it would attract more people with the GTD thing. Oh, well…
Actually there are more actions attached to Downloads. One that unquarantines downloaded files, so I get rid of the annoying “Has been downloaded from Internet”-warning. One that opens downloaded disk images in the background, which also approves any “confirmation” dialogs. And one that unarchives files. ↩