Individual keyboard remapping (again)

Peter Hutterer peter.hutterer at who-t.net
Thu Oct 28 14:28:50 PDT 2010


On Thu, Oct 28, 2010 at 04:35:49PM +0200, Florian Echtler wrote:
> Hello again,
> 
> On Wed, 2010-10-20 at 21:06 +0200, Julien Cristau wrote:
> > On Wed, Oct 20, 2010 at 20:25:51 +0200, Florian Echtler wrote:
> > 
> > > $ setxkbmap -device 9 -print
> > > xkb_keymap {
> > > 	xkb_keycodes  { include "evdev+aliases(qwertz)"	};
> > > 	xkb_types     { include "complete"	};
> > > 	xkb_compat    { include "complete"	};
> > > 	xkb_symbols   { include "pc+de+inet(evdev)"	};
> > > 	xkb_geometry  { include "pc(pc105)"	};
> > > };
> > > $ setxkbmap -device 8 -print
> > > xkb_keymap {
> > > 	xkb_keycodes  { include "evdev+aliases(qwertz)"	};
> > > 	xkb_types     { include "complete"	};
> > > 	xkb_compat    { include "complete"	};
> > > 	xkb_symbols   { include "pc+de+inet(evdev)"	};
> > > 	xkb_geometry  { include "pc(pc105)"	};
> > > };
> > > 
> > > AFAICT, the output should be different? What am I doing wrong?
> > > 
> > setxkbmap -print is probably not what you want.  It uses the
> > _XKB_RULES_NAMES root window property to figure out the
> > rules/model/layout/variant/options, not the actually set keymap.  That
> > property is not multi-device aware.  Use 'xkbcomp -i <device> :0 -'
> > instead.
> 
> it took me a while to give this another try. Unfortunately, I'm still
> not getting the hang of it... I can _seemingly_ set two different
> keymaps with "xkbcomp -i <dev> mykeymap.xkb :0" and see the differences
> with "xkbcomp -i <dev> :0 -". However, the global effect is that all
> keyboards adhere to the _last_ keymap that was set, regardless of what
> xkbcomp says.
> 
> Here's the output of "xinput list":
> 
> ⎡ Virtual core pointer id=2 [master pointer  (3)]
> ⎜   ↳ Virtual core XTEST pointer id=4 [slave  pointer  (2)]
> ⎜   ↳ HID 04d9:1400 id=10 [slave  pointer  (2)]
> ⎜   ↳ X10 WTI RF receiver id=8 [slave  pointer  (2)]
> ⎣ Virtual core keyboard id=3 [master keyboard (2)]
>     ↳ Virtual core XTEST keyboard id=5 [slave  keyboard (3)]
>     ↳ Power Button id=6 [slave  keyboard (3)]
>     ↳ Power Button id=7 [slave  keyboard (3)]
>     ↳ HID 04d9:1400 id=9 [slave  keyboard (3)]
>     ↳ UVC Camera (046d:09a1) id=11 [slave  keyboard (3)]
> 
> The devices in question are those with ID 9 (USB keyboard) and ID 8 (X10
> remote). Could the problem be related to the fact that the X10 remote is
> classified as a slave pointer? Can this be changed?

yes, this could actually be the cause. there's plenty of special casing in
the server to avoid this but many of these are only found when a bug hits.
do you have another keyboard to try? would help to narrow down if that's
really the issue or something else causes a problem.


Cheers,
  Peter



More information about the xorg mailing list