In the currently designed "sixlevel" type (one at http://www.kvota.net/srpski/1.5/sixlevel), where <LCTL> is modifier_map-ed to Mod4, it works as expected (it does select level five) in GTK+ 2.x apps and in Xterm. But, Emacs 21.3.50.2 (it's same with the "old" Emacs 21.2.1) shows with describe-key that it reads it as if C-s-x (CTRL+S+X, not CTRL+Shift+X) is pressed when I press only C-x. KDE apps (KWrite) don't work at all.
This is xev output when cyrillic group is active:
KeyPress event, serial 25, synthetic NO, window 0x3200001, root 0x40, subw 0x0, time 12562633, (400,268), root:(403,344), state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES, XLookupString gives 0 bytes: ""
KeyPress event, serial 25, synthetic NO, window 0x3200001, root 0x40, subw 0x0, time 12563178, (400,268), root:(403,344), state 0x44, keycode 40 (keysym 0x64, d), same_screen YES, XLookupString gives 1 bytes: ""
KeyRelease event, serial 25, synthetic NO, window 0x3200001, root 0x40, subw 0x0, time 12563313, (400,268), root:(403,344), state 0x44, keycode 40 (keysym 0x64, d), same_screen YES, XLookupString gives 1 bytes: ""
KeyRelease event, serial 25, synthetic NO, window 0x3200001, root 0x40, subw 0x0, time 12563626, (400,268), root:(403,344), state 0x44, keycode 37 (keysym 0xffe3, Control_L), same_screen YES, XLookupString gives 0 bytes: ""
If en_US group (third) is active, it's same except for the time, and state which is 0x4044.
If I change the "Mod4" to "Control" in "sixlevel", and remove "modifier_map Mod4", then I experience even more problems, but only in GTK+ 2.x apps, Emacs and Xterm. xev shows the following when cyrillic group is active:
KeyPress event, serial 25, synthetic NO, window 0x3400001, root 0x40, subw 0x0, time 14236822, (644,657), root:(650,759), state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES, XLookupString gives 0 bytes: ""
KeyPress event, serial 25, synthetic NO, window 0x3400001, root 0x40, subw 0x0, time 14237996, (644,657), root:(650,759), state 0x4, keycode 40 (keysym 0x64, d), same_screen YES, XLookupString gives 1 bytes: "d"
KeyRelease event, serial 25, synthetic NO, window 0x3400001, root 0x40, subw 0x0, time 14238127, (644,657), root:(650,759), state 0x4, keycode 40 (keysym 0x64, d), same_screen YES, XLookupString gives 1 bytes: "d"
KeyRelease event, serial 25, synthetic NO, window 0x3400001, root 0x40, subw 0x0, time 14239154, (644,657), root:(650,759), state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES, XLookupString gives 0 bytes: ""
The main difference I see is that with Mod4 state is 0x44, and with Control is 0x4. Also, XLookupString returns 1 byte with Control, where none is returned with Mod4.
This is how programs act with Control as level five modifier:
- GTK+ 2 (gedit, Galeon,... ) simply pressing a key acts as if Control+key is pressed (so, typing a cyrillic "a" tends to select my entire text, instead of outputing "а").
- pressing a Control+H while cyrillic is active only acts as if Control is a simple LevelFive modifier (it's not set in modifiers), so latin "h" (that's what is on level 5 for that keycode) is output. preserve[Control]=Control doesn't help.
It seems to me that appropriate would be to have state 0x44 and XLookupString to receive "d" when CTRL+D is pressed. How can I achieve that?
Maybe I need to modify "interpret" sequences in "compat"?
The symbols file in question is at http://www.kvota.net/srpski/1.5/sr and it is a Serbian keymap containing several layout, but maily, six-level cyrillic (1. cyrillic lowercase, 2. cyrillic capitals, 3. extra symbols, 4. extra symbols, 5. english lowercase, and 6. english uppercase), and six-level latin (1. latin-serbian lowercase, 2. latin-serbian capitals, 3-6 same as cyrillic).
And, another suggestion. Now that we have "multilayout" for groups, is there a chance to get "merging" for levels? Before, we could use
<AE10> { [ ], [ ], [ a, A ] }
to specify that only group3 is overriden, but now we might want
<AE10> { [ , , , , a, A ] }
to specify that only levels 5 and 6 are to be overriden.
Thanks in advance, and best regards, Danilo
_______________________________________________ I18n mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/i18n
