xkbcomp on a specific device
Vincent Bernat
bernat at luffy.cx
Tue Jun 10 14:12:27 PDT 2014
Hi!
I am trying to use xkbcomp to configure a specific
keyboard. Unfortunately, I can only configure the core
keyboard. Configuring my specific keyboard has no effect.
ii xserver-xorg-core 2:1.15.1-1 amd64 Xorg X server - core server
ii libxkbfile1:amd64 1:1.0.8-1 amd64 X11 keyboard file manipulation library
ii x11-xkb-utils 7.7+1 amd64 X11 XKB utilities
ii xkb-data 2.12-1 all X Keyboard Extension (XKB) configuration data
#+begin_example
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+fr:2+inet(evdev)+compose(ralt)+ctrl(nocaps)+group(rctrl_rshift_toggle)+vbe(x1)" };
xkb_geometry { include "pc(pc105)" };
};
#+end_example
In `symbols/vbe`:
#+begin_example
partial
xkb_symbols "x1" {
key <HOME> { [ Control_L, Control_L ] };
key <END> { [ Control_L, Control_L ] };
modifier_map Control { Control_L, <HOME>, <END> };
key <TLDE> { [ Insert, Insert ] };
key <ESC> { [ grave, asciitilde, dead_grave, dead_tilde ] };
};
#+end_example
#+begin_example
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=9 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=13 [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)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=14 [slave keyboard (3)]
↳ ACPI Virtual Keyboard Device id=15 [slave keyboard (3)]
#+end_example
Doesn't work:
#+begin_example
xkbcomp -i 11 -I$PWD x1.xkb :0
#+end_example
Works:
#+begin_example
xkbcomp -i 3 -I$PWD x1.xkb :0
#+end_example
Works:
#+begin_example
xkbcomp -I$PWD x1.xkb :0
#+end_example
Also, if I do:
#+begin_example
xkbcomp -i 11 -I$PWD x1.xkb :0
diff -u <(xkbcomp -i 11 -I$PWD :0 -) <(xkbcomp-I$PWD :0 -)
#+end_example
I get (excerpt):
#+begin_example
- key <CAPS> { [ Control_L, Control_L ] };
+ key <CAPS> { [ Caps_Lock ] };
- key <ESC> {
- type= "FOUR_LEVEL",
- symbols[Group1]= [ grave, asciitilde, dead_grave, dead_tilde ]
- };
+ key <TLDE> { [ grave, asciitilde ] };
#+end_example
So, it seems the change is registered in the Xserver. But it has no
effect.
Any idea? Thanks!
--
#ifdef STUPIDLY_TRUST_BROKEN_PCMD_ENA_BIT
2.4.0-test2 /usr/src/linux/drivers/ide/cmd640.c
More information about the xorg
mailing list