Maxime Labelle
Maxime Labelle

Reputation: 3639

MSKLC : How to associate a country to a custom keyboard layout

I made a custom keyboard layout with MSKLC. I thought I followed the instructions carefully and chose appropriate values for the LOCALENAME and LOCALID parameters.

However, in the switch-keyboard popup that is displayed by pressing Win+Space or on the TaskBar, the country associated with my custom layout is not displayed.

enter image description here

How to I author my layout so that Windows knows about the country it should be associated with?

Upvotes: 5

Views: 287

Answers (2)

DJm00n
DJm00n

Reputation: 1441

These short abbreviated keyboard layout names seems to be sawn inside Windows language bar source code. Only layouts that are supplied with Windows have them.

Abbreviated language names seems sawn too. If I requesting LOCALE_SISO639LANGNAME2 of LOCALENAME and then uppercasing it - it still resulting in lating string. RUS for exampe, not РУС for Russian.

Some asian IMEs are drawn as images on this bar.

PS: In Windows XP they had just used LOCALE_SABBREVLANGNAME - see InatCreateIconBySize in NT/windows/advcore/ctf/uim/internat.cpp in leaked Windows source code. :)

layoutsenter image description here

Upvotes: 0

xanatos
xanatos

Reputation: 111920

From some experiments I've done with a custom keyboard of mine, you have to change the registry.

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layouts\0000040c

change

"Layout File"="KBDFR.dll"

to

"Layout File"="YourDll.dll"

and then set the

"Layout Display Name"="@%SystemRoot%\system32\YourDll.dll,-1000"

Now if you reboot you should see both the keyboard type and the correct first row. As an added bonus, the Remote Desktop won't default to english keyboard, and it will simply use the "basic" French keyboard.

Upvotes: 2

Related Questions