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

Up ] Dead Character List ] Dead character properties ] Import dead char table from layout ] Import dead char table from KLD file ] Export dead char table to KLD file ] [ Chained dead keys ]

Chained Dead Keys

Dead character editing available only in Premium and Personal editions.

When creating complex dead key tables, sooner or later one runs into a problem: having too many dead keys makes them impractical to use. To make dead keys available to the user, the "traditional" approach requires that each dead key is mapped to a unique virtual key / modifier position in the High-level editor. This causes various difficulties:

  • Dead keys compete with normal mappings for limited number of mappable virtual keys / modifier positions. The more complex the dead key table, the less positions remain for normal mappings.
  • Memorizing positions of all dead key becomes difficult..
  • Dead characters producing complex multiple accents (eg "Circumflex and Tilde" converting plain a to ) are naturally "cumulative". Since Unicode does not define single-character equivalents of combinations like ^~ , an arbitrary character must be chosen for the dead key, like digit 8 in the screenshot below. Producing complex accents using a single dead key is therefore counter-intuitive, difficult to memorize, and aggravates the "dead key mapping inflation" problem.

Fortunately, KbdEdit offers a simple and elegant solution to the above problems: dead key chaining. This method offers good compromise between supporting extremely complex dead key tables, and minimizing the number of keyboard positions that have to be "sacrificed" for dead key functions.

Using chained dead keys, the "Circumflex and Tilde" dead key can be produced by pressing the "Circumflex" and "Tilde" dead keys in sequence. Even though more key presses are involved, this method is much more intuitive and easier to memorize.

For an example of chained dead keys in practice, you can check examples US English keyboard with all Latin accents (chained dead keys) and Emulating Compose key using chained dead keys.

In the dead key editor, chained dead keys are defined through the "Chained dead char" radio button. When it is active, the "Into" character can be chosen from the drop-down list of existing dead characters:

KbdEdit choosing a chained dead key

The "Transforms" character triggers the chained transformation. It can be chosen arbitrarily - there is no requirement for it to be same as the chained dead character it produces. To make the chained sequence easier to memorize, you will probably want to choose a character that, when combined with the current dead char, visually resembles the chained dead char. E.g. for a transformation from "Circumflex" (^) to "Circumflex and Tilde", the most logical  "Transforms" character is the Tilde (~).

Note that complex dead keys produced by chaining still must be represented by a non-intuitive arbitrary character like 8. The good news is that, once the dead table is defined, you can safely forget which character it is - it merely serves as an "invisible" placeholder without a high-level dead key mapping.

A chained dead key table can be thought of as a tree-like structure, with dead characters as nodes and chained dead transformations as connecting lines, as shown on the diagram below. Only the root-level nodes (shown in yellow) need to be mapped to VK/modifier positions. The non-root nodes are accessible through chaining sequences and thus don't need to be explicitly mapped.

KbdEdit tree of chained dead characters

Since dead key editor shows dead keys only as a "flat" list, visualizing such a tree can be difficult. To facilitate moving up and down the chain you are offered few aids:

If the current dead key can be produced by chaining, you can navigate to any of its "parents" through the Current dead char field's right-click popup menu.

You can navigate in the opposite direction through the Into field's right-click popup.

Copyright © KbdSoft 2007-2023