Looking for the AppleScripts I mentioned in my TidBITS GTD article? Here you go. And here’s the readme, which you really should read.
Jeff’s GTD AppleScripts
© 2006 Jeff Porten
Thanks for reading my GTD article and downloading these scripts. This readme provides a walkthrough for using these scripts on a day-to-day basis. You’ll need to do some setup to get them working on your Mac — but you only need to set them up once, and then they’re good (nearly) forever.
These scripts are all battle-tested on OS X 10.4. They might work on 10.3; no guarantees. They might break on your Mac, in a non-damaging way. If so, let me know and I’ll try to post a fix. But notably, the long-suffering people at TidBits haven’t seen these or edited this document, and I’m providing the standard “no warranty express or implied” disclaimer should anything go wrong. Backups are your friend.
Setting up your Mac for easy AppleScripting
You’re going to want to have a quick method of launching your scripts. The easiest way to do this is to activate your script menu. In Tiger, run the AppleScript Utility (in the Applications > AppleScript folder), and choose “Show Script Menu in menu bar”; a scroll icon (it’s an S, get it?) will appear in the upper-right section of your menu bar. (In Panther, look for an application called “Install Script Menu”, which does the same thing.)
You can organize your script menu as you like; Apple’s documentation for how this works is here:
http://www.apple.com/applescript/scriptmenu/02.html
Finally, I strongly recommend an AppleScript launching utility so you can fire off a script with a keystroke. I like Quicksilver, which is powerful and highly complex. There are about a thousand other options, which are discussed in detail in the 43 Folder list archives and website.
http://quicksilver.blacktree.com/
Editing these AppleScripts
Double-click on an AppleScript and it will open in Script Editor. Don’t worry if you don’t know how to use AppleScript; these instructions will walk you through the process. However, it’s useful to know three things:
1) Script Editor will format the text of a finished script to make it look pretty. When you make changes, your changes appear in a different font. This is normal.
2) Comments in AppleScript start with “–“; look there for my notes on what to change.
3) When you’re done with your edits, click the “Compile” button; if everything gets reformatted pretty, you know you have a working script. It might not do what you want it to do, but it “works”….
Comment and label selection
This script will set the label (i.e., the background color) of a Finder selection to yellow, and will ask you for a comment to add. If you have multiple files selected, it will do this to all such files. Probably a good idea not to have 300 files accidentally selected when you launch this script.
If you don’t like yellow, you can change the number 3 to something else at the commented line of the script. If you want multiple colors, copy the script a few times and set each one to a new color. I deliberately did not do this because I thought it was a bit too complicated, but have fun.
Get Alias URL
This is one of those things that should be simple, but is really complicated. At least, the AppleScript is complicated; running it should be simple.
This script will create a new folder called AliasFiles in your Application Support folder, and will stash aliases there so any URLs you create will continue to work no matter where you put the original file. There’s no cleanup utility, so you’ll have a lot of files living here; on the other hand, they’re all tiny and it’s hard to tell when you’re finished using them, so I just leave mine there forever.
Select a single file and an alias will be created to it alone. Select a group of files and they’ll be put into a single folder, with an alias created to that. The URL for this alias will be placed on your clipboard, so you can paste it wherever you like. (Note: don’t have anything you care about already in your clipboard — this will replace it.)
If you have Growl installed, a popup window will tell you that the alias was created.
Open Some Someday Item
This was definitely a case of making pretty stacks of sandwich orders, but it’s fun. Point this script to your Someday folder, then launch it and it’ll randomly pick out a waiting file and ask you if it’s okay to work with it. If you agree, it’s labeled and stashed on your desktop. If not, you can tell it to pick another. The script is preset to look for a “Someday” folder in your user folder. You can edit it to look for another.
Tickler folder setup
This script will create one folder for every day from now until whenever you like; by default, it’s the next 90 days. Set it to 365 or 3650 if you really don’t want to think about this again for a while. By default, it looks for a folder called “43 Folders” in your home folder.
Tickler file management
This script is designed to launch once a day to move files from your 43 Folders to your desktop. Note: there’s no error-checking in this script, so if you get an error message in the morning, it probably means you already have a file on your Desktop with the same name as a file in your tickler folder. I’ll bet you a dollar you’ll do this sooner or later with a file named “Picture 1”. If this happens, go ahead and manually move your files around for today.
By default, this script looks for ticklers in a folder named “43 Folders” in your home folder. If you changed this in your setup script, you’ll need to change it here too.
Once the script is set up, you’ll need a way to launch it on a daily basis. I have a repeating daily event in my iCal set up to launch this script for me, which is very similar to what is mentioned here:
http://www.macgeekery.com/tips/poor_mans_cron
Troubleshooting
All of these scripts have been in extensive use on my Mac since sometime after the Industrial Revolution. They work fine here. Whether they’ll work on your Mac, I have no idea. But I’ll be glad to make reasonable efforts to that effect, especially if many people have the same problems.
Again, there’s nothing dangerous about these scripts — the only thing that ever gets deleted is an empty tickler folder. That being said, you assume all risk and responsibility yadda yadda yadda.
And while it’s not required, folks who’ve made a PayBits contribution will probably get more attention if they have a problem with the scripts. For example, they’ll get an email when I post an update to the scripts. If you’ve already contributed for part 1, don’t worry, you’re already one of my favorite people.
PayBITS: Has Jeff helped bring order to your life? Show your appreciation via a PayBITS donation! http://www.paypal.com/xclick/business= civitan%40jeffporten.com Read more about PayBITS: http://www.tidbits.com/paybits/
So I was telling a friend of mine about your GTD concept, and he asked this question: How does he handle e-mails that are useful for the next four weeks, but can then be deleted?
It sounds like you’ve got a great system for pulling up the “thing I need to work on today,” but do you have a mechanism for “keep this around until it expires?” If not, that might be the next script to write…
You wrote (in Tidbits 840):
Here’s what I suggest you do: in your User folder, create a folder
called “Desktop Storage.” Drag everything on the Desktop into that
folder. Voila, clean desk!
But unless you don´t change the rights of this folder, anyone in the network will be able to read all the stuff inside, if you have the sharing enabled.
greez Louis Voellmy, Zürich, Switzerland
Something like that would go into a reference folder, either email or in the file structure. You wouldn’t necessarily attach an expiration date to it (and in any case, no, I don’t have an automatic means of doing that), but I’d clear those out during a weekly review of those folders — when I didn’t need it anymore, they’d go into a permanent storage folder or the bitbucket.
Your scripts all run fine on Panther (Mac OSX 3.9).
I try your link to download the scripts, but I keep getting a message like: «Sorry, no posts matched your criteria.»
Maybe because my system gets a URL like: «http://jeffporten.com/2006/07/31/tidbits-gtd-applescripts/scripts%201.01.zip»?
What does the «%20» in it stand for?
That’s a URL-encoded space in the filename. This is the link for the direct download:
http://jeffporten.com/wp-content/uploads/2006/07/scripts%201.01.zip
I just released a set of applescripts called “Ready-Set-Do!” that I’ve been using for the past two years to implement David Allen’s GTD workflow on my mac. I started thinking about the Finder as well and that’s eventually what led to my own implementation. People who like your scripts, Jeff, may also like to give the “Ready-Set-Do!” scripts a run. I also think some of these scripts of yours, could function together with the Ready-Set-Do! scripts as plug-ins or accent scripts. You have a very creative mind and I’d be very interested in further ideas you might have for further applescripts and functionality that might work with some of these I designed. I would be particularly interested in ideas you might have for integrating the Mail.app with them.
The philosophy behind Ready-Set-Do! as well as the free trial version are located here:
http://homepage.mac.com/toddvasquez/Ready-Set-Do!/RSD%20Backstory.html
Would appreciate any feedback and ideas.
Sincerely,
Todd V
I am using your move-tickler-folder to desktop script, but I wanted to change it to catch any days my Mac would have been off (like holidays, vacations or weekends).
I modified the script to work on the folders for the previous “n” days as well as the current day.
— Move Tickler to desktop daily.app
— Modified 2007-Jan-02 D. Zurn: Open any and all folders from previous 10 days
— in case the previous days’ folders were missed.
— Script to open the current day’s folder in “43 Folders”
— and transfer contents to the desktop
— Change “daysToOpen” to the number of days’s folders you want to open
set daysToOpen to 9
set theDate to current date
—— Loop through today and however many previous days
repeat with myDay from 0 to daysToOpen
myOpenTicker(theDate – (myDay * days))
end repeat
— Uncomment the next line to allow this script to be run daily by launchd
— without canceling its job.
— delay 74
on myOpenTicker(theDate)
set theYear to year of theDate
set theMonth to month of theDate as number
set theDay to day of theDate
set d6str to (theYear as string) & “-”
if theMonth
Sorry, here’s the rest of the script that got cut off:
if theMonth
Well, the “greater-than” stops the comment. Trying again:
if theMonth < 10 then set d6str to d6str & “0”
set d6str to d6str & theMonth & “-”
if theDay < 10 then set d6str to d6str & “0”
set d6str to d6str & theDay
tell application “Finder”
set deskpath to path to desktop folder
set F43 to folder “43 Folders” in folder “Personal” in folder “Documents” in (path to home folder)
if exists folder d6str in F43 then
open folder d6str in F43 —— open the folder to assure the user that it was emptied and deleted
move every item in folder d6str in F43 to deskpath
delete folder d6str in F43
end if
end tell
end myOpenTicker