# Lenovo Yoga S730 touchpad - Disable-when-typing not working

## dbmcintosh

Hi...

I bought a new Lenovo Yoga S730 and have installed latest Gentoo Linux on it.  After some hunting about I managed to get the touchpad working - this document was very useful https://wiki.gentoo.org/wiki/Lenovo_yoga_730.  I am using the i2c designware driver with libinput.  The touchpad is reported as a MSFT0001:00 06CB:CD3E Touchpad ... MSFT is Microsoft.. not sure about that?!

Unfortunately the only remaining issue is that touchpad does not disable when typing.  This makes typing very annoying because the control is continually passed back to touchpad causing the mouse to jump about.  At the moment I am hovering my hands over the touchpad to stop it doing this!

So I was wondering if anyone had any suggestions.  Here is some of the config I am currently running.  Most interesting is the output from libinput which says:

Disable-w-typing: n/a

i.e. the 'Disbable while typing' feature is not available.  Does anyone else have this issue or know if the driver I am using support this?

Thanks,

Donald

xinput output:

```
        Device 'MSFT0001:00 06CB:CD3E Touchpad':

   Device Enabled (138):   1

   Coordinate Transformation Matrix (140):   1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

   libinput Calibration Matrix (291):   1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

   libinput Calibration Matrix Default (292):   1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

   libinput Send Events Modes Available (258):   1, 0

   libinput Send Events Mode Enabled (259):   0, 0

   libinput Send Events Mode Enabled Default (260):   0, 0

   Device Node (261):   "/dev/input/event6"

   Device Product ID (262):   1739, 52542

 
```

hwinfo output:

```
  P: /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-7/i2c-MSFT0001:00/0018:06CB:CD3E.0001/input/input6

  E: ABS=10000000003

  E: DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-7/i2c-MSFT0001:00/0018:06CB:CD3E.0001/input/in

put6

  E: EV=1b

  E: ID_INPUT=1

  E: ID_INPUT_TOUCHSCREEN=1

  E: ID_PATH=pci-0000:00:15.0-platform-i2c_designware.0

  E: ID_PATH_TAG=pci-0000_00_15_0-platform-i2c_designware_0

  E: KEY=400 1 0 0 0 0

  E: MODALIAS=input:b0018v06CBpCD3Ee0100-e0,1,3,4,k100,14A,ra0,1,28,m4,lsfw

  E: MSC=10

  E: NAME="MSFT0001:00 06CB:CD3E Touchpad"

  E: PHYS="i2c-MSFT0001:00"

  E: PRODUCT=18/6cb/cd3e/100

  E: PROP=0

  E: SUBSYSTEM=input

  E: UNIQ=""

  E: USEC_INITIALIZED=3095510

```

libinput output:

```

Device:           MSFT0001:00 06CB:CD3E Touchpad

Kernel:           /dev/input/event6

Group:            4

Seat:             seat0, default

Size:             101x66mm

Capabilities:     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

```

Xorg.log output:

```

[    19.693] (**) Power Button: Applying InputClass "libinput keyboard catchall"

[    19.693] (**) Power Button: Applying InputClass "libinput keyboard catchall"

[    19.693] (II) LoadModule: "libinput"

[    19.693] (II) Loading /usr/lib64/xorg/modules/input/libinput_drv.so

[    19.695] (II) Module libinput: vendor="X.Org Foundation"

[    19.695] (II) Using input driver 'libinput' for 'Power Button'

[    19.718] (**) Video Bus: Applying InputClass "libinput keyboard catchall"

[    19.718] (**) Video Bus: Applying InputClass "libinput keyboard catchall"

[    19.718] (II) Using input driver 'libinput' for 'Video Bus'

[    19.739] (**) Sleep Button: Applying InputClass "libinput keyboard catchall"

[    19.739] (**) Sleep Button: Applying InputClass "libinput keyboard catchall"

[    19.739] (II) Using input driver 'libinput' for 'Sleep Button'

[    19.759] (**) MSFT0001:00 06CB:CD3E Mouse: Applying InputClass "libinput pointer catchall"

[    19.759] (**) MSFT0001:00 06CB:CD3E Mouse: Applying InputClass "libinput pointer catchall"

[    19.759] (II) Using input driver 'libinput' for 'MSFT0001:00 06CB:CD3E Mouse'

[    19.886] (**) MSFT0001:00 06CB:CD3E Touchpad: Applying InputClass "libinput touchscreen catchall"

[    19.886] (**) MSFT0001:00 06CB:CD3E Touchpad: Applying InputClass "libinput touchscreen catchall"

[    19.886] (II) Using input driver 'libinput' for 'MSFT0001:00 06CB:CD3E Touchpad'

[    19.905] (**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall"

[    19.905] (**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall"

[    19.905] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'

[   268.271] (II) event5  - MSFT0001:00 06CB:CD3E Mouse: Enabling spurious button debouncing, see https://wayland.freedesktop.org/libinput/doc/1.12.6/button-debouncing.html for details
```

[Moderator edit: added [code] tags to preserve output layout. -Hu]

----------

## dbmcintosh

This is still not working correctly.  The touchpad is being recognised in X as just a pointer/mouse.  The touchpad rules are not catching it.

It seems like there are two 'views' on the same device (apologies if I have the wrong terminology).  it sees it as a Mouse AND as a Touchpad, but the MatchIsTouch does not work, so it ends up having the Touchscreen configuration picking it up, which you can see in the log below, and is backed up by the 'ID_INPUT_TOUCHSCREEN=1' in the hwinfo output.

```

[    19.886] (**) MSFT0001:00 06CB:CD3E Touchpad: Applying InputClass "libinput touchscreen catchall"

[    19.886] (**) MSFT0001:00 06CB:CD3E Touchpad: Applying InputClass "libinput touchscreen catchall"

[    19.886] (II) Using input driver 'libinput' for 'MSFT0001:00 06CB:CD3E Touchpad' 

```

If I disable evdev and synaptics and all the xorg.conf.d rules to only have the MatchIsTouchpad, it does not match - which (obviousl) means it is not recognising the device as a touchpad.

Until it does this, the 'disable when typing' thing is never going to work, it needs to be caught as a touchpad (I would think).

Any pointers much appreciated.

----------

## charles17

Related to topic 1101928?

----------

## dbmcintosh

It's working!!!  Thank you!

I needed to set HID_MULTITOUCH within the kernel before it would recognise it as a Touchpad, as mentioned in the doc you referenced.

```

Device:           MSFT0001:00 06CB:CD3E Touchpad

Kernel:           /dev/input/event5

Group:            4

Seat:             seat0, default

Size:             101x66mm

Capabilities:     pointer gesture

Tap-to-click:     disabled

Tap-and-drag:     enabled

Tap drag lock:    disabled

Left-handed:      disabled

Nat.scrolling:    disabled

Middle emulation: disabled

Calibration:      n/a

Scroll methods:   *two-finger edge 

Click methods:    *button-areas clickfinger 

Disable-w-typing: enabled

Accel profiles:   none

Rotation:         n/a

```

Thank you @james.h.bates

----------

## charles17

Your adjustment to the wiki article you mentioned above might be helpful for other readers ...

----------

## dbmcintosh

Done!

Thanks for the tip.

----------

