How To Change Your IM Status in iChat, Adium and Skype Using Quicksilver

Written by on Oct 31 2007

Have you ever wanted to change your IM status for several apps at the same time? So have I! A while back I found this post with a script on how to do it. Unfortunately the instructions are a little vague and the script doesn’t work with Leopard. Have no fear, instructions and a fixed script follow.

Note: I have been waiting to post this for a long time. Since the script uses Ruby and gems, I was waiting until Leopard was released to post, but now….here it is.

Note: The script on this page is basically just a copy of the script found here (with a small fix). My original intent was just to point to his script, but since it hasn’t been updated yet I supplied an updated script here. Evan deserves full credit.

  • Open Terminal (/Applications/Utilities/Terminal). If you’ve never used terminal before, don’t be afraid, this will be easy.
  • Type this: sudo gem install rubyosa
  • You will be promoted for your password, go ahead and enter it. Note: this only works if you are an admin.
  • Close terminal.
  • Install Quicksilver
  • In the directory “/Users/your-user-name/Library/Application Support/Quicksilver” make a new directory called “Actions.”
  • Download and save this script into the “Actions” directory you just created.
  • Open Adium, iChat and Skype.
  • Launch Quicksilver (probably using the default keyboard short cut ctrl-space).
  • Type into Quicksilver: (a) “.off” (b) [tab] © “change im status” (d) [enter].
  • More than likely Quicksilver displayed the file icon for “Change IM Status” before you finished typing the whole file name. This is fine, you only need to type until Quicksilver finds it.
  • Did you IM status change?
  • You can turn off any of Adium, iChat or Skype by editing the file and adding a ‘#’ to any of the last three lines of the file. E.G Before: “set_Skype_status_to status” After: “#set_Skype_status_to status”
  • The script can handle three commands: .on, .off, .away # Enjoy!

For the hacker in you:

  • If you look at line 30 – 32 you will think I’ve cheated, and I have. But for some reason when I tried to use the proper constants, it didn’t work in iChat, so I used their values instead.
  • Ruby OSA is really cool. My next post will be how to get started hacking with it.

    4 Comments

    Steven Bristol
    Steven Bristol said on October 31, 2007

    Since the link to the Quicksilver home page is down right now, here is a alternate link to download version 1.0b52: http://www.macupdate.com/download.php/14831/QS.3813.dmg

    Evan
    Evan said on October 31, 2007

    I’ve made several changes to the script over the past few months (although most are super-tiny tweaks). Plus, I’ve only been using it with Adium and Skype; I generally shun iChat. However, I’ve been a bad boy and haven’t (1) posted my changes or (2) made enhancements that I’d considered previously.

    Hell, until just now, I didn’t know that another soul was using the script. :P

    What I really want to do is selectively block contacts programatically. This would let me build an “I’m Working” state where I could block all contacts but my immediate colleagues, for instance. In fact, I’m DYING for this. Sadly, neither app seems to provide that level of event to OSA such that I could “veto” an incoming chat.

    Evan
    Evan said on October 31, 2007

    WRT getting started, see here: http://evan.tiggerpalace.com/files/OSXScriptingwithRubyfinalv2.pdf

    Evan
    Evan said on October 31, 2007

    Last comment (heh): Going to RubyConf? Laurent Sansonetti (author of RubyOSA and an Apple employee) ought to have some interesting things to say about developing Ruby apps for OS X. He hasn’t revealed too much of the content of hi talk yet; however, I suspect that he’ll speak to Leopard features.

Meet
Steven

Hi I'm Steven,

I wrote the article you're reading... I lead the developers, write music, used to race motorcycles, and help clients find the right features to build on their product.

Get Blog Updates