Reputation: 3639
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.
How to I author my layout so that Windows knows about the country it should be associated with?
Upvotes: 5
Views: 287
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. :)
Upvotes: 0
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