Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!


Click here to return to the 'Create custom keyboard layouts in 10.2' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Create custom keyboard layouts in 10.2
Authored by: mundie1010 on Feb 02, '04 10:53:48PM
As I said before, I love the XML key layout mechanism. Today I heard from a friend who encountered three bugs in the XML key layout processor, and felt I should pass the information along:

I tried writing XML keylayout files for Arabic, Georgian and Deseret alphabet. After hitting my head against the wall, and rewriting things 15 different ways, without success, I finally got in touch with the right font/Unicode people at Apple.

My three keylayout files were valid but uncovered three bugs. It seems that I was trying to do things that were quite legal, and anticipated in a general way, but never tested.

First, the XML keylayout spec allows you to group named elements inside an element, OR you can put anonymous elements inside entries. Well, there was a bug in the handling of anonymous actions. Workaround: revert to named actions in an actions element.

Second, elements have an attribute named "maxout", which is optional. I had set it at "1", indicating a maximum output of 1 Unicode character at a time. However (second bug) when using dead-key sequences you have to specify maxout="2", even if only one character gets output at a time. And if you are outputting characters from the surrogate space, it needs to be maxout="2" again. Workaround: just don't specify the maxout attribute. It's optional, and even specifying it "correctly" can cause trouble.

Third, I learn that there's a long-standing bug in Cocoa that chokes on dead-key sequences that output surrogate characters. So my Deseret input method didn't work either. No workaround for this one.

Apparently these bugs will be fixed in a future release.

[ Reply to This | # ]