5
votes

What's the best way to make a keyboard layout for Windows?

Specifically a layout that will appear in the 'Text Services and Input Languages' list and without buying expensive software.

I know about the Microsoft Keyboard Layout Creator but find it completely limited as you can't do simple things like remap the CapsLock key or the number keys.

5
Keyboard Layout Manager support changing chars in free version web.archive.org/web/20170704010716/http://www.klm32.com/…Alex78191
SharpKeys works well for nonstandard keys on Windows.Lime

5 Answers

5
votes

For remapping CapsLock or the number keys, use remapkey.exe found in the Windows 2003 Resource Kit Tools.

enter image description here

Keyboard layouts that show up in “Text Services and Input Languages” can’t remap CapsLock or do anything not supported by Microsoft Keyboard Layout Creator; the operating system just doesn’t support it. Anything that Microsoft can do with a keyboard layout, you can do with Microsoft Keyboard Layout Creator.

4
votes

You can build one yourself! A keyboard layout is basically a .DLL with a function that returns a table of assignments. The driver kit contains examples, and my Programmer Dvorak comes with source too (which is not derived from the DDK).

2
votes

I realize that this thread is quite old and dead, but the answer provided is inaccurate.

You can do exactly what you want to do with KbdEdit. It is not free, but it is not expensive by any means, and there are several versions with varying features.

I would also like to point out that despite the claims of the highest rated answer, the operating system, in fact, most certainly DOES support a multitude of complexities and customizations which MSKLC can not understand, process or support. There are—and always have been—MANY features and behaviors of keyboards which are possible in Windows but which are impossible with MSKLC.

In a number of cases it is possible to create as much as possible with MSKLC and then modify the source file in a text editor and then to build the DLL using the command line tools supplied with MSKLC. But it is my understanding that at a certain point—with certain features—those tools can not even be used to generate working keyboards. At this point you could turn to the driver development kit, but that is beyond my scope.

Fortunately, there's KbdEdit! It is extremely powerful, easy to use and it can change any key on most any keyboard to any other key—except for the "Pause" key, which is a Microsoft imposed restriction, but even that can be circumvented with AutoHotKey.

Cheers!

1
votes

did you check the new version of Microsoft Keyboard Layout Creator, I think you can do many things with this new version like remapping keys.

0
votes

I am a fan of Auto Hotkey, a free, small, non-fuzzy windows tool to assign macros to keys. If all you want is a few special characters like proper “Quotation Marks” —or em-dashes— this is great:

#NoEnv;
SendMode Input;

!1::
    {
        Send „
    }
return

!2::
    {
        Send “
    }
return