1

On Linux, I can grep xkb/symbols to find out which keyboard, if any, uses a particular character. For example, I can find all of the keyboards which can produce é.

Is there a way to do the same on Windows 10? Or, is there a way to use a Linux keyboard definition on Windows 10?

If I'm curious about the same thing for Keyman keyboard definitions, should that be a separate question?

Background about the question: I support International users who are beginning to type in their own languages, but have no background in computers. Frequently, they use characters that are not present on a "standard" keyboard. For accented letters, this is fairly simple, although on Windows it's more complicated than on Linux. For other unicode characters, it can be extremely difficult to find a keyboard that is able to create a particular character, short of alt-coding it (and many laptops lack numeric keypads these days).

I would like to be able to search through the available keymaps to find one that references the character I'm looking for, to see if it is suitable.

The closest thing I've found so far is the Comparator of National Keyboards here: https://www.farah.cl/Keyboardery/Interactive-Comparator-of-Different-National-Layouts/?left=enUS&right=random

3
  • Try if you can find out this tool Wpeutil Command-Line : The Windows PE utility (Wpeutil) is a command-line tool, included in Windows PE, that enables you to run commands during a Windows PE session. For example, you can shut down or restart Windows PE, enable or disable a firewall, set language settings, and initialize a network.
    – Hackoo
    Commented Aug 11, 2022 at 13:33
  • You will find the cmd script here ChangeKeyboardLayout.cmd
    – Hackoo
    Commented Aug 11, 2022 at 13:42
  • Windows does not have a repository listing keyboards and their characters.
    – harrymc
    Commented Aug 11, 2022 at 15:18

1 Answer 1

0

Sorry, @Hackoo, but that doesn't answer the question. While it would allow me to change the keyboard, it only does it in the context of Windows PE, which is a separate boot (i.e. not my Windows environment), and it doesn't actually tell me what characters are typed by the various keyboards.

While @harrymc is correct, and there is no "repository" listing the keyboards and their characters, I did find a direction that points vaguely at the answer.

This question on StackOverflow pointed me to the Microsoft Keyboard Layout Creator. While it is somewhat tedious, the available keyboards in Windows 10 can be individually loaded into MKLC and exported as .klc files that contain a plain-text description of the keyboard. Unfortunately, as noted in further commentary on that thread, MKLC isn't fully compatible with all Microsoft-supplied keyboards.

However, the thread also reveals the location of the information (a sort of "repository") listing the keyboards. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts in the registry contains a key for each keyboard, including the location in the file system. Of course, they are dlls, which are not exactly easy to decipher.

The "answer" includes code to use Reflector that allows one to use .NET (I had to install .NET 3.5 to use MKLC) to automatically export the keyboards by scripting MKLC. There is a free demo of Reflector, and I downloaded the DotNET SDK (because the other paths to compiling C# were getting long) in order to compile the app.

I did have to make a small change, to update for the location of MKLC on my machine (Program Files (x86) instead of Program Files), but it compiled without any problems and although (as the author warned) it is slow, it did the job.

Now, I have the plain-text keyboard descriptions (as .klc files) that can be searched (I will probably copy them to my Linux computer, as I have an easier time using it). Now, when I need to know if there's a built-in keyboard for Windows 10 that supports a particular character, I'll be able to get the answer.

Many thanks to @andrewdotn, who provided the C# code and the link to Reflector, and to @WesternGun for the registry key. Also, thanks are due to @AuralArch who pointed out that some of the keyboards are likely to export incorrectly due to shortcomings in MKLC. If what I have is insufficient, I may persuade my boss to purchase a license for KbdEdit.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .