Thanks for this info, but it's way too complicated just to set up a custom layout... Please MS fix this!!
Microsoft Keyboard Layout Creator (MSKLC) for Windows 11 ARM
This is extremely long, slow, and complex. I assume you already know how to use MSKLC and have it installed. If you would like this to be simplified, please vote in favor at the following link. https://aka.ms/AAu3i66
- When you have your keyboard layout ready in MSKLC, instead of using Build DLL and Setup Package, go to File/Save Source File and save the file where you prefer. This will generate a .klc file. For example, I will assume it’s saved at C:\Users\my PC\Documents\My Layout\My Layout.klc, where "my PC" is the name of your computer user, and "My Layout" is the name of your layout.
- In the search bar, type CMD and click Run as Administrator.
- Type:
CD "C:\Users\my PC\Documents\My Layout"
- Type:
"C:\Program Files (x86)\Microsoft Keyboard Layout Creator 1.4\bin\i386\kbdutool.exe" -u -s "C:\Users\my PC\Documents\My Layout\My Layout.klc"
. If there’s an error, type:"C:\Program Files\Microsoft Keyboard Layout Creator 1.4\bin\i386\kbdutool.exe" -u -s "C:\Users\my PC\Documents\My Layout\My Layout.klc"
. -u is for Unicode characters, and -a is for ASCII characters. This might cause errors, so you may need to switch between the two.
The previous steps will create the following four files in C:\Users\my PC\Documents\My Layout:
- My Layout.c
- My Layout.def
- My Layout.h
- My Layout.rc
Now install Visual Studio. During installation, select Desktop Development with C++ and under the Individual Components tab, select Windows Driver Kit and MSVC... ARM64/ARM64EC Build Tools... (the latest version).
Once installation is complete:
- Open Visual Studio.
- Click Create a new Project.
- In the template search bar, type Empty Project.
- Click Empty Project.
- Click Next.
- In the project name field, type the same name you used in MSKLC for Project/Properties/Name. In this case, "My Layout."
- Choose the location.
- Click Place solution and project in the same directory.
- Click Create.
- Use the keyboard shortcut Ctrl + Alt + L.
- This will open the Solution Explorer; right-click on My Layout and select Add.
- In the Add menu, click Existing Item.
- Navigate to C:\Users\my PC\Documents\My Layout.
- Select all four files that were generated and click Add.
- Now use the keyboard shortcut Alt + Enter.
- Under Configuration, select Release.
- Under Platform, select All Platforms.
- In the General Properties list, select Dynamic-Link Library (.dll) for Configuration Type.
- Click OK.
- In the second toolbar, there is a list that says Debug or Release. Click this list. Next to it, it should say x86 or x64.
- Select Release.
- In the list where it says x86 or x64, click it.
- Click Configuration Manager.
- Click Active Solution Configuration.
- Click on Release.
- Click on Active Solution Platform.
- Click New.
- A window will appear; under Select or Type the new platform, click the dropdown list.
- Select ARM64EC.
- Click Copy settings from.
- A menu will appear, and click x64.
- Click OK.
- The project name, in this case, My Layout, should appear. In the Configuration column, click the dropdown list.
- Select Release.
- In the Platform column, click the dropdown list.
- Select ARM64EC.
- Click Close.
- Use the keyboard shortcut Ctrl + Shift + B.
This will create the My Layout.dll file in C:\Users\my PC\Documents\My Layout\ARM64EC. This file is your custom keyboard layout, which should be copied and pasted into C:\Windows\System32 on your Windows 11 ARM or higher machine.
- On an x86 or x64 machine, open MSKLC and load My Layout.klc.
- Click on the Project menu.
- Click on Properties.
- In Name, type My Layout.
- Click OK.
- Go to the Project menu again.
- Click on Properties.
- Select Build DLL and Setup.
- If there are no errors, a window will appear asking if you want to view the .log file. Click No.
- Another window will appear asking if you want to navigate to the directory where the file is located. Click OK.
- In this location, open setup.exe.
- Follow the installer instructions.
If installation is successful:
- Use the keyboard shortcut Windows + R.
- Type Regedit.
- Be extremely careful with the registry! Any changes can cause unexpected behaviors or even make the computer unusable if instructions are not followed carefully.
- Navigate to the following registry path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts.
- Use the keyboard shortcut Ctrl + F.
- Type My Layout.dll.
- Press Enter.
- In the right pane, you should see Layout File under the Name column and My Layout.dll under the Data column. If this doesn’t happen, repeat steps 5-7 until you get the desired result. Usually, it’s the last registry entry, so you might need to navigate to it to find the value.
You should now be in a path similar to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\A19D0409, where the last eight characters are a unique hexadecimal combination for your keyboard.
- On the left panel, right-click on the folder (e.g., A19D0409).
- In the menu, click Export.
- Save the file as My Layout.reg.
- In the search bar, type Notepad.
- Open it.
- In the File menu, click Open.
- Navigate to where you saved My Layout.reg.
- In the file dialog, click the dropdown list above the Open and Cancel buttons.
- Select All Files (.).
- Select and open the My Layout.reg file.
- Be extremely cautious with what you’re about to do! Proceeding carelessly can render your system unusable or cause unexpected behavior!
- Inside the file, look for a line containing a set of letters and numbers separated by dashes within curly braces ({}). Delete this entire line to create a continuous list without any space between the lines.
- Click File.
- Click Save.
Now you have the two files that will make your keyboard work on Windows 11 ARM or higher. Open the My Layout.reg file on your Windows 11 ARM machine.
We’re done! Now simply search for your keyboard called My Layout, just as you would switch to any other keyboard, like French, German, etc.