# [Solved] [Goodix Touchscreen] Libinput

## rem5

Hello,

I have a laptop (one mix 2 yoga) with a i2c goodix touchscreen witch work perfectly with ubuntu-mate live CD, but on gentoo i'm unable to make the touchscreen as expected : It works but like a touchpad (you can't scroll by sliding finger on the screen, instead it select the text.

After search it seems that these 2 options were the right to select :

Option        "Tapping" "true"

Option        "TappingDrag" "true"

Now I created a file : /etc/X11/xorg.conf.d/99-touchscreen.conf

```
Section "InputClass"

  Identifier    "TouchScreen"

  MatchProduct  "Goodix Capacitive TouchScreen"

  Driver        "libinput"

  Option        "Tapping" "true"

  Option        "TappingDrag" "true"

  Option        "TransformationMatrix"   "0 1 0 -1 0 1 0 0 1"

EndSection
```

option  "TransformationMatrix" is well applied but not these 2 :

  Option        "Tapping" "true"

  Option        "TappingDrag" "true"

It seems these cannot be selected on this device as seens bellow 

Tap-to-click:     n/a

Tap-and-drag:     n/a

full output of libinput list-devices for this device :

```
Device:           Goodix Capacitive TouchScreen

Kernel:           /dev/input/event12

Group:            7

Seat:             seat0, default

Capabilities:     keyboard touch 

Tap-to-click:     n/a

Tap-and-drag:     n/a

Tap drag lock:    n/a

Left-handed:      n/a

Nat.scrolling:    n/a

Middle emulation: n/a

Calibration:      identity matrix

Scroll methods:   none

Click methods:    none

Disable-w-typing: n/a

Accel profiles:   n/a

Rotation:         n/a

```

Something strange, device is listed in xinput --list as :

```
 ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
```

full output :

```
⎡ Virtual core pointer                          id=2    [master pointer  (3)]

⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]

⎜   ↳ Logitech Logitech USB Optical Mouse       id=10   [slave  pointer  (2)]

⎜   ↳ FocalTechPS/2 FocalTech Touchpad          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)]

    ↳ Asus Wireless Radio Control               id=7    [slave  keyboard (3)]

    ↳ Video Bus                                 id=8    [slave  keyboard (3)]

    ↳ Sleep Button                              id=9    [slave  keyboard (3)]

    ↳ Asus WMI hotkeys                          id=11   [slave  keyboard (3)]

    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]

```

so maybe it's recognized as a keyboard so the Tap missing options ??

here is the corresponding portion of Xorg.0.log  :

```
[  8111.091] (II) event10 - Logitech M585/M590: device is a keyboard

[  8111.092] (II) config/udev: Adding input device Logitech M585/M590 (/dev/input/mouse1)

[  8111.092] (II) No input driver specified, ignoring this device.

[  8111.092] (II) This device may have been added with another device file.

[  8111.092] (II) config/udev: Adding input device Goodix Capacitive TouchScreen (/dev/input/event12)

[  8111.092] (**) Goodix Capacitive TouchScreen: Applying InputClass "libinput keyboard catchall"

[  8111.092] (**) Goodix Capacitive TouchScreen: Applying InputClass "libinput touchscreen catchall"

[  8111.092] (**) Goodix Capacitive TouchScreen: Applying InputClass "TouchScreen"

[  8111.092] (II) Using input driver 'libinput' for 'Goodix Capacitive TouchScreen'

[  8111.092] (**) Goodix Capacitive TouchScreen: always reports core events

[  8111.092] (**) Option "Device" "/dev/input/event12"

[  8111.092] (**) Option "_source" "server/udev"

[  8111.092] (II) event12 - Goodix Capacitive TouchScreen: is tagged by udev as: Keyboard Touchscreen

[  8111.092] (II) event12 - Goodix Capacitive TouchScreen: device is a keyboard

[  8111.093] (II) event12 - Goodix Capacitive TouchScreen: device is a touch device

[  8111.093] (II) event12 - Goodix Capacitive TouchScreen: device removed

[  8111.110] (II) libinput: Goodix Capacitive TouchScreen: needs a virtual subdevice

[  8111.110] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:15.2/i2c_designware.2/i2c-8/i2c-GDIX1001:00/input/input19/event12"

[  8111.110] (II) XINPUT: Adding extended input device "Goodix Capacitive TouchScreen" (type: TOUCHSCREEN, id 16)

[  8111.110] (**) Option "AccelerationScheme" "none"

[  8111.110] (**) Goodix Capacitive TouchScreen: (accel) selected scheme none/0

[  8111.110] (**) Goodix Capacitive TouchScreen: (accel) acceleration factor: 2.000

[  8111.110] (**) Goodix Capacitive TouchScreen: (accel) acceleration threshold: 4

[  8111.110] (**) Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1"

[  8111.110] (II) event12 - Goodix Capacitive TouchScreen: is tagged by udev as: Keyboard Touchscreen

[  8111.110] (II) event12 - Goodix Capacitive TouchScreen: device is a keyboard

[  8111.110] (II) event12 - Goodix Capacitive TouchScreen: device is a touch device

[  8111.110] (II) config/udev: Adding input device Goodix Capacitive TouchScreen (/dev/input/mouse2)

[  8111.111] (**) Goodix Capacitive TouchScreen: Applying InputClass "TouchScreen"

[  8111.111] (II) Using input driver 'libinput' for 'Goodix Capacitive TouchScreen'

[  8111.111] (**) Goodix Capacitive TouchScreen: always reports core events

[  8111.111] (**) Option "Device" "/dev/input/mouse2"

[  8111.111] (**) Option "_source" "server/udev"

[  8111.131] (II) mouse2  - failed to create input device '/dev/input/mouse2'.

[  8111.131] (EE) libinput: Goodix Capacitive TouchScreen: Failed to create a device for /dev/input/mouse2

[  8111.131] (EE) PreInit returned 2 for "Goodix Capacitive TouchScreen"

[  8111.131] (II) UnloadModule: "libinput"

[  8111.131] (II) config/udev: Adding input device HDA Intel PCH Mic (/dev/input/event13)

[  8111.131] (II) No input driver specified, ignoring this device.

[  8111.131] (II) This device may have been added with another device file.

[  8111.131] (II) config/udev: Adding input device HDA Intel PCH Headphone (/dev/input/event1

.........

........

[  8112.278] (**) Goodix Capacitive TouchScreen: Applying InputClass "libinput keyboard catchall"

[  8112.278] (**) Goodix Capacitive TouchScreen: Applying InputClass "libinput touchscreen catchall"

[  8112.278] (**) Goodix Capacitive TouchScreen: Applying InputClass "TouchScreen"

[  8112.278] (II) Using input driver 'libinput' for 'Goodix Capacitive TouchScreen'

[  8112.278] (**) Goodix Capacitive TouchScreen: always reports core events

[  8112.278] (**) Option "Device" "/dev/input/event12"

[  8112.278] (**) Option "_source" "_driver/libinput"

[  8112.278] (II) libinput: Goodix Capacitive TouchScreen: is a virtual subdevice

[  8112.278] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:15.2/i2c_designware.2/i2c-8/i2c-GDIX1001:00/input/input19/event12"

[  8112.278] (II) XINPUT: Adding extended input device "Goodix Capacitive TouchScreen" (type: KEYBOARD, id 19)

[  9357.406] (II) event3  - Power Button: device removed

[  9357.414] (II) event11 - Video Bus: device removed

[  9357.421] (II) event2  - Power Button: device removed

[  9357.429] (II) event1  - Sleep Button: device removed

[  9357.437] (II) event5  - HAILUCK CO.,LTD USB KEYBOARD: device removed

[  9357.445] (II) event6  - HAILUCK CO.,LTD USB KEYBOARD Mouse: device removed

[  9357.461] (II) event7  - HAILUCK CO.,LTD USB KEYBOARD System Control: device removed

[  9357.469] (II) event8  - HAILUCK CO.,LTD USB KEYBOARD Consumer Control: device removed

[  9357.477] (II) event9  - HAILUCK CO.,LTD USB KEYBOARD Wireless Radio Control: device removed

[  9357.494] (II) event4  - AT Translated Set 2 keyboard: device removed

[  9357.503] (II) event10 - Logitech M585/M590: device removed

[  9357.510] (II) event12 - Goodix Capacitive TouchScreen: device removed

```

If you have some idea for this problem....   :Very Happy:   Thank you

----------

## rem5

This is solved as there is no problem   :Embarassed: 

first my report is false as execute xinput by ssh is evidently not the same.

Second there is no problem, touchscreen works as expected, just by example firefox who don't behave as expected is a firefox config and not a "general" config like I was thinking...

So for this point I juts have to read first line of firefox gentoo wiki :

```
Enabling multitouch

Xinput2 scrolling

This brings touch scrolling and multitouch support for Firefox:

MOZ_USE_XINPUT2 environment variable has to be set to a value of 1 in /etc/env.d/80firefox, or just before launching firefox in a shell. for example:

user $MOZ_USE_XINPUT2="1" firefox
```

So I just feel embarrassed   :Embarassed: , the worst is I search for the solution for hours before posting

----------

