Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate the "The Microsoft Keyboard Layout Creator" into Powertoys #5859

Open
pguerin3 opened this issue Aug 11, 2020 · 18 comments
Open

Integrate the "The Microsoft Keyboard Layout Creator" into Powertoys #5859

pguerin3 opened this issue Aug 11, 2020 · 18 comments
Labels
Idea-Enhancement New feature or request on an existing product Product-Keyboard Shortcut Manager Issues regarding Keyboard Shortcut Manager

Comments

@pguerin3
Copy link

📝 Integrate the "The Microsoft Keyboard Layout Creator" into Powertoys

The Microsoft Keyboard Layout Creator (MSKLC) extends the international functionality of Windows 2000, Windows XP and Windows Server 2003 systems

_Would be nice to get this Microsoft application integrated into Powertoys, so it's supported in Windows 10.

https://support.microsoft.com/en-ph/help/823010/the-microsoft-keyboard-layout-creator

@ghost ghost added the Needs-Triage For issues raised to be triaged and prioritized by internal Microsoft teams label Aug 11, 2020
@saahmedm saahmedm added Idea-New PowerToy Suggestion for a PowerToy and removed Needs-Triage For issues raised to be triaged and prioritized by internal Microsoft teams labels Aug 18, 2020
@saahmedm saahmedm added this to the Suggested Ideas milestone Aug 18, 2020
@Jay-o-Way
Copy link
Collaborator

That link seems to be broken

@pguerin3
Copy link
Author

ok - looks like Microsoft have decommisioned the page.
Here is what a created layout file (eg Halmak layout) looks like after using the tool:

KBD Halmak "Halmak - AI designed keyboard layout"

COPYRIGHT "Copyright (C) 2016 Nikolay Nemshilov"

COMPANY "Halmak"

LOCALENAME "en-US"

LOCALEID "00000409"

VERSION 1.0

SHIFTSTATE

0 //Column 4
1 //Column 5 : Shft
2 //Column 6 : Ctrl

LAYOUT ;an extra '@' at the end is a dead key

//SC VK_ Cap 0 1 2
//-- ---- ---- ---- ---- ----

02 1 0 1 0021 -1 // DIGIT ONE, EXCLAMATION MARK,
03 2 0 2 0040 -1 // DIGIT TWO, COMMERCIAL AT,
04 3 0 3 0023 -1 // DIGIT THREE, NUMBER SIGN,
05 4 0 4 0024 -1 // DIGIT FOUR, DOLLAR SIGN,
06 5 0 5 0025 -1 // DIGIT FIVE, PERCENT SIGN,
07 6 0 6 005e -1 // DIGIT SIX, CIRCUMFLEX ACCENT,
08 7 0 7 0026 -1 // DIGIT SEVEN, AMPERSAND,
09 8 0 8 002a -1 // DIGIT EIGHT, ASTERISK,
0a 9 0 9 0028 -1 // DIGIT NINE, LEFT PARENTHESIS,
0b 0 0 0 0029 -1 // DIGIT ZERO, RIGHT PARENTHESIS,
0c OEM_MINUS 0 002d 005f -1 // HYPHEN-MINUS, LOW LINE,
0d OEM_PLUS 0 003d 002b -1 // EQUALS SIGN, PLUS SIGN,
10 W 1 w W -1 // LATIN SMALL LETTER W, LATIN CAPITAL LETTER W,
11 L 1 l L -1 // LATIN SMALL LETTER L, LATIN CAPITAL LETTER L,
12 R 1 r R -1 // LATIN SMALL LETTER R, LATIN CAPITAL LETTER R,
13 B 1 b B -1 // LATIN SMALL LETTER B, LATIN CAPITAL LETTER B,
14 Z 1 z Z -1 // LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z,
15 OEM_1 0 003b 003a -1 // SEMICOLON, COLON,
16 Q 1 q Q -1 // LATIN SMALL LETTER Q, LATIN CAPITAL LETTER Q,
17 U 1 u U -1 // LATIN SMALL LETTER U, LATIN CAPITAL LETTER U,
18 D 1 d D -1 // LATIN SMALL LETTER D, LATIN CAPITAL LETTER D,
19 J 1 j J -1 // LATIN SMALL LETTER J, LATIN CAPITAL LETTER J,
1a OEM_4 0 005b 007b 001b // LEFT SQUARE BRACKET, LEFT CURLY BRACKET, ESCAPE
1b OEM_6 0 005d 007d 001d // RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET, INFORMATION SEPARATOR THREE
1e S 1 s S -1 // LATIN SMALL LETTER S, LATIN CAPITAL LETTER S,
1f H 1 h H -1 // LATIN SMALL LETTER H, LATIN CAPITAL LETTER H,
20 N 1 n N -1 // LATIN SMALL LETTER N, LATIN CAPITAL LETTER N,
21 T 1 t T -1 // LATIN SMALL LETTER T, LATIN CAPITAL LETTER T,
22 OEM_COMMA 0 002c 003c -1 // COMMA, LESS-THAN SIGN,
23 OEM_PERIOD 0 002e 003e -1 // FULL STOP, GREATER-THAN SIGN,
24 A 1 a A -1 // LATIN SMALL LETTER A, LATIN CAPITAL LETTER A,
25 E 1 e E -1 // LATIN SMALL LETTER E, LATIN CAPITAL LETTER E,
26 O 1 o O -1 // LATIN SMALL LETTER O, LATIN CAPITAL LETTER O,
27 I 1 i I -1 // LATIN SMALL LETTER I, LATIN CAPITAL LETTER I,
28 OEM_7 0 0027 0022 -1 // APOSTROPHE, QUOTATION MARK,
29 OEM_3 0 0060 007e -1 // GRAVE ACCENT, TILDE,
2b OEM_5 0 005c 007c 001C // REVERSE SOLIDUS, VERTICAL LINE,
2c F 1 f F -1 // LATIN SMALL LETTER F, LATIN CAPITAL LETTER F,
2d M 1 m M -1 // LATIN SMALL LETTER M, LATIN CAPITAL LETTER M,
2e V 1 v V -1 // LATIN SMALL LETTER V, LATIN CAPITAL LETTER V,
2f C 1 c C -1 // LATIN SMALL LETTER C, LATIN CAPITAL LETTER C,
30 OEM_2 0 002f 003f -1 // SOLIDUS, QUESTION MARK,
31 G 1 g G -1 // LATIN SMALL LETTER G, LATIN CAPITAL LETTER G,
32 P 1 p P -1 // LATIN SMALL LETTER P, LATIN CAPITAL LETTER P,
33 X 1 x X -1 // LATIN SMALL LETTER X, LATIN CAPITAL LETTER X,
34 K 1 k K -1 // LATIN SMALL LETTER K, LATIN CAPITAL LETTER K,
35 Y 1 y Y -1 // LATIN SMALL LETTER Y, LATIN CAPITAL LETTER Y,
39 SPACE 0 0020 0020 0020 // SPACE, SPACE, SPACE
56 OEM_102 0 005c 007c 001c // REVERSE SOLIDUS, VERTICAL LINE, INFORMATION SEPARATOR FOUR
53 DECIMAL 0 002e 002e -1 // FULL STOP, FULL STOP,

KEYNAME

01 Esc
0e Backspace
0f Tab
1c Enter
1d Ctrl
2a Shift
36 "Right Shift"
37 "Num *"
38 Alt
39 Space
3a "Caps Lock"
3b F1
3c F2
3d F3
3e F4
3f F5
40 F6
41 F7
42 F8
43 F9
44 F10
45 Pause
46 "Scroll Lock"
47 "Num 7"
48 "Num 8"
49 "Num 9"
4a "Num -"
4b "Num 4"
4c "Num 5"
4d "Num 6"
4e "Num +"
4f "Num 1"
50 "Num 2"
51 "Num 3"
52 "Num 0"
53 "Num Del"
54 "Sys Req"
57 F11
58 F12
7c F13
7d F14
7e F15
7f F16
80 F17
81 F18
82 F19
83 F20
84 F21
85 F22
86 F23
87 F24

KEYNAME_EXT

1c "Num Enter"
1d "Right Ctrl"
35 "Num /"
37 "Prnt Scrn"
38 "Right Alt"
45 "Num Lock"
46 Break
47 Home
48 Up
49 "Page Up"
4b Left
4d Right
4f End
50 Down
51 "Page Down"
52 Insert
53 Delete
54 <00>
56 Help
5b "Left Windows"
5c "Right Windows"
5d Application

DESCRIPTIONS

0409 Halmak - AI designed keyboard layout

LANGUAGENAMES

0409 English (United States)

ENDKBD

@netify-gmail
Copy link

Appears this has been integrated into power toys:
image

@pguerin3
Copy link
Author

Can there be an enhancement to show the full keyboard layout as a single graphic?
See the sample from The Microsoft Keyboard Layout Creator.

image

@pguerin3
Copy link
Author

That link seems to be broken

Actually MS have re-released the application at this new webpage:

https://www.microsoft.com/en-us/download/details.aspx?id=102134

@Aaron-Junker
Copy link
Collaborator

I change this to a keyboard manager issue

@Aaron-Junker Aaron-Junker added Idea-Enhancement New feature or request on an existing product Product-Keyboard Shortcut Manager Issues regarding Keyboard Shortcut Manager and removed Idea-New PowerToy Suggestion for a PowerToy labels Feb 22, 2021
@ajhawkings
Copy link

If the open source problems were overcome, could the full keyboard layout creator be added to the keyboard manager section?

@Aaron-Junker
Copy link
Collaborator

@ajhawkings So the thing is I think Microsoft will not publish the code of the keyboard layout creator. So we would need to write a new one. And when they would publish it, we need someone who wants to add it to PowerToys. That's a lot of work and we aren't that many people.

@rollingmoai
Copy link

rollingmoai commented Jun 26, 2022

MSKLC does not support compiling the layout to ARM64. This feature would be very much needed!

@pguerin3
Copy link
Author

In fact the least effort is to allow Powertoys to map any character to any key.
For example, at the moment Powertoys only allows the ;: key to be mapped to another key.
This means I can't map the ; character to one key, and the : character to a different key on the keyboard.

If you can allow Powertoys to map any character to any key, then the problem will be solved.

@Jay-o-Way
Copy link
Collaborator

This means I can't map the ; character to one key, and the : character to a different key on the keyboard.

Yes you can. Just use shift.

@pguerin3
Copy link
Author

pguerin3 commented Jul 12, 2022

No I can't because I'll be using < shift ; > for another character, and < shift : > for yet another character.....
See the link for an example:
https://github.com/binarybottle/engram

@alisonatwork
Copy link

Something I can't find a solution for right now in Keyboard Manager is mapping a key to a dead key. For example, in US International layout, I would like to have some more dead keys so I can print caron and macron accents, as used in Maori, Pinyin and several Slavic languages.

Adding more dead keys is solvable by creating a custom keyboard in Microsoft Keyboard Layout Creator, but that has its own annoyances in that for some reason loading a custom US International keyboard into an existing region seems to also end up creating an additional "ghost" non-international US keyboard for the region, which makes Win+Space region switching less intuitive than it should be.

Keyboard Manager works great for doing single key replacements, though, so it would be cool if it also supported standard dead keys, as also discussed in #10082. For now I am trying to use the new Quick Accent tool, but it is a bit confusing to have one way to type accents that we used for decades (dead key), and now there is a different way to type accents that feels slower because of the requirement to long press certain letters as if it was a touchscreen.

@Jay-o-Way
Copy link
Collaborator

it is a bit confusing to have one way to type accents that we used for decades (dead key), and now there is a different way to type accents

Actually there are more ways: Dead keys, Alt-codes, Emoji input panel...

@neyb
Copy link

neyb commented Nov 15, 2023

Key mappings are not layouts...

@c4tch
Copy link

c4tch commented Nov 24, 2023

Key mappings are definately not keyboard layouts, it's an important point!
Here's an example of when a user needs to switch layouts:
When using different keyboards or peripherals that are in another language from the one being typed on in the OS, or whos layouts are not identical between brands of input device and you want them to be the same for productivty and muscle memory.
Example: I code, and I document, and I design. In two languages, one Swedish one English. I work in various locations with different physical keyboards via BT and using the standard keyboard for my Surface Pro.
In Windows 10, I was able to create layouts for each input source that I could switch around depending on how and where I was working (ex. Swedish Coder was one keyboard I used which had nice ergonimic shourtcuts for coding on my old school BT keyboard, where as I then had Swedish (the standard layout) for all other purposes when travelling).
This meant I would be able to quickly switch between keyboard layouts depending on language and device I was using.

The ask:
As a user I can save a mapping as a layout and switch between Layouts in Windows 11 using standard windows features (like Win+Space shortcut that is standard for switching keyboard layout), so that I can use different assignments depending on the input device or language independently.

@xuanswe
Copy link

xuanswe commented Jul 14, 2024

I used MSKLC to create my own keyboard layout and have used it for many years.
Now, I upgraded to Windows 11 and found that it is not working anymore :(.

Supported Operating Systems: Windows 10, Windows XP, Windows 2000, Windows 2000 Service Pack 2, Windows 2000 Service Pack 3, Windows Server 2003

And completely agree with @c4tch that "Key mappings are definately not keyboard layouts."
We need a complete integration with native Keyboard Settings of Windows 11 to use all affected features.
Custom keyboard layouts should appear in the list of Keyboards of each language in "Windows Settings > Time & Language > Language & Region".

@alex180500
Copy link

It's 2025 and I cannot change my keyboard layout as I wish in windows 11. Please implement this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Idea-Enhancement New feature or request on an existing product Product-Keyboard Shortcut Manager Issues regarding Keyboard Shortcut Manager
Projects
None yet
Development

No branches or pull requests