Bug 8584

Summary: Cannot use extra ThinkPad keys as Alt_R
Product: xkeyboard-config Reporter: Marius Gedminas <marius>
Component: GeneralAssignee: xkb
Status: RESOLVED DUPLICATE QA Contact:
Severity: normal    
Priority: high CC: octalfdo
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: full xkb mapping

Description Marius Gedminas 2006-10-10 04:20:28 UTC
My Thinkpad has two extra keys next to the arrow keys.  They send keycodes 234
and 233.  I have mapped one of them to Multi_key, and this works fine.  I have
tried to map the other one to Alt_R with this xmodmap command:

  xmodmap -e 'keycode 234 = Alt_R Alt_R' -e 'clear mod1' -e 'add mod1 = Alt_L Alt_R'

It used to work with Xorg 6.8, but doesn't work with 7.0 and 7.1.  By "doesn't
work" I mean this: xev shows a bunch of repeating KeyPress/KeyRelease events for
keycode 234 (keysym 0xffea, Alt_R) while I hold down the key, but state remains 0x0.

xmodmap shows

  mod1        Alt_L (0x40),  Alt_L (0x7d),  Alt_R (0xea)

Any attempts to disable autorepeat for this key with 'xset -r 234' do not
disable autorepeat.

Attempts to craft an XKB config file for this mapping failed in the same way. 
The attempts are documented in more detail here:
http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2006-April/033573.html
Comment 1 Sergey V. Udaltsov 2006-10-10 14:16:36 UTC
Well, first of all, I do not think you really need xmodmap here - xkb should do.
Also, could you please attach full xkb mapping (using xkbcomp :0 -xkb zz.xkb or
smth) when you use

default partial modifier_keys
  xkb_symbols "mgthinkpad" {
      key <I6A>  { [ Alt_R ] };
      modifier_map Mod1 { Alt_R };
  };

BTW, just to confirm, are you using xkeyboard-config - or xkbdata from xorg?
Comment 2 Marius Gedminas 2006-10-14 12:40:14 UTC
Uh, I'm not sure what exactly I use -- whatever Ubuntu Edgy ships by default.  I
seem to have both xkeyboard-config and xkbdata packages installed.  Hmm, the
first one says it's just a transitional package that is not needed and can be
safely removed.  Perhaps I filed the bug in the wrong place?

I suspect it might be an X server bug, because
  1) it used to work in 6.8
  2) if I replace 243 with 49, my xmodmap command works fine and Tilde becomes
an Alt key.

(I used xmodmap because it is easier to add one line into ~/.gnomerc than to
install a new file in /etc/X11/xkb and then teach either X or GNOME to use it.)
Comment 3 Marius Gedminas 2006-10-14 12:45:45 UTC
Created attachment 7417 [details]
full xkb mapping

This is the mapping that I get after I do

  setxkbmap -symbols
'pc(pc105)+lt(us)+lt(std):2+group(shifts_toggle)+level3(ralt_switch)+mgthinkpad(mgthinkpad)'

  xkbcomp :0 -xkb full.xkb
Comment 4 Sergey V. Udaltsov 2006-10-18 13:12:28 UTC
Interesting enough. I do not see any difference between LALT and I6A - they look
quite simmetrical...
Comment 5 Octavio Alvarez 2007-01-02 17:14:22 UTC
I have a problem in a(In reply to comment #0)
>
> Any attempts to disable autorepeat for this key with 'xset -r 234' do not
> disable autorepeat.
>

On Ubuntu Dapper (Xserver 1.0.2), xev throws me "KeyPress + KeyRelease + 
autorepeatdelay" instead of "KeyPress + delay + KeyRelease". Applications can't 
detect that key as being held down when it actually is.

However, under ArchLinux 0.7.2 (Xserver 1.1.1) it works ok. I'll try some 
upgrading.
Comment 6 Marius Gedminas 2007-09-12 04:23:09 UTC
This appears to be a bug in the server's XKB code.  Marking as duplicate.

*** This bug has been marked as a duplicate of bug 12401 ***

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.