Context switching is the productivity killer. Every time I have to reach for the trackball while I'm engrossed in a task that requires the keyboard, I lose whatever focus I had on that task. The few fractions of a second that it takes to reach the trackball are irrelevant. The change in context is the actual killer of my productivity.
That's one reason why I love Emacs and won't use any other text editor. Emacs is a modeless text editor and you can accomplish any task in it by using certain key chords in your keyboard, which translates to a completely mouse free experience. I have spent much time thinking about how to translate the Emacs experience to the whole graphical user interface paradigm and the answer has been staring me in the face the whole time.
So the question has been "How can I be most efficient in a graphical desktop environment?" and I have known that the answer was to get rid of the mouse since I started using Emacs several years ago. But how do you do that... The pillar of the desktop paradigm is the pointing device. I think I found the answer and it's a type of utility called the Application Launcher.
My recent epiphany was pure luck: Windows 7 does away with the Quick Launch toolbar as I known it up to Windows Vista. In retrospect, the quick launch toolbar paradigm couldn't be more inefficient: miniscule 16 by 16 pixel icons lined up on a toolbar that's not much bigger. Talk about a violation of Fitt's Law. I was too addicted to the quick launch paradigm to be able to accept and use anything else, but Windows 7 forced me to find an alternative.
Launcher tools have been around for a while and the first time I heard of them was in an article about QuickSilver for OS X. There are definitely variations on the application launcher theme and I even installed Gnome Do on a Linux laptop I had laying around a little while back. So I installed Launchy (it seems to be the most popular launcher for Windows) on my Windows 7 work laptop and decided to give it a real try.
It took about an hour of using Launchy on my work laptop running Windows 7 to shift to the Application Launcher paradigm and be amazed at the results. It's been a few days and I am still learning all that Launchy can offer, but one thing is certain: there is a great likelihood that Launchy will completely change the way I work and interact with a computer from now on.
There is a small amount of configuration and setup that you can do to Launchy to teach it where to look for your stuff. Launchy has a concept of a Catalog, which is a collection of locations and file types that it will look at when you want to accomplish something. If Launchy is missing a feature you need, you are empowered to write your own Launchy plugin and fix your problem right then and there.
Launchy also uses a Verb/Subject analogy to accomplish useful things. For instance, use the Alt and Spacebar keystroke to bring up Launchy, then type in "fire" for Firefox and hit the Tab key. Then type in the URL twitter.com and hit Enter. This launches Firefox on twitter.com. You can do the same thing to open a file in Emacs. And you never leave the keyboard.
I am sure there are ways to activate the Quick Launch toolbar in Windows 7, but I'm glad that I decided to give a Launchy a real try. I am pleasantly surprised by the results so far.