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