Keyboard shortcuts in any operating system are extremely useful, if you can train yourself to use and remember them. With the keyboard as the primary means of input for most applications, chances are your hands are already on the keyboard when you want to do some other function, such as saving the file you are working with. Moving your hand over to your mouse to move the pointer to the menu bar, select File, and then select Save is a productivity loss when you can do the same thing by hitting CMD+S.

Some keyboard shortcut keys are useful, but limited. Take Apple’s application switching functionality for instance. Hitting CMD+TAB will bring up a popup of all open applications and allow you to switch between each one, bringing the selected application to the forefront. While this is handy, most people associate windows on their desktop by the window contents, not the application itself. At any given time, I can have five or more Textmate windows open, a few Safari windows, perhaps a Terminal window or three, etc. With the default application switching, this would yield three applications to choose from, with perhaps a dozen windows between them. Switching to an application and then having to use the mouse to select a window after the fact is a productivity loss.

Expose helps in this regard, however. You can use application switching to get to the app you want, and then Expose to view just the windows of that app, but then you have to deal with multiple differing keystrokes. CMD+TAB a few times to get to the application you want, then F10, for instance, to invoke Expose’s application window view, and arrow keys to select the window you want.

But there is a better way.

Witch, is a unique program that changes the idea of application switching to window switching. It’s a $19 application, but if you are a keyboard junkie and like productivity boosters, it’s worth the money.

With Witch, using the invocation keys (such as CMD+TAB) will invoke a customizable list of open windows, grouped by application, and sorted however you wish (such as recently used applications at the top of the list, or by name, by window title, etc.). You can customize the pop up delay, where the list will be displayed (which is great for people using more than one display as you can configure the list to appear on the screen where the mouse is), and you can use hotkeys to quickly navigate to windows or close programs.

Witch is a preference pane, so you will use System Preferences to configure it. Download the disk image from the Witch web site and double-click the Witch.prefpane file to install it in System Preferences. When you are in System Preferences, before configuring Witch, you will need to enable “access for assistive devices” in the Universal Access preference pane. Once that is done, head back over to Witch to configure it.

Unfortunately, Apple has hard-coded CMD+TAB to be its application switcher hot key and this cannot be changed. Witch can intercept this key combination, however, so you can use the CMD+TAB key combination (and SHIFT+CMD+TAB to move backwards in the list) by assigning them as such in Witch. You may have to try twice to assign the keys initially, as OS X seems to grab the combination on the first attempt.

After that, you can change various settings in Witch under the Behavior and Appearance tabs. The list of options can be daunting, but it really does allow you to customize Witch to your own specific workflow. Check out the screenshots below to see how I like mine configured to give you an idea of what you can do with it (click the images to enlarge).

Choose Behavior settings
Choose Appearance settings.

Another nice thing about Witch is when you are doing window switching, if you continue to hold down the hot keys, Witch will display a thumbnail for most of the windows currently selected. Release the key combination to bring it to the fore, or continue to switch around to get the exact window you want. There are also a lot of keyboard shortcuts that can be used to close windows and applications (W and Q), navigate the list by application rather than window (A and SHIFT+A), pop up a preview (SPACE), or jump from the top of the list to the bottom (Home and End). Witch is a great productivity booster and I can’t live without it. There are a few gems for the Mac that are, to me, necessary productivity boosters and Witch is definitely one  of them.