Using Adium and Witch

I wrote a post last year about replacing Command+Tab with Witch, an application switcher replacement for Mac OS X. When I moved to my new apartment early in January, my Linux server was without Internet access for a few weeks so I was forced to use a graphical IM client (as opposed to a console-based client).

David was using Adium at the time, so I decided to give it a try. It's definitely a nice messaging application -- nice enough that I haven't felt compelled to get my console client setup again (but I'm sure I will at some point; the command line rules!). Now, on to the point of this post.

After pressing Command+Tab to switch from an IM conversation to another application, here is what I saw when I pressed Command+Tab to return to the IM window:

As you can see, Witch doesn't select my Adium IM conversation window ("Raam Dev" in this example) but oddly selects the Adium Contacts window, even though I was never looking at that window. This meant every time I switched from a conversation window to an application, I had to press Command+Tab+Tab+Tab just to get back to the previous window! Not only that, but normally I was trying to switch back to the IM window just to get rid of the distracting "new message notification" in the dock and being unable to do this quickly was really frustrating.

As extremely annoying as it was, it always bugged me at a time when I was too busy to figure out how to fix it. And by the time I was not busy I had forgotten about it. This pattern continued for THREE MONTHS (yes, I'm a very patient person)!

Today I decided I'd had enough. I took a peek at the Witch preferences (System Preferences -> Witch) and discovered that I could simply tell Witch to ignore the Contacts window! Doh!

Witch preferences

Now when I press Command+Tab after switching to another application, the IM conversation window is the first item selected.

Witch fixed

Woohoo! Sanity!

Replace OS X Command+Tab with Witch

Mac OS X has a very limited application switcher built-in, so limited in fact that it's been driving me crazy. You cannot use Command+Tab to switch between multiple windows of the same application; you must use another keyboard shortcut: Command+`. Another huge limitation is the inability to switch between minimized applications. Once an application is minimized, I have no way of restoring it with the keyboard; that's actually not true: you can hold the Option key after highlighting the minimized application to restore it.

A very nice replacement application switcher is a program called Witch, developed by Peter Maurer. The only problem is that OS X prevents you from replacing the keyboard sequence Command+Tab. I could learn another keyboard shortcut, but why? I've been using Alt+Tab (the Windows version of the same shortcut) for years and I don't want to be relearning things unless absolutely necessary.

The solution is to use two other programs, PullTab and Unsanity Application Enhancer, to disable Command+Tab. Then you can bind Command+Tab to launch Witch. Although this sounds complicated, its really not. There is a nice video tutorial that explains how to do all this, however I'd rather read directions than watch them.

Step 1: Download and install Unsanity Application Enhancer. It's very straightforward. After downloading, mount the image, and double click on the installation program.

Step 2: Download and install PullTab. This is a little less straightforward. After downloading and mounting the image, you need to copy the PullTab.ape file to one of two places:

To install for all users on your Mac, copy the file here:
LibraryApplication Enhancers

To install for only yourself, copy the file here (if the directory doesn't exist, create it):
UsersLibraryApplication Enhancers

Step 3: Logout and then back in. Command+Tab should now be disabled.

Step 4: Download and install Witch. After mounting the image, simply double click on the Witch.prefPane file. This will install a new panel in your System Preferences. Now that Command+Tab is disabled, you can bind it from within the Witch preferences panel to activate Witch!