Chained Dead Keys
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:
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:
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.
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:
Copyright © KbdSoft 2007-2023