Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Safe KLID For 'Custom' Keyboard Layout?

I need to install several 'custom' keyboard layouts on Windows 10. These are not MKLC generated layouts.

What is a 'safe' KLID to use for my layouts?

axxxxxxx seems to be used by MKLC. Dxxxxxxx seems to be utilized by the Layouts PreLoad / Substitues

I have several keyboard layouts to install, I.e, ????0409, ????0407, ????040e, .....

Any ideas for a relatively 'safe' value for '????' ?

I am concerned about running into some one else's keyboard layout.

Thanks

like image 971
RSullivan Avatar asked Dec 04 '25 10:12

RSullivan


1 Answers

Short answer: Looks like you can use 1..9 or c or f hex as prefix. Next three digits can be used as counter.

Long answer: KLID — a keyboard layout identifier.... The KLID can be retrieved for the currently selected keyboard layout in a thread through the GetKeyboardLayoutName API (note the pswzKLID parameter), though that is not true of any other selected or installed keyboard layout. Every keyboard layout on the system has one of these. Each KLID is 32 bits (thus 8 hex digits), and they can all be found in the registry as the subkeys under HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\. The bottom half of the KLID is a LANGID, and the top half is something device-specific. By convention, the first hex digit is usually as follows:

  • 0 — Most keyboard layouts
  • a — Keyboard layouts defined by MSKLC
  • b — Keyboard layouts defined by KbdEdit
  • d — Some non-CJK input methods that have been defined by the Text Services Framework (note: reported to me; I have never seen one of these!)
  • e — CJK input methods, also known as IMM32 IMEs (deprecated and not working since Windows 8)

Source: http://archives.miloush.net/michkap/archive/2005/04/17/409032.html

like image 169
DJm00n Avatar answered Dec 07 '25 12:12

DJm00n



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!