I used to be the type of person that always always hit the CAPS LOCK button on a PC keyboard… when I used a straight/standard XT/AT keyboard, I would physically pop off the damned key so it was a non-issue. When I switched to the split-natural style keyboard, the problem seemed to go away (ta to Microsoft for that) if only because it became a key that was “out of the way”. So for the last seven or eight years, I’ve been able to keep my keyboard intact without worry. Even on my original Sony Vaio (N505VE) I didn’t seem to have a problem, if only because it was a smaller keyboard, I just kept missing it. Times change. What I discovered is a method of keyboard remapping that is pretty much absolute.
I currently use one of the newer Sony notebooks (R505JL) that has a larger screen and thereby a larger keyboard; at least compared to the N505VE model. I started nailing the caps lock key again with remarkable accuracy! So I started snooping around. I found a few “paid for” solutions that would sit in the SysTray, but I come from the world and time of TSR (Terminate and Stay Resident) drivers and 640K RAM based machines… I don’t give any application more RAM than it needs to run and I certainly don’t like for them to hang about without “need”. Call it a bad habit, but I’m just that way; a tyrant over my own OS. I also saw in the Microsoft Intellitype software that there’s a “disable caps lock” option. Of course, the Sony doesn’t have an Intellitype keyboard, so that’s not an option. Enter Google.com.
What I discovered is a method of keyboard remapping that is pretty much absolute. I know it works on XP – I would have to imagine it works on all flavors of Windows, as the registry entry that you use has been there for years. How does it work? If you open RegEdit.exe, navigate to the following key:
You may, or may not see the REG_BINARY value of Scancode Map on the right hand side. If you don’t have one, create one, but make sure it’s REG_BINARY. Into this you will enter a string of Hex based numbers telling Windows what you want to remap. The order is as follows – anything that follows a // is a comment and should not be typed. This example will remap the caps lock key to the left shift key.
00 00 00 00 00 00 00 00
// This is required by Windows – it will always be 0’s
02 00 00 00 2A 00 3A 00
// the first word is the number of remappings you are going to use, plus the null terminator; I have one mapping plus the null, hence the 02 00 00 00. The other word of 2A 00 3A 00 is the remapping of the key itself – caps lock’s scancode is 0x3A (shown as 3A 00) and that is mapped to the left shift key (scancode 0x2A, shown as 2A 00). If you are at all familiar with Hex numbers, this will make sense. If you wanted to map caps lock to a null key instead of 2A 00 3A 00 it would be 00 00 3A 00 and so on. If you wanted to map more than just 1 mapping, you would change the 02 00 00 00 to reflect it and add more words to the list, always in the form of “Target key, Key to Remap”.
00 00 00 00
// This is the null terminator that is required – always 1 word and always all 0’s.
If you follow the instructions above and enter in only these numbers, you will effectively make the caps lock key think it’s the left shift key. If you change the 2A to 00 you will disable the caps lock key altogether. There’s a whole article in the knowledge bank at Microsoft on this, if you want more information on this; I just wanted to pluck one key so that’s all I’ve done. Also, if it doesn’t take effect immediately, give the machine a reboot – I don’t remember if I had to do this or not, but since XP follows it’s own rules for drivers, and this is a driver level hack, you might have to on other versions. Besides, it’s a PC – rebooting never hurts it!
And that’s that. I can type effectively on the notebook again and these is harmony in the world. As usually, I thought I’d share this with you all – besides, this is the only way I know of to save the Windows tips I find… if I don’t post them here, I’ll have to relearn them after a crash or new machine acquisition! Also, please insert any obviously required disclaimers about you doing this at your own risk and randyrants.com isn’t responsible for any mishaps of any kind, etc., etc., etc. – it’s just still common sense to me, but some people seem to think it’s required… oh, and as a warning – if you are not familiar with the registry, this is not a good task to start out with, given the Binary type of the value and possible overall effect of this on your machine.. As the majority of this sites readers are Geeks in their own right… so, what the hell!