Reproducibility: Always, but only on my Lenovo Thinkpad T61. On my Samsung X20, the problem does not exist. Both machines are running the same software (openSUSE 10.3, xorg-x11-7.2-135.4) which leads me to believe that the hardware may have something to do with this. Steps to reproduce: 1. Use a GUI or use setxkbmap to select any keyboard layout which uses AltGr+Shift key combinations to produce certain glyphs. For example: setxkbmap -model pc104 -layout us -variant intl Note that the us intl includes the following: key <AE01> { [ 1, exclam, exclamdown, onesuperior ] }; 2. Press some key AltGr+Shift key combination. For example, AltGr+Shift+1. Expected behaviour: 3. The appropriate character should appear. In the case of AltGr+Shift+1, the character ¹ (onesuperior) should appear. Observed behaviour: 3. The unshifted variant appears. In the case of AltGr+Shift+1, the inverted exclamation mark ¡ (exclamdown) appears. This problem occurs in every program and with every keyboard layout I've tested. Please help me further diagnose the problem as this is a fairly severe bug for those of us who need to use international keyboard layouts.
In case it's of any use, here's the relevant output of xev when I try AltGr+Shift+1 using the us intl keyboard on my Thinkpad T61: KeyPress event, serial 31, synthetic NO, window 0x5400001, root 0x13a, subw 0x0, time 3949330330, (-253,478), root:(1079,505), state 0x0, keycode 113 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 31, synthetic NO, window 0x5400001, root 0x13a, subw 0x0, time 3949331390, (-253,478), root:(1079,505), state 0x80, keycode 50 (keysym 0x0, NoSymbol), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 31, synthetic NO, window 0x5400001, root 0x13a, subw 0x0, time 3949333393, (-253,478), root:(1079,505), state 0x80, keycode 10 (keysym 0xa1, exclamdown), same_screen YES, XLookupString gives 2 bytes: (c2 a1) "¡" XmbLookupString gives 2 bytes: (c2 a1) "¡" XFilterEvent returns: False KeyRelease event, serial 31, synthetic NO, window 0x5400001, root 0x13a, subw 0x0, time 3949333496, (-253,478), root:(1079,505), state 0x80, keycode 10 (keysym 0xa1, exclamdown), same_screen YES, XLookupString gives 2 bytes: (c2 a1) "¡" XFilterEvent returns: False EnterNotify event, serial 31, synthetic NO, window 0x5400001, root 0x13a, subw 0x0, time 3949338159, (96,176), root:(1428,203), mode NotifyNormal, detail NotifyNonlinear, same_screen YES, focus YES, state 128 And here's the same on my Samsung X20: KeyPress event, serial 31, synthetic NO, window 0x4200001, root 0x5c, subw 0x0, time 3949427634, (-1000,644), root:(218,668), state 0x2000, keycode 113 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES, XKeysymToKeycode returns keycode: 124 XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 31, synthetic NO, window 0x4200001, root 0x5c, subw 0x0, time 3949428699, (-1000,644), root:(218,668), state 0x2080, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 31, synthetic NO, window 0x4200001, root 0x5c, subw 0x0, time 3949429349, (-1000,644), root:(218,668), state 0x2081, keycode 10 (keysym 0xb9, onesuperior), same_screen YES, XLookupString gives 2 bytes: (c2 b9) "¹" XmbLookupString gives 2 bytes: (c2 b9) "¹" XFilterEvent returns: False KeyRelease event, serial 31, synthetic NO, window 0x4200001, root 0x5c, subw 0x0, time 3949429472, (-1000,644), root:(218,668), state 0x2081, keycode 10 (keysym 0xb9, onesuperior), same_screen YES, XLookupString gives 2 bytes: (c2 b9) "¹" XFilterEvent returns: False
Just tried on my machine: 1!¡¹ $ xprop -root | grep XKB _XKB_RULES_NAMES(STRING) = "xorg", "hpi6", "us", "intl", "" What version of xkeyboard-config are you using? Would you try the latest one?
On my functioning Samsung X20: $ xprop -root | grep XKB _XKB_RULES_NAMES(STRING) = "xfree86", "pc104", "us,us", ",dvorak-intl", "ctrl:nocaps,altwin:menu,ctrl:nocaps,altwin:menu,ctrl:nocaps,altwin:menu,ctrl:nocaps,altwin:menu,ctrl:nocaps,altwin:menu,ctrl:nocaps,altwin:menu,ctrl:nocaps,altwin:menu" On the buggy Thinkpad T61: $ xprop -root | grep XKB _XKB_RULES_NAMES(STRING) = "xfree86", "pc104", "us", "intl", "grp:alt_shift_toggle" Is that "grp:alt_shift_toggle" relevant? To answer your other question, both machines are running xkeyboard-config-1.0-29 from the SuSE RPMs. I suppose I could try compiling a newer version from source, but if that requires me to update all of X along with it, then that's not feasible for me.
OK, I just installed xkeyboard-config 1.2 from the source tarball, and now all the keys are working properly. Whatever is causing this bug must have been fixed between version 1.0 and 1.2.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.