[Home] [Purchase] [Download] [Manual] [Acknowledgements] [Sitemap] [Release Notes] [FAQ]

Up ] Editing VK Mappings ] Modifiers ] [ Special NLS functions ] Mouse keys ] List of Virtual Key Codes ]

Special NLS functions

Certain Far Eastern (FE) keyboard layouts have special functions, which don't fit the common model of a key's function being fully defined by its virtual key code, and the high-level Unicode mappings assigned to its modifier positions. This functionality is hereby referred to as the Special NLS functions, with NLS standing for National Language Support.

In current versions, KbdEdit does not allow the editing of these special functions, however since version 18.9.0 two important improvements have been made:

  • Any special NLS functions found in the original layout are now preserved in the custom layouts saved by KbdEdit.
    This allows the user to customise system FE layouts such as Japanese and Korean without losing the special FE functions present in the original layouts.
     
  • The low-level editor UI shows details of any special NLS functions present in the current layout.

Special NLS functions, where defined, override the key's normal functionality for select combinations of the Shift, Ctrl and Alt modifier keys.

As an example, system layout KBDJPN.DLL (00000411 Japanese (Japan)) has special NLS functions defined for virtual keys VK_CAPITAL (Caps Lock) and VK_OEM_3 ( ` inverted quotation mark):

Virtual key Modifiers Function
VK_CAPITAL Shift Alpha Num
Ctrl Hiragana
Shift+Ctrl "param VK" VK_KANA
Alt Katakana
other normal function, ie
VK_CAPITAL
VK_OEM_3 Ctrl Sbcs-Dbcs
Alt "param VK" VK_KANJI
other normal function, ie
VK_OEM_3

Of special note is the so-called "param VK" function - it causes the original key to "mutate" into a different VK code for the chosen modifier combination, without having to actually set aside a dedicated physical key for the "mutated" VK code.

Thanks to this function, the Japanese keyboard can toggle the KANA state for KANALOK mappings using Shift+Ctrl+CapsLock, which has the same effect as if VK_KANA was mapped to a hypothetical physical key of its own. Likewise, Alt+VK_OEM_3 produces the VK_KANJI code, removing the need for a dedicated Kanji key.

The Shift / Ctrl / Alt combinations controlling the special NLS functions are not restricted to the active modifier combinations available for high-level Unicode mappings. This is why NLS functions such as Alt+VK_CAPITAL (Katakana) and Alt+VK_OEM_3 (VK_KANJI) are possible, even though Alt alone is not a valid high-level modifier combination.

Special NLS functions in the UI

Although editing of special NLS function is currently not supported, KbdEdit UI shows details of any such functions that may exist in the current layout.

Any key with special NLS functions is visually denoted by a small red mark in the upper right corner; the key's tooltip also includes a mention that the key has special NLS function:

Key with a special NLS function

Additionally, the "Modifiers Info" widget contains a detailed summary of all special NLS functions in the layout:

NLS function summary

System layouts with special NLS functions

A standard US-English Windows installation contains several standard layouts with special NLS functions:

Layout DLL file Language Description Registered as
KBDJPN.DLL Japanese JP Japanese Keyboard Layout Stub driver 00000411 "Japanese"
KBDKOR.DLL Korean KO Hangeul Keyboard Layout Stub driver 00000412 "Korean"
kbd101a.dll Korean KO Hangeul Keyboard Layout for 101 (Type A) Not registered by default.

Can be registered via KbdEdit's
Registered Layout DLL file command

kbd101b.dll Korean KO Hangeul Keyboard Layout for 101(Type B)
kbd101c.dll Korean KO Hangeul Keyboard Layout for 101(Type C)
kbd103.dll Korean KO Hangeul Keyboard Layout for 103
kbd101.dll Japanese JP Japanese Keyboard Layout for 101
kbd106.dll Japanese JP Japanese Keyboard Layout for 106
kbd106n.dll Japanese JP Japanese Keyboard Layout for 106
kbdibm02.dll Japanese JP Japanese Keyboard Layout for IBM 5576-002/003
kbdlk41a.dll Japanese DEC LK411-AJ Keyboard Layout
kbdnec.dll Japanese JP Japanese Keyboard Layout for (NEC PC-9800) Not registered.

Not supported by KbdEdit

kbdnec95.dll Japanese JP Japanese Keyboard Layout for (NEC PC-9800 Windows 95)
kbdnecat.dll Japanese JP Japanese Keyboard Layout for (NEC PC-9800 on PC98-NX)
kbdnecnt.dll Japanese JP Japanese NEC PC-9800 Keyboard Layout
f3ahvoas.dll Japanese JP Japanese Keyboard Layout for Fujitsu FMV oyayubi-shift keyboard

By default, only first two of the above files are registered in the Windows list of installed layouts, making them directly accessible in the Windows keyboard selection UI.

The remaining layout files are by default not registered, and are hence not directly accessible. Instead of being referenced directly by a unique KLID, Windows selects and loads them through a rather convoluted and poorly documented process, depending on the value of certain registry keys under HKEY_LOCAL_MACHINE. These two articles have more details:

To open any of these files in KbdEdit, you first have to import them via KbdEdit's Registered Layout DLL file command (note that this doesn't work for the last five layouts in the list, as they are currently not supported by KbdEdit).

Manual index

Copyright KbdSoft 2007-2018