Ubuntu – Identify the entries of xinput

documentationinput-devicesioperipheralsxinput

Some of the entries of xinput are strange

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SYNA7501:00 06CB:12B8 Pen                 id=11   [slave  pointer  (2)]
⎜   ↳ SYNA7501:00 06CB:12B8                     id=12   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=16   [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)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ HP Truevision HD                          id=10   [slave  keyboard (3)]
    ↳ Intel Virtual Button driver               id=13   [slave  keyboard (3)]
    ↳ Intel Virtual Button driver               id=14   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]
    ↳ HP WMI hotkeys                            id=17   [slave  keyboard (3)]
    ↳ HP Wireless hotkeys                       id=18   [slave  keyboard (3)]

things like Virtual core XTEST pointer or the two SYNA7501:00 06CB:12B8

Where can I find the documentation for these entries? Which one would be the touch screen for example?

…I tried the parameter list-props but it's not very helpful. In fact it outputs things that I also want to find documentation for.

For example; xinput list-props 11:

Device 'SYNA7501:00 06CB:12B8 Pen':
    Device Enabled (137):   1
    Coordinate Transformation Matrix (139): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (263): 0
    Device Accel Constant Deceleration (264):   1.000000
    Device Accel Adaptive Deceleration (265):   1.000000
    Device Accel Velocity Scaling (266):    10.000000
    Device Product ID (255):    1739, 4792
    Device Node (256):  "/dev/input/event12"
    Evdev Axis Inversion (267): 0, 0
    Evdev Axis Calibration (268):   <no items>
    Evdev Axes Swap (269):  0
    Axis Labels (270):  "Abs X" (260), "Abs Y" (261), "Abs Pressure" (262)
    Button Labels (271):    "Button 0" (259), "Button Unknown" (258), "Button Unknown" (258), "Button Wheel Up" (143), "Button Wheel Down" (144)
    Evdev Scrolling Distance (272): 0, 0, 0
    Evdev Middle Button Emulation (273):    0
    Evdev Middle Button Timeout (274):  50
    Evdev Third Button Emulation (275): 0
    Evdev Third Button Emulation Timeout (276): 1000
    Evdev Third Button Emulation Button (277):  3
    Evdev Third Button Emulation Threshold (278):   20
    Evdev Wheel Emulation (279):    0
    Evdev Wheel Emulation Axes (280):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (281):    10
    Evdev Wheel Emulation Timeout (282):    200
    Evdev Wheel Emulation Button (283): 4
    Evdev Drag Lock Buttons (284):  0

I want to be able to control those parameters.

model for these outputs is "HP ENVY x360 – 15-w107ne"

Best Answer

SYNA7501:00 06CB:12B8 , along with the Pen layer, is your touchscreen.

From https://www.x.org/wiki/XOrgInputDriverSpec/#index3h2:

Virtual core devices are always available, but produce no independent events. All events come from extension devices. This is an excellent fit to a server that supports multiple core devices and device hot-plugging. With the recent integration of MPX, multiple virtual core devices may exist. They are also referred to as master devices.

Essentially, the Virtual Core Pointer/Keyboard can be delegated by software and hardware to perform certain tasks, like capturing your mouse, or enabling multiple mouse cursors.

As for changing the parameters, use this command:

xinput set-prop <device-id> <param-id> <values>

Note that values depend on the parameter. For example, flipping the the X-axis/Y-axis would need two values- 0 0 results in no inversion, 0 1 results in Y-axis inversion- the first value for the X-axis, and the second value for the Y-axis.

Edit, Documentation:

Evdev Man Page: ftp://www.x.org/pub/X11R7.5/doc/man/man4/evdev.4.html