ISO_Level3_Shift vs Mode_switch (was: Howto handle modified keys)
Edgar Toernig
froese at gmx.de
Fri Oct 20 09:50:46 PDT 2006
> The mapping between keys and keysyms and the mapping between
> keysyms and modifier bits are both dependent upon configuration.
This reminds me of a problem recently discussed on the icewm
mailing list. There was a request to support AltGr in icewm.
Usually, AltGr is mapped to Mode_switch and the patch was looking
for a key with that symbol. But it seems that nowadays some
keymaps put the symbol ISO_Level3_Shift on that key. There
was even one report where a key-press gives Mode_switch and
the corresponding key-release gives ISO_Level3_Shift[1].
What's the point of this (new?) symbol? Wasn't Mode_switch
good enough? Afaics, the other "shifting" keys (i.e. for kana)
were deliberately set to the same symbol value as Mode_switch.
But this Level3_Shift is special. This gives a couple of
problems as apps are not prepared to look for this symbol.
Couldn't the keymaps be changed back to use Mode_switch instead
of ISO_Level3_Shift?
Ciao, ET.
[1] This keyboard setting
| Section "InputDevice"
| Identifier "Generic Keyboard"
| Driver "keyboard"
| Option "CoreKeyboard"
| Option "XkbRules" "xfree86"
| Option "XkbLayout" "us,cz_qwerty"
| Option "XkbOptions" "grp:shift_toggle,grp:switch"
| EndSection
produces these two events when pressing and releasing AltGr:
| KeyPress event, serial 28, synthetic NO, window 0x3e00001,
| root 0x40, subw 0x0, time 46382521, (-82,-55), root:(654,531),
| state 0x0, keycode 113 (keysym 0xff7e, Mode_switch), same_screen YES,
| XLookupString gives 0 bytes: ""
|
| KeyRelease event, serial 28, synthetic NO, window 0x3e00001,
| root 0x40, subw 0x0, time 46382635, (-82,-55), root:(654,531),
| state 0x2000, keycode 113 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
| XLookupString gives 0 bytes: ""
If you ask me, this looks broken ...
More information about the xorg
mailing list