Windows keyboard layouts generate UTF16 encoded Unicode characters. This standard uses 16 bits per character, which is enough for 65536 distinct characters ("code points"). If keyboard layouts are to be edited with any degree of comfort, it is absolutely necessary to have a way to quickly locate a desired code point without knowing its numeric Unicode value in advance. A possibility to narrow down the selection in a meaningful way - e.g. by displaying only code points belonging to one specific alphabet - is also crucial.
In KbdEdit, these needs are fulfilled by the Unicode palette. It appears at the bottom of all views where a choice of Unicode character is needed. In the current version there are three such views: High Level editor, Dead char editor and Ligature editor dialog.
The palette consists of several zones / functional units:
Most of the area is taken by the table of Unicode code points, displaying 32 or 16 characters per row. The table contains all code points that are part of the currently active subrange (if no subrange is defined, all code points supported by the current Unicode version are displayed). A vertical scroll bar appears on the right edge of the table if the characters are numerous enough that scrolling is necessary.
The table has one current code point, which is drawn as inverted (white text on black background). The current code point can be chosen using mouse - clicking anywhere on the table activates the clicked-on character - or by keyboard navigation. The table window, while it has the keyboard input focus, reacts to standard navigation keys: cursors, Home, End, PgUp/PgDn etc.
Detailed information on the current code point is shown in the information area below the table. Each Unicode code point has a full name, which is displayed here, together with the name of the Unicode subset it belongs to. For instance, for Cyrillic letter Ж (U0416) the information would look something like:
Code points that appear in the current layout are drawn with a white background, which makes them stand out visually from the gray background of unmapped code points.
The "nature" of the mapping is further indicated by one or more visual markers. For example, if the code point appears in a "normal" mapping, a small gray rectangle is drawn in the upper-left corner. Mapping markers are explained in detail in Unicode palette color coding.
Right-clicking on a mapped code point brings up a context-sensitive pop-up menu, which provides detailed descriptions of all mappings it appears in. The menu also provides handy navigation shortcuts: clicking on any item will instantly select the corresponding mapping in KbdEdit GUI, whether it is a Normal mapping, part of a Ligature, dead char definition, or part of a dead-char transformation (note that this may involve switching between High Level and Dead Char editor).
For example, the screen shot below shows that code point É (00c9, Capital E with Acute) can be produced either directly, by pressing the zero (0) key while Caps Lock is on, or by applying dead char ' (00B4, ČáRKA) to letter E :
If the code point is a dead char, popup menu will contain shortcuts to dead key definition, as well as all key combinations it is mapped to:
Lastly, if the code point is transformed by a dead char, the menu will contain a list of all dead char transformations it is affected by:
The palette supports copying of the current unicode codepoint to the clipboard, from where it can pasted anywhere inside KbdEdit, or any other application.
As indicated in the screenshots above, the "Copy" operation is accessible via the right-click popup.
When the palette has keyboard focus, the "Copy" function is also available through the main "Edit" menu, the main toolbar, and the Ctrl+C keyboard shortcut.
Unicode palette and drag-drop
A very useful feature of the Unicode palette is that it is drag-drop sensitive: code points it displays can serve as a drag-drop source. A character can be dragged off the palette and dropped onto any KbdEdit's field which accepts Unicode characters (e.g. mappable keys in High Level view, or individual ligature characters in the Ligature editor).
The characters can be even dropped into another application, for example a text editor.
Copyright © KbdSoft 2007-2016