As regular readers will know, I'm something a rather fanatical user of an application called Quicksilver. I use it every day to access files, addresses and play MP3 files, launch applications, do quick calculations and look up the definition of words. However, there are things that even the mighty Quicksilver can't do easily, and in my quest to automate all of the irritating repetitive tasks that we end up doing on our computers, I turned to QuicKeys. In fact, I've had various versions of QuicKeys around since version 1, but I stopped using it at some point. At the time, I was using it mainly to launch files and folders, but Quicksilver provided a much more flexible and elegant way to accomplish that.
With the latest versions, I've started to use it in earnest again for tasks like switching network locations, SMTP servers and even replacing or adding to keyboard shortcuts. I know that in Panther you can edit the keyboard shortcuts for any application via the System Preferences, but in my experience it is clunky and only works when it feels like it. Using QuicKeys is easier and more reliable, and you can even add shortcuts for actions which would usually be done using the mouse. For example, I'm currently trying out Mozilla Thunderbird as an email client. It's excellent in many ways, but there are no keyboard shortcuts for selecting the inbox, sent mail box or the junk mail box, for example. Using mouse click recording, I was able to set up keyboard shortcuts to simulate clicking on a mailbox in the mailbox list. I've also got little macros to do things like exchange two adjacent characters. Cocoa applications have a shortcut for this (Control-T, I think), but now that I have a QuicKeys shortcut bound to Control-T, I can get the same behaviour in all applications.
There's one particularly useful feature of the latest version that eventually persuaded me to upgrade. You can set buttons or keys on 'devices' (mice, keyboards and joysticks) to be the triggers for shortcuts. I've got a Logitech MX900 bluetooth mouse which I love, but without installing the buggy Logitech drivers there's poor support for the plethora of extra buttons it provides (the left and right buttons and the scroll wheel work fine without drivers). If I plug in the base unit via USB, the utility USBOverdrive does a great job of allowing you to remap those buttons. However, this seems like a bit of a fiddle; I got a bluetooth mouse to get rid of the cables. The developer of USBOverdrive — Alessandro Levi Montalcini — is planning to add bluetooth support, but has understandably been side-tracked by much more important matters. Anyway, I discovered that QuicKeys X3 lets you access the extra buttons on the MX900 and assign them to shortcuts. This means that I can map the forward and back buttons on the side of the mouse to forward and back in my browser and the Finder, the window button on the top to the Show Desktop Exposé command, and even get the scroll wheel working in those few applications that don't support a scroll wheel. Because you can set the scope of any shortcuts to limit them to particular applications (or particular parts of applications), you can even get the buttons to do different things in different applications.
It works really well, although I've found that I need to relaunch QuicKeys itself after my laptop has gone to sleep to get it to register the mouse again. QuicKeys is fairly expensive now if you are not upgrading, but it's worth trying out the demo to see if it would be worth the expense for you. There's a lot you can do with it. [Needless to say, I'm not affiliated with Startly Technologies at all — I'm just a happy user.]