of a kooky software developer with megalomaniacal inferiority complex

CapsLock input source switching in Mac OS X

As a software developer and true introvert, I type a lot. I type for coding, I type for blogging, I type for chatting, I type for sexing ;-) My two most used keyboard layouts are English and Russian; I also use Esperanto sometimes. And as I type, I want to switch the keyboard layouts fast and insensibly.

Mac OS X default installation suggests Cmd+Space keyboard shortcut for selecting the input source, yet it is configurable. Windows suggests Alt+Shift or Ctrl+Shift, and you cannot change it to anything more sophisticated.

Both these options are far from convenient since they require the user to press two keys simultaneously, which is not good when you type fast and focus on the content rather than typing itself. Two-key shortcut in the corner of the keyboard forces you to move your whole palm from its position over the keyboard, and then to reposition it back — this causes a break in text flow for a fraction of second.

There is much better option for Mac OS X: select input sources with CapsLock key, which is almost never used for its direct purpose of locking the capital case mode (two Shifts are more than enough). Besides it is only one single key to press, you can also press it with your left little finger, keeping your other fingers on their positions, thus not causing the break.

I know there are lots of manuals how to do that. Here is yet another one just for further references in this blog, and as a beginning episode of a keyboard tricks series.

Install PCKeyboardHack (UPD 2015: now called Seil) — that is quite easy and straightforward, just follow the instructions on their site.

Do not forget to disable system CapsLock behavior in System Preferences – Keyboard – Modifier Keys.

When configuring the CapsLock mapping in PCKeyboardHack, use key code 80 (which is F19), not 110 as shown on their pictures.

Now, go to System Preferences — Keyboard — Shortcuts — Input Sources, and set Previous Input Source to F19 by pressing the CapsLock key on the keyboard.