2016-11-03 21:44 GMT+01:00 Doug Ewell <[email protected]>: > I think we are talking about two different issues here. It's important > to keep these separate, to avoid talking past each other. > > Mats Blakstad wrote: > > > After managing to add the keyboard to XKB I started on a new venture > > of trying to make a windows version of the keyboard using this: > > > > [link to Microsoft Keyboard Layout Creator] > > > > It is nearly impossible to replicate as it seems like you can only add > > dead keys if they have a precomposed character. > > Mats is talking about the fact that a dead key combination (of any > length) under Windows can generate only a single UTF-16 code unit. > > That's wrong. Windows can perfectly generate multiple code units (in fact it does it for non BMP characters, including in MSKLC!) from its KLC tables using the default system driver.
Only the GUI editor MSKLC cannot use this possibility and it does not understand chained tables (note: you can perfectly assign another table index instead of a character to the combination of a dead key state and another dead key, so that you can type another key which will be mapped in the combined state; the combined state can then accept the space bar to force the output of the NFC form for SPACE+diacritic1+diacritic2, which should be, if possible, a spacing-diacritic1 followed by a combining-diacritic2, or the reverse if both diacritics have a non-zero combining class but the second one has a lower combining clas than the second one). In summary MSKLC is unable to edit **visually** the combined state prodiced by typing two dead keys. But the .klc file is compilable and works. It is trivial to make such transform to generate the C source of the tables and compile it to a driver, you should not need to know C/C++ to do that, and the .klc source contianined the chained keys should be enough.

