Bug reported by Vincent Lefevre on the Debian BTS about a month ago. Applies to xf86-input-keyboard 1.2.1. Vincent had Option "XkbDisable" "true" and xmodmap set to keycode 67 = eacute Eacute so that when he hits the F1 key, he gets the character 'é', while Shift-F1 gives 'É'. Since xf86-input-keyboard 1.2.1 entered Debian, lots of people had to switch from the old "keyboard" driver to the new "kbd". But now Shift-F1 gives 'é' instead of 'É'. So it looks like kbd and keyboard do not handle this config the same way. And according to Vincent, "kbd" already behaved (wrongly?) like this for a long time (for instance in 1.1.0). Brice
Any news? Or is there any workaround?
Confirming this with the latest from Ubuntu 10.10. Using xev says that Ctrl+Alt+F1 results in the character the reporter is looking for. I can't find any other app that sees Ctrl+Alt+F1 as Eacute instead of eacute. I tried variations of Eacute, in case the capitalization was wrong. It's not.
Here Shift-F1 gives 'é', but Alt-Shift-F1 gives 'É'.
A workaround is to use xkb only (instead of xmodmap): one can change the type of the function keys to e.g. type "CUSTFNKEY" { modifiers = Shift+Lock+Control+Alt; map[Shift] = Level2; map[Lock] = Level2; map[Control] = Level3; map[Control+Alt] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; level_name[Level3] = "Level3"; level_name[Level4] = "Ctrl+Alt"; }; I can see two solutions if xmodmap is not declared as deprecated: 1. xmodmap should change the type of the key when necessary. 2. The default xkb settings for the function keys could be similar to the above one, i.e. allowing Shift as a modifier, in addition to Ctrl+Alt. It should probably even be more complex to allow ISO_Level3_Shift (a.k.a. Mode_switch). So, this would still allow one to use xmodmap a usual: keycode NUMBER = KEYSYMNAME ... The list of keysyms is assigned to the indicated keycode (which may be specified in decimal, hex or octal and can be determined by running the xev program). Up to eight keysyms may be attached to a key, however the last four are not used in any major X server implementation. The first keysym is used when no modifier key is pressed in conjunction with this key, the second with Shift, the third when the Mode_switch key is used with this key and the fourth when both the Mode_switch and Shift keys are used. (from the xmodmap(1) man page), and Ctrl+Alt would still work.
Hi, On Tue, May 31, 2011 at 05:16:57AM -0700, bugzilla-daemon@freedesktop.org wrote: > A workaround is to use xkb only (instead of xmodmap): one can change the type > of the function keys to e.g. > > type "CUSTFNKEY" { > modifiers = Shift+Lock+Control+Alt; > map[Shift] = Level2; > map[Lock] = Level2; > map[Control] = Level3; > map[Control+Alt] = Level4; > level_name[Level1] = "Base"; > level_name[Level2] = "Caps"; > level_name[Level3] = "Level3"; > level_name[Level4] = "Ctrl+Alt"; > }; This is true, but would be an xkeyboard-config change. > I can see two solutions if xmodmap is not declared as deprecated: It's not deprecated per se, but isn't half as expressive as XKB. In addition, we're somewhat limited by the spec; section 12 describes the interaction between core and XKB requests. Re-reading it now, I think we might have just enough wiggle room to do this sort of thing, but that might require the keys to be configured with explicit groups. > 1. xmodmap should change the type of the key when necessary. That still wouldn't help people using XChangeKeyboardMapping, and . > 2. The default xkb settings for the function keys could be similar to the above > one, i.e. allowing Shift as a modifier, in addition to Ctrl+Alt. It should > probably even be more complex to allow ISO_Level3_Shift (a.k.a. Mode_switch). > So, this would still allow one to use xmodmap a usual: > > keycode NUMBER = KEYSYMNAME ... > The list of keysyms is assigned to the indicated keycode (which > may be specified in decimal, hex or octal and can be determined > by running the xev program). Up to eight keysyms may be > attached to a key, however the last four are not used in any > major X server implementation. The first keysym is used when > no modifier key is pressed in conjunction with this key, the > second with Shift, the third when the Mode_switch key is used > with this key and the fourth when both the Mode_switch and > Shift keys are used. > > (from the xmodmap(1) man page), and Ctrl+Alt would still work. Right - you'd have to file a bug on xkeyboard-config for this.
I'm reassigning this one to xkeyboard-config as a request for the Fn keys to have a more complex type that supports multiple symbols, rather than one symbol and an action with Ctrl+Alt.
I see no problem adding that new type. But it should be used somehow. Would we provide xkb option or smth?
On Tue, May 31, 2011 at 11:58:16AM -0700, bugzilla-daemon@freedesktop.org wrote: > I see no problem adding that new type. But it should be used somehow. Would we > provide xkb option or smth? You tell me. :) I guess, to make it as unintrusive WRT current configurations as possible, you could have shift map to level 3, level 3 to level 4, and level 3 + shift map to level 5? It's not exactly intuitive though ...
> You tell me. :) I guess, to make it as unintrusive WRT current > configurations as possible, you could have shift map to level 3, level 3 > to level 4, and level 3 + shift map to level 5? It's not exactly > intuitive though ... What if we add xkb option, that makes functional keys "alphabetic"? That would use new section of symbols mappings, something like key <FK01> { type="FOUR_LEVEL", symbols[Group1] = [ F1, VoidSymbol, XF86_Switch_VT_1 ] }; etc
On Tue, May 31, 2011 at 01:28:06PM -0700, Sergey V. Udaltsov wrote: > What if we add xkb option, that makes functional keys "alphabetic"? That would > use new section of symbols mappings, something like > > key <FK01> { > type="FOUR_LEVEL", > symbols[Group1] = [ F1, VoidSymbol, XF86_Switch_VT_1 ] > }; > > etc Or make the CTRL+ALT type basically be FOUR_LEVEL but with Ctrl+Alt mapping to level five, so you'd have: [ F1, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_1 ] ?
(In reply to comment #10) > Or make the CTRL+ALT type basically be FOUR_LEVEL but with Ctrl+Alt > mapping to level five, so you'd have: > [ F1, VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_1 ] > ? 23:05 < svu> daniels, I guess you put extra VoidSymbol in that bug about F-keys, right? 23:05 < daniels> svu: ha, yes 23:06 < svu> :) 23:06 * svu always knew X.org developers could not count to 4 (It's true.)
It is committed. Please check in git. But I could not add new type - I had to amend the existing one. The bug https://bugs.freedesktop.org/show_bug.cgi?id=27988 still kills my X when I try to add one more type.
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.