5

Some information about my issue

I just installed 17.10 on my laptop. the installation process went fine, and additionally I was running a live USB in order to test if everything functioned. One thing I noted myself, was that whilst moving the mouse, the mouse felt like taking steps in every direction - resulting in a laggy movement.

If you have a grid, it feels like the mouse is attaching itself to every cross in the grid, whilst moving. The effect is mostly noticeable in diagonal directions, but can also be noticed elsewhere. Doing smaller movements is challenging, as the mouse bumps.

I tried changing the available settings in the stock settings menu on the system, without any apparent luck. I also tried searching for similar issues, but I am not sure if they describe my problem exactly. For instance, lets have a look at: Jerky mouse movements

My Parameters:

xinput --list-props "SynPS/2 Synaptics TouchPad" gives: 

`simen@Yoga-ubuntu:~$ xinput --list-props "SynPS/2 Synaptics TouchPad"
Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (171):   1
    Coordinate Transformation Matrix (173): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Tapping Enabled (311): 1
    libinput Tapping Enabled Default (312): 0
    libinput Tapping Drag Enabled (313):    1
    libinput Tapping Drag Enabled Default (314):    1
    libinput Tapping Drag Lock Enabled (315):   0
    libinput Tapping Drag Lock Enabled Default (316):   0
    libinput Tapping Button Mapping Enabled (317):  1, 0
    libinput Tapping Button Mapping Default (318):  1, 0
    libinput Accel Speed (319): -0.244604
    libinput Accel Speed Default (320): 0.000000
    libinput Natural Scrolling Enabled (321):   1
    libinput Natural Scrolling Enabled Default (322):   0
    libinput Send Events Modes Available (292): 1, 1
    libinput Send Events Mode Enabled (293):    0, 0
    libinput Send Events Mode Enabled Default (294):    0, 0
    libinput Left Handed Enabled (323): 0
    libinput Left Handed Enabled Default (324): 0
    libinput Scroll Methods Available (325):    1, 1, 0
    libinput Scroll Method Enabled (326):   1, 0, 0
    libinput Scroll Method Enabled Default (327):   1, 0, 0
    libinput Click Methods Available (328): 1, 1
    libinput Click Method Enabled (329):    1, 0
    libinput Click Method Enabled Default (330):    1, 0
    libinput Middle Emulation Enabled (331):    0
    libinput Middle Emulation Enabled Default (332):    0
    libinput Disable While Typing Enabled (333):    1
    libinput Disable While Typing Enabled Default (334):    1
    Device Node (295):  "/dev/input/event6"
    Device Product ID (296):    2, 7
    libinput Drag Lock Buttons (335):   <no items>
    libinput Horizontal Scroll Enabled (336):   1

I've tried changing a few values here, but had no luck as of yet getting rid of the "grid movement" of my track-pad.

Connecting an external mouse to the laptop seem to come around the issue, but I am still not satisfied with the performance of the track-pad. Moving the pointr with my track-pad is not going well.

If there is any other information that would be handy to have, just let me know and I'll provide it. It's an annoying issue as I can't use my external mouse at all times.

1
  • I have added a bounty to this question. I would like to have this issue ironed out as it keeps me from using ubuntu at a daily basis - which I am looking to do. This wihout having to change my laptop.
    – denNorske
    Dec 12, 2017 at 22:07

3 Answers 3

3
+50

I have experienced similar issue with my Lenovo X240, and judging by the system name 'Yoga', a very similar solution might apply. I seemed to be able to minimize the effects to an acceptable level, although they seem not to be completely gone.

As it occurred both on Wayland and Xorg and the Elder Geek's fix did not help, I digged deeper.

Based on: https://unix.stackexchange.com/questions/199044/diagonal-touchpad-movement-results-in-wobbly-line and in turn:https://bugzilla.redhat.com/show_bug.cgi?id=1264453 - comments 10 and 13.

Open /lib/udev/hwdb.d/90-libinput-model-quirks.hwdb in your favorite text editor, and check the LENOVO segment, as it will contain hints for a possible solution too.

This is what I did:

1) Identify hardware DMI and input location using evemu-describe [part of packageevemu-tools; [sudo apt install evemu-tools]

~$ sudo evemu-describe
Available devices:
/dev/input/event0:      Lid Switch
...
/dev/input/event4:      Video Bus
/dev/input/event5:      SynPS/2 Synaptics TouchPad
/dev/input/event6:      TPPS/2 IBM TrackPoint
...
/dev/input/event20:     HDA Intel HDMI HDMI/DP,pcm=10
Select the device event number [0-20]:

So in my case, the touchpad is registered on /dev/input/event5 [5]. Find the DMI line, right at the start of the output and save it for later:

# DMI: dmi:bvnLENOVO:bvrGIET90WW(2.40):bd09/14/2017:svnLENOVO:pn20AMS2QD0C:pvrThinkPadX240:rvnLENOVO:rn20AMS2QD0C:rvr0B98401PRO:cvnLENOVO:ct10:cvrNotAvailable:
# Input device name: "SynPS/2 Synaptics TouchPad"

2) Going on a leap, guesstimating that your touchpad behaves similarly to a t450, we will now add a new file for our hwdb in /etc/hwdb/ using sudo nano /etc/hwdb/90-lenovo-touchpad-quirk.hwdb

In the file put something similar like this. Modify the DMI matching, I pasted it in there for future reference:

#Lenovo touchpad smoothing fix/workaround. 
#evemu-describe DMI output for the touchpad:
# DMI: dmi:bvnLENOVO:bvrGIET90WW(2.40):bd09/14/2017:svnLENOVO:pn20AMS2QD0C:pvrThinkPadX240:rvnLENOVO:rn20AMS2QD0C:rvr0B98401PRO:cvnLENOVO:ct10:cvrNotAvailable:

#Modify the following line, namely the pvrThinkPadX240 bit, to match your DMI output. 
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*:pvrThinkPadX240*
 LIBINPUT_MODEL_LENOVO_T450_TOUCHPAD=1

Save the file (in Nano ctrl-X to exit, confirm with Y to save, VI has !wq)

3) Now rebuild the hardwaredatabase:

sudo udevadm hwdb --update

And 4) test if your new parameters are actually loaded (remember the input number from the first step):

~$ sudo udevadm test /sys/class/input/event5
calling: test
version 234
...
ID_INPUT_TOUCHPAD_INTEGRATION=internal
ID_INPUT_WIDTH_MM=109
LIBINPUT_DEVICE_GROUP=11/2/7/1b1:isa0060/serio1
LIBINPUT_MODEL_LENOVO_T450_TOUCHPAD=1
LIBINPUT_MODEL_SYNAPTICS_SERIAL_TOUCHPAD=1
...

It's there all right! 5) Reboot the system and fingers crossed...

I hope this results in you joining the dark Linux side!

In my case LIBINPUT_MODEL_LENOVO_X230=1 actually worked better, so you can play around -to some extent- with available fixes for Synaptics touchpads.

1
  • Sorry for late reply. Did try this, reinstalled, tried again - altered a bunch of values - but still could not get the touchpad working. Thanks for the answer though.
    – denNorske
    Apr 11, 2018 at 9:34
2

The grid-like pattern of touchpad movement is caused by libinput's old rectangular hysteresis algorithm. It was fixed in libinput version 1.10.2 (including in Ubuntu 18.04) by switching to an elliptical (usually circular) approach instead:

https://lists.freedesktop.org/archives/wayland-devel/2018-March/037317.html

5
  • Incredibly perfect to hear. I also got to know "why" the issue happened now. Sat this to my answer, this finally solved my issue.
    – denNorske
    Apr 25, 2018 at 11:33
  • Am I wrong to assume that libinput is really not meant for xorg but for wayland and therefore, it may be smarter to leave it to synaptics until wayland takes over? Jul 19, 2018 at 22:06
  • Yes that is wrong :) Libinput is a general library used by Xorg, Mir and Mutter (Gnome Shell). Ubuntu 18.04 does however support synaptics still (sudo apt install xserver-xorg-input-synaptics) if you find it is preferable for some reason. Though I would recommend if you found the Synaptics driver is still better at something then please log that as a bug against Libinput: gitlab.freedesktop.org/libinput/libinput/issues/new Jul 23, 2018 at 1:14
  • @DanielvanVugt Unfortunately, this problem persists even with newer Ubuntu versions on my Toshiba R830. How would I go about solving the problem? Jul 7, 2020 at 18:19
  • 1
    @MladenJablanović - Please report that as a bug to Ubuntu by running this command in a terminal: ubuntu-bug libinput10 Jul 9, 2020 at 1:41
2

Install this package. either via the command line with sudo apt install xserver-xorg-input-synaptics or with your favorite package manager.

Note that this package can be found in the Universe repository so you'll have to enable it first.

The primary method of configuration for the touchpad is through an Xorg server configuration file. After installation of xserver-xorg-input-synaptics, a default configuration file is located at /usr/share/X11/xorg.conf.d/70-synaptics.conf. You can copy this file to /etc/X11/xorg.conf.d/ and edit it to configure the various driver options available. Refer to the synaptics(4) manual page for a complete list of available options. Machine-specific options can be discovered using synclient.

I recommend starting with the default configuration and making changes one at a time so that if||when you get unexpected results you can easily revert back to the previous setting.

Sources:

https://packages.ubuntu.com/artful/amd64/xserver-xorg-input-synaptics/filelist

ftp://www.x.org/pub/X11R7.5/doc/man/man1/synclient.1.html

ftp://www.x.org/pub/X11R7.5/doc/man/man1/synclient.1.html

https://wiki.archlinux.org/index.php/Touchpad_Synaptics

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .