I learned touch typing a long time ago. Since I spend most of my waking hours in front of a computer typing either text or code, touch typing is something I can’t live without. Sometimes however, I am faced with a daunting task of writing an email or a document in a mix of two languages. Technical documents in Hebrew for instance, usually contain quite a lot of English terms. I can touch type in Hebrew as well as I can in English, but when the time comes to switch between languages, that weird Alt-Shift combination really kills my flow. I might be nitpicking a bit here, but I can’t tell you how many times I pressed Shift-Alt instead of Alt-Shift and wound up in the application’s menu instead of changing the current language.
Then there’s the CapsLock key. I don’t think anybody uses it nowadays, and even the touch typists seem to just HOLD THE SHIFT WITH THEIR PINKY and type what needs to be in capital letters. I wrote a small program called Recaps a while ago that converts CapsLock into a language switching key. Now I can’t live without it. I find myself instinctively hitting CapsLock to switch languages never thinking about it, even on computers I didn’t install it on. Needless to say it’s one of the first things I install on a computer I need to work on.
I talked to an old friend of mine last night who said he was using Recaps and spreading it around but he was missing a feature. When there were more three or more languages installed on the computer, Recaps would just cycle through all of them, like Alt-Shift does. Most times however, you only use two languages at any given time, typically English and your native tongue, and only need to switch between these two.
Doing this in Win32 API was a bitch, but I finally got a tray icon and a small menu to work. The menu shows the list of languages currently installed on your computer with check boxes next to them. Hitting CapsLock now only cycles through the languages that are currently enabled and even saves the active languages between runs.
You can download source and binaries for the new 0.3 version from my Recaps page.
I’d love to know if anybody finds it as useful as I do.