Fix Safari Downloads Window on Leopard Spaces

by Thomas Aylott Sun, 28 Oct 2007 03:43:00 GMT

The one thing that really bothers be about Mac OS X 10.5 Leopard (sofar) is that Spaces doesn’t seem to handle certain windows “properly”

For instance, the Safari Downloads window.

Ideally, I want the Safari Downloads window to be viewable on all Spaces at all times. But I don’t want all Safari windows to always be on all spaces.

Here’s the trick: Change the window to be a utility panel instead.

This assumes you have Xcode installed

  1. Navigate to /Applications
  2. Right click on Safari
  3. Choose Show Package Contents
  4. Navigate to Contents/Resources/English.lproj/
    • Or whatever language you use
  5. Open Downloads.nib in Interface Builder
  6. Select the #Window# icon
  7. Open the Info Panel
  8. Select the Identity tab of the Info Panel
  9. Change the Class to NSPanel
  10. Select the Attributes tab of the Info Panel
  11. Check the Style Utility
  12. Save the Downloads.nib file
  13. Quit & Relaunch Safari

Your Downloads Window should now be visible in all Spaces as long as you have a Safari window open in that space.

Enjoy!

Posted in Tip, Mac OS X | 2 comments

English Word Completion for TextMate ScreenCast

by Thomas Aylott Tue, 31 Oct 2006 02:41:00 GMT

Download the English Word Completion TextMate Command

Download the entire subtleGradient bundle

English word completion.

Basically just a modified version of Allan’s pastie version from the TextMate release notes.

It’s pretty basic, but it keeps the completed part selected after you insert it so that you can use it a bunch of times in a row with the same results.

Just watch the screencast

Updated: Now the link actually goes to something!

Updated Again!: Now the zipped bundles aren't broken!

Posted in Screencast, Mac OS X, Tip, TextMate | 3 comments | no trackbacks

Growl Notifications for iCal (Tiger only)

by Thomas Aylott Fri, 21 Jul 2006 17:10:00 GMT

This only works in Mac OS X Tiger 10.4

I’m still working on an updated version for Leopard.

I love iCal, but I really hate the giant reminder panel stealing focus and getting in the way. Ewww.

I love Growl. There was an obvious need for a way to do iCal Growl notifications.

iCal has a nice feature where you can run an applescript using the Open File… feature in the alarm thing. The problem with this is that it doesn’t send any applescript variables to the script. So you would have to either do a generic alert for every reminder or have a separate script for each reminder. This is not hip, nor DRY.

I went searching for a solution to this and came across the article iCal and Growl @ Origa.me.uk where he shows you how to hack the internal applescript file that handles sending an Email on an alarm. This is totally awesome! You get access to all of the variables and can do the Growl. The only problem with his method is that it removes your ability to ever send another Email Alarm again.

I took his idea and added a simple if filter to the applescript. It works by checking for the email address “Growl”. If it sees that address then it does a Growl thinggy, otherwise it does the email like normal.

Download the Scripts

iCal Mail Script (with Growl Support)

How to Install & Use

  1. Add the email address ”Growl”
    to your personal Address Book entry.
    • (Mark it as secret if you have that feature enabled.)
  2. Copy Mail.scpt into the iCal resources.
    • /Applications/iCal.app/Contents/Resources/
  3. Copy Mail.scpt into the iCalHelper resources.
    • /Applications/iCal.app/Contents/Resources/iCal Helper.app/Contents/Resources/
  4. Quit iCal
    • You should Quit iCalAlarmScheduler too,
    • or you can log out and back in.
  5. Make a new iCal Event
  6. Make a new Email Alarm on that event
    1. Set the email address to “Growl”
  • Bask in the awesome iCal Growl Alarm goodness!

Here is the actual code:


on send_mail_sbr(subjectLine, messageText, myrecipient)
    if myrecipient = "Growl" then
        send_mail_sbr_GROWL(subjectLine, messageText, myrecipient)
    else
        send_mail_sbr_EMAIL(subjectLine, messageText, myrecipient)
    end if
end send_mail_sbr

on send_mail_sbr_EMAIL(subjectLine, messageText, myrecipient)
    tell application "Mail" 
        set mymail to (make new outgoing message at the beginning of outgoing messages with properties {subject:subjectLine, content:messageText})
        tell mymail to make new to recipient at beginning of to recipients with properties {address:myrecipient}
        send mymail
    end tell
end send_mail_sbr_EMAIL

on send_mail_sbr_GROWL(subjectLine, messageText, myrecipient)
    tell application "GrowlHelperApp" 
        set theName to "New Event" 
        set theAppName to "Custom iCal Notifications" 
        set the allNotificationsList to {theName}
        set the enabledNotificationsList to {theName}

        register as application theAppName ¬
            all notifications allNotificationsList ¬
            default notifications enabledNotificationsList ¬
            icon of application "iCal" 
        notify with name theName ¬
            title subjectLine ¬
            description messageText ¬
            application name theAppName ¬
            with sticky
    end tell
end send_mail_sbr_GROWL

Posted in Growl, AppleScript, Mac OS X, Tip

Older posts: 1 2