The Windows Learning Center

Remapping the Keyboard Layout in Windows XP, Vista, and 7


The default layout for a Windows computer keyboard is not always the optimal one for a particular user. Several programs exist that allow changing the functions of individual keys like the Caps Lock key or the entire layout and they are discussed here. Registry scripts can also be used and several are provided.

Changing keyboard layouts

Many PC users are unaware that computer keyboard layouts and key assignments are not fixed in stone but can be changed. The hard core tweaker can make changes by editing the scan codes in the Registry key HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout
but most will prefer an easier and less dangerous way. Ever since the Windows 95 Kernel Toys, Microsoft has provided some sort of utility that allowed remapping or changing the functions of keys. Also, there are several free utilities for this task as well as some simple scripts.

Examples of remapping keys

A common reason for changing the function of a key is to get rid of "Caps Lock". Judging from remarks on the Internet, I am not alone in regarding this key to be an infernal nuisance. (I once did a Google search on "hate caps lock" and 852,000 pages were listed.) I have found myself typing all upper case countless times because I have accidentally hit this key. Whenever I have taught introductory computer classes, one of the standard student mistakes has involved this key. The solution is to change the key to a left shift key or left control key as described below.

Another common reason to remap a key is to add functions such as the Windows key to a notebook keyboard. Because of space considerations, some notebooks omit this key. However, the Windows key is part of some useful shortcuts and I like to have it available. A common solution is to remap the right Alt or Ctrl key to be a Windows key. Also, notebook keyboard layouts vary and those who are used to a particular location for certain keys sometimes wish to switch functions around.

Methods for making the various modifications are discussed next.

How to remap keys

There are some specialized proprietary methods such as the IntelliType software for Microsoft keyboards. However, for general use there are some free programs that are quite sufficient for most remapping needs. These are applications that use the ability of Windows to remap in the Registry.

Registry files

If it is a single change that is desired, a REG file can be found for a few common examples like modifying "Caps Lock". To disable Caps Lock, download a file here. A file to change the Caps Lock to a Shift key can be also be found there.


This free program from R. L. Santi has several versions with the latest one written for Vista as well as XP. I haven't tried it in Windows 7. It requires .NET 2.0 and can be downloaded here. The author describes it, " The official release includes support for up to 104 mappings, an extensive list of available keys, and a 'Type Key' option to help when managing mappings."


Key-Tweak exampleI have used this free program on a number of systems and I like it. It works for both XP and Vista/7 but Vista/7 requires it to be run as an administrator. It can be downloaded here. Click the thumbnail on the right to see a graphic that shows the main screen with a configuration where I have mapped the Caps Lock key to a Shift key.

Microsoft Keyboard Layout Creator

Microsoft Keyboard Layout Creator 1.4 (MKLC) is a free download but requires the usual validation rigmarole. This Vista compatible version is the latest in a series of Microsoft utilities for creating completely new keyboard layouts as well as tweaking existing ones. This version requires .NET 2.0. There is also an earlier XP version that will run with .NET 1.0. MKLC is a fairly powerful program intended for administrators who wish to create custom layouts or layouts in new languages and install them on whole networks. It has some drawbacks, such as not allowing Caps Lock to be disabled and I think the average PC user will prefer SharpKeys or KeyTweak.