3

For ages now, I have been using MS Keyboard Layout Creator to create my own accessible keyboard, including on the Surface Pro. Unfortunately, since Windows 10 update 1803, custom layouts created this way only show a full-size fluent design keyboard on a touch screen, without option to use the simplified layout.

Behavior with a custom DLL

Is there any way to create or hack an official input method to change the position of keys or add special accented characters, and still have official support for the touch-optimized keyboards as shown below?

Desired behaviour

Brunni
  • 143
  • 1
  • 11

2 Answers2

0

@Brunni, I know this is an old thread, but did you manage to achieve any success in this quest?

I used to think that the kbd*.dll files in Windows8+ have been extended to incorporate the new features:

  • abbreviated layout in the task bar when multiple layouts for one language are enabled
  • the QWERTY/AZERTY/* descriptor string in language options
  • touch-optimized layouts

But it appears that this is not actually the case: all kbd*.dll files still take up around 8KB, and there isn't anything interesting in the couple layouts open-sourced by Microsoft as examples: https://github.com/Microsoft/Windows-driver-samples/tree/master/input/layout. I even recompiled my custom layout using the latest Visual Studio and Windows Driver Kit, but nothing changed.

I found that the abbreviated layout names are stored in InputSwitch.dll.mui files, which probably means that this DLL is somehow involved, but that's about all I managed to dig up so far...

Rimas Kudelis
  • 555
  • 3
  • 12
  • (See my new answer above :)) – Brunni Apr 09 '19 at 04:26
  • I made some progress this year. It seems all of these things are hardcoded and implemented for the official layouts only, but you could try to hack your way into them. I've documented my observations at the bottom of https://github.com/rimas-kudelis/ltenh/wiki/Links-&-Notes, for now at least. – Rimas Kudelis Feb 13 '22 at 20:34
  • Fantastic work. Too bad that it's not public, but I kinda expected that. Thank you for taking the time to update this answer and all the best to you! – Brunni Feb 15 '22 at 06:50
0

No I didn't find a solution. However what I did is that I extended my utility tool to provide accents by listening to the keyboard shortcuts.

https://github.com/Brunni132/roxxortool (turn on internationalUsKeyboardForFrench option)

That way, I stay with the vanilla US or JP keyboard, which are practical for programmers, and listen to sequences on a user level, which I replace by additional characters that I use in french:

  • RAlt+E = É
  • Ralt+A = À
  • Ralt+U = ` dead key
  • [...]

It works beautifully for physical keyboards, I didn't have an issue since then, and the touch keyboard remains the standard one. It's the best compromise as I can program, write in English, Japanese or French without changing the physical layout or messing with it. The only thing is, on the touch keyboard, Windows 10 only suggests words in English, thus I have to spell words entirely, including long-presses for accents. It's impractical but you could add the French layout only for use on a touch screen.

Brunni
  • 143
  • 1
  • 11