Dear all, I would like to use modifiers keys (such as Control_L or Shift_R) as dead keys in compose sequences.
Currently, only non-modifiers can be part of a compose sequence, and they are matched against the defined compose sequences at the time the key is pressed. I want to extend this to modifier keys, but in contrast to non-modifiers, they should be matched to the defined compose sequences when the key is released, and only when no other key has been pressed since the modifier had been pressed. When a compose sequence is ongoing, but a non-matched non-modifier key is pressed, the compose sequence is aborted. In contrast, for backward compatibility, releasing a non-matched modifier during an ongoing compose sequence should have no effect, rather than aborting the compose sequence. >From the user's point of view, compose would work as before, as long as no compose sequences with modifiers are defined. As non-modifiers only trigger on key press, and modifiers only on key release, no additional syntax is required in the Compose file to distinguish the two cases. For example, <Control_L> : ssharp <Shift_R> <o> : odiaeresis would allow to enter an ß with the left control key, and an ö by a sequence of right shift key and o. Why is this useful? The number of keys in convenient reach for touch typing is limited. The proposal would allow to make double use of modifier keys, some of which have a fairly good position on the keyboard (in particular, the Control key to the left of A on Unix-style keyboards). So, the motivation is typing efficiency. For demonstration, I attach a modified version of ximcp/imLcFlt.c which seems to do the trick. The code abuses storage for the Thai input method; this might not be acceptable for production code, but avoids changing data structure sizes, making the experiment simpler for me. Regards, Andreas
imLcFlt.c
Description: Binary data
_______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
