When a new layout is created, certain attributes need to be defined so that it can be properly installed. Due to the way keyboard layouts are handled by Windows, creating a new layout is more complicated than simply saving a file under a new name. A file name for the new DLL layout file does need to be defined, but it is also necessary to specify a layout’s language (i.e. locale), its descriptive textual name, generate a new unique KLID for the layout, and ensure that the new DLL file is properly registered with Windows.
Fortunately, all these obscure tasks are handled by KbdEdit as part of the Save As operation. You are only required to review the auto-generated initial values for “Layout Text”, “Register as” and “Layout file”, possibly changing them to less generic values, and KbdEdit will take care of the rest.
Initial attribute values are based on the original values of the layout being saved. You can choose another layout to “borrow” initial attributes from, and thus override the initial values, by selecting a layout from the Base on layout list. This list contains all the layouts installed on the system, and is identical to the layout list from the Open dialog.
Checking Add to language bar list instructs the Save As dialog to add the new layout to the Language Bar list immediately after its creation. This makes it immediately accessible to all Windows applications, and spares you a visit to the Manage Language Bar list dialog.
Once all the attributes have been specified, you can click OK to create the layout. KbdEdit will save the layout DLL file under the new name, automatically generate a new unique KLID, and register it with the given attributes under the HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts registry key.
From that point on, the new layout becomes a fully fledged member of the Windows list of keyboard layouts. If you have decided not to check the “Add to Language Bar” checkbox, the new layout can later be added to the Language Bar list from the Manage Language Bar dialog (alternatively you can use the “Text Services and Input Languages” Windows system dialog).
More on Add to language bar list check-box
If the new layout you are saving is a modified version of a layout that is already part of the language bar list, and Add to language bar list is checked, things become more complicated. In this case, you probably don't want both versions in the language bar - more than likely you want your customized version to supersede the original one. In this case KbdEdit clarifies the situation by presenting you with the following choice:
If presented with this question, choosing Yes will probably produce what you need: the original layout is removed from the language bar, and your customized version is introduced into its place. If the original layout was your default layout, the new version will become the new default layout.
If you opt for No, the language bar list will end up containing both original and new layout under the same language, but switching between them becomes more complicated.
More on new layout’s attributes
The three attributes that need to be specified for a new layout in the “Save As” dialog are:
When Save As dialog is opened, these three attributes are filled with the initial values based on the original layout. “Language” attribute is inherited without change, while “Layout text” and “Layout file” are slightly modified to ensure their uniqueness.
For example, the first time you use Save As on the standard US English layout the initial values will look like this:
Note: if you plan to generate a stand-alone layout installer package for the saved layout, it is recommended that you choose a more descriptive layout file name - e.g. KbdEditUSChainedDeadKeyMultiaccent.dll instead of generic KbdEditUS.dll. The file name is used to establish layout's "identity" for the purpose of detecting and upgrading older versions - keeping the generic name can lead to file name collisions.
Let’s say you have saved a new layout using these default values. If you choose “Save As” again on the newly created layout, the initial values will now be different, reflecting the fact that the names “US #1” and “KbdEditUS.dll” are no longer available:
The same auto-filling algorithm is used when attributes are “borrowed” from another layout from the “Base on layout” list.
Back to Administration and Deployment
Copyright © KbdSoft 2007-2017