Monday, March 31, 2008

Switch input language by Caps Lock

Since birth, I've used Grave Accent(`) for switching input language.
Just recent years I changed to alt+shift key instead in order to type (`) key
in unix command. I found it's not quite convenient but have to used it.
Then I found that , in ubuntu, I can set to using the caps lock key as a hotkey to switch input language. The caps lock key was useless for me long time ago. So I changed it and found that it' so easy to use and happy about moving finger.
So I'm going to set caps lock as a hotkey in Windows too. But the Windows don't allow me to do that. I spent a few hours (yes, a few hours) to find the way but rarely found. I found the closest way is to change the caps lock to grave accent key.
(Only advanced user or sure to do)
Below is how to do that.
1. Open regedit (via Run-> type regedit -> Ok).
CurrentControlSetControlKeyboard Layout) key.
3. Add new key name "Scancode Map" as binary value type.
4. Double click this key and Fill the value.
"00 00 00 00 00 00 00 00 02 00 00 00 29 00 3a 00 00 00 00 00"

(In this picture my value is
"00 00 00 00 00 00 00 00 03 00 00 00 29 00 3a 00 3a 00 46 00 00 00 00 00"
because I add another keypair to remapping the Scroll lock key to work as a caps lock key.)
5. Change key setting in Control Panel->Regional and Language Options as below

6. Restart the computer!!
7. It works!

Thanks to Remap the Keyboard in Windows XP. :)


  1. 5. Change key setting in Control Panel...In Advanced Key Settings i have only 2 variants.Switch input languages:CTRL + SHIFT or Left ALT + SHIFTHow i can shange key settings also as on your picture?(Windows XP Proffesional SP3)

  2. What input language do you use except english? I guess that I have a Grave Accent(`) choice because I use Thai and this key is a standard switch-language key in Thai so microsoft adds this key in the Thai keyboard system.Maybe you have to find other way. -_-"

  3. Thank you for this great article.I tried what your nicely instructed method but unfortunately my Advanced Key Settings supports only LEFT ALT+SHIFT, so your method didn't work for me.Fortunately, I found a tool named "Single Key Language Switch" (made by a company called Software Candy) that does exactly what you described without much hassle and without risky registry tweaking. I am so happy with this tool, you can find it here:

  4. Oops... it's me again. The link didn't go through. Here it is again:Single Key Language SwitchSingle Key Language Switch