Bug 103959 - libinput 1.9.2 makes Thinkpad trackpoint too fast and user settings are ignored
Summary: libinput 1.9.2 makes Thinkpad trackpoint too fast and user settings are ignored
Status: RESOLVED WONTFIX
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-11-28 19:59 UTC by Mikko Rapeli
Modified: 2018-05-25 05:43 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Mikko Rapeli 2017-11-28 19:59:50 UTC
Hi,

I have an old Thinkpad T60 running Debian unstable, and on latest update the trackpoint accelaration etc got really fast. So fast that it's to me unusable.
Touchpad is fine. I tried to modify the acceleration etc settings in Xfce mouse dialog and with xinput command line tool but I can't make it slow anymore.

If I downgrade to libinput version 1.8.3 it works well again.

How to make Thinkpad trackpoint slower with libinput 1.9.2?

"xinput list-props" shows exact same settings with libinput 1.8.3 and 1.9.2 so I'm lost what more can I tune.

# xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=10	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=11	[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)]
    ↳ AT Translated Set 2 keyboard            	id=9	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=12	[slave  keyboard (3)]

# xinput list-props 10
Device 'SynPS/2 Synaptics 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
	Device Accel Profile (267):	1
	Device Accel Constant Deceleration (268):	2.500000
	Device Accel Adaptive Deceleration (269):	1.000000
	Device Accel Velocity Scaling (270):	12.500000
	Synaptics Edges (271):	1752, 5192, 1620, 4236
	Synaptics Finger (272):	25, 30, 0
	Synaptics Tap Time (273):	180
	Synaptics Tap Move (274):	221
	Synaptics Tap Durations (275):	180, 180, 100
	Synaptics ClickPad (276):	0
	Synaptics Middle Button Timeout (277):	75
	Synaptics Two-Finger Pressure (278):	282
	Synaptics Two-Finger Width (279):	7
	Synaptics Scrolling Distance (280):	100, 100
	Synaptics Edge Scrolling (281):	1, 0, 0
	Synaptics Two-Finger Scrolling (282):	0, 0
	Synaptics Move Speed (283):	1.000000, 1.750000, 0.039809, 0.000000
	Synaptics Off (284):	0
	Synaptics Locked Drags (285):	0
	Synaptics Locked Drags Timeout (286):	5000
	Synaptics Tap Action (287):	0, 0, 0, 0, 0, 0, 0
	Synaptics Click Action (288):	1, 1, 1
	Synaptics Circular Scrolling (289):	0
	Synaptics Circular Scrolling Distance (290):	0.100000
	Synaptics Circular Scrolling Trigger (291):	0
	Synaptics Circular Pad (292):	0
	Synaptics Palm Detection (293):	0
	Synaptics Palm Dimensions (294):	10, 200
	Synaptics Coasting Speed (295):	20.000000, 50.000000
	Synaptics Pressure Motion (296):	30, 160
	Synaptics Pressure Motion Factor (297):	1.000000, 1.000000
	Synaptics Grab Event Device (298):	0
	Synaptics Gestures (299):	1
	Synaptics Capabilities (300):	1, 0, 1, 1, 1, 1, 1
	Synaptics Pad Resolution (301):	125, 93
	Synaptics Area (302):	0, 0, 0, 0
	Synaptics Noise Cancellation (303):	25, 25
	Device Product ID (264):	2, 7
	Device Node (263):	"/dev/input/event1"

# xinput list-props 11
Device 'TPPS/2 IBM TrackPoint':
	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 Natural Scrolling Enabled (308):	0
	libinput Natural Scrolling Enabled Default (309):	0
	libinput Left Handed Enabled (310):	0
	libinput Left Handed Enabled Default (311):	0
	libinput Accel Speed (312):	0.000000
	libinput Accel Speed Default (313):	0.000000
	libinput Accel Profiles Available (314):	1, 1
	libinput Accel Profile Enabled (315):	1, 0
	libinput Accel Profile Enabled Default (316):	1, 0
	libinput Scroll Methods Available (317):	0, 0, 1
	libinput Scroll Method Enabled (318):	0, 0, 1
	libinput Scroll Method Enabled Default (319):	0, 0, 1
	libinput Button Scrolling Button (320):	2
	libinput Button Scrolling Button Default (321):	2
	libinput Middle Emulation Enabled (322):	0
	libinput Middle Emulation Enabled Default (323):	0
	libinput Send Events Modes Available (260):	1, 0
	libinput Send Events Mode Enabled (261):	0, 0
	libinput Send Events Mode Enabled Default (262):	0, 0
	Device Node (263):	"/dev/input/event2"
	Device Product ID (264):	2, 10
	libinput Drag Lock Buttons (324):	<no items>
	libinput Horizontal Scroll Enabled (325):	1


# libinput-list-devices
Device:           Power Button
Kernel:           /dev/input/event5
Group:            1
Seat:             seat0, default
Capabilities:     keyboard 
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:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Video Bus
Kernel:           /dev/input/event6
Group:            2
Seat:             seat0, default
Capabilities:     keyboard 
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:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Lid Switch
Kernel:           /dev/input/event3
Group:            3
Seat:             seat0, default
Capabilities:     switch
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:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Sleep Button
Kernel:           /dev/input/event4
Group:            4
Seat:             seat0, default
Capabilities:     keyboard 
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:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           AT Translated Set 2 keyboard
Kernel:           /dev/input/event0
Group:            5
Seat:             seat0, default
Capabilities:     keyboard 
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:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           SynPS/2 Synaptics TouchPad
Kernel:           /dev/input/event1
Group:            6
Seat:             seat0, default
Size:             43x24mm
Capabilities:     pointer 
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    none
Disable-w-typing: enabled
Accel profiles:   none
Rotation:         n/a

Device:           TPPS/2 IBM TrackPoint
Kernel:           /dev/input/event2
Group:            7
Seat:             seat0, default
Capabilities:     pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           ThinkPad Extra Buttons
Kernel:           /dev/input/event7
Group:            8
Seat:             seat0, default
Capabilities:     keyboard 
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:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a
Comment 1 Mikko Rapeli 2017-11-28 20:26:41 UTC
On #wayland irc channel I got the instructions to run:

# libinput measure trackpoint-range
This tool measures the commonly used pressure range of the
trackpoint. Push the trackpoint:
- Four times around the screen edges
- From the top left to the bottom right and back, twice
- From the top right to the bottom left and back, twice
A minimum of 1000 events for each axis is required

Movements should emulate fast pointer movement on the screen
but not use excessive pressure that would not be used
during day-to-day movement. For best results, run this tool 
several times to get an idea of the common range.


Trackpoint sends: max x: 52, max y: 49 samples [6968, 6780]^C

Histogram for x axis deltas, in counts of 5
 -44: 
 -43: 
 -42: 
 -41: 
 -40: 
 -39: 
 -38: 
 -37: 
 -36: 
 -35: +
 -34: +
 -33: +
 -32: +
 -31: +
 -30: +
 -29: ++
 -28: +
 -27: +
 -26: +
 -25: +
 -24: ++
 -23: ++
 -22: ++
 -21: ++++
 -20: +++++
 -19: +++++
 -18: +++++
 -17: ++++++++++
 -16: +++++++++++++++
 -15: ++++++++++++++++++
 -14: ++++++++++++++++++++
 -13: +++++++++++++++++
 -12: ++++++++++++++++
 -11: ++++++++++++++++++
 -10: ++++++++++++++++++++++++++
  -9: ++++++++++++++++++++++++++++++
  -8: ++++++++++++++++++++++++++++++++++++
  -7: ++++++++++++++++++++++++++++++++++++++
  -6: +++++++++++++++++++++++++++++++++++++++++++
  -5: ++++++++++++++++++++++++++++++++++++++++++++++++
  -4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
  -3: +++++++++++++++++++++++++++++++++++++++++++++++++++++++
  -2: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  -1: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   0: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   1: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   2: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   3: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   4: ++++++++++++++++++++++++++++++++++++++++++++++++++++
   5: ++++++++++++++++++++++++++++++++++++++
   6: ++++++++++++++++++++++++++++++++++++++++
   7: ++++++++++++++++++++++++++++++++++++++++++
   8: +++++++++++++++++++++++++++++++++++++++++++
   9: ++++++++++++++++++++++++++++++++
  10: +++++++++++++++++++++++++++++++++
  11: ++++++++++++++++++++++++++++
  12: +++++++++++++++++++++++++
  13: ++++++++++++++++++++++
  14: ++++++++++++++++
  15: ++++++++++++++++++
  16: +++++++++++++
  17: ++++++++++++
  18: +++++++++++
  19: ++++++++++
  20: ++++++++++
  21: ++++++++++
  22: +++++++++
  23: +++++++++
  24: ++++++
  25: ++++++
  26: ++++
  27: +
  28: +
  29: ++
  30: +
  31: +
  32: +
  33: +
  34: +
  35: +
  36: 
  37: +
  38: 
  39: 
  40: +
  41: 
  42: +
  43: +
  44: 
  45: 
  46: +
  47: +
  48: 
  49: 
  50: 
  51: 
  52: 
Histogram for y axis deltas, in counts of 5
 -49: 
 -48: 
 -47: 
 -46: 
 -45: 
 -44: +
 -43: 
 -42: 
 -41: 
 -40: 
 -39: 
 -38: 
 -37: +
 -36: 
 -35: ++
 -34: 
 -33: +
 -32: +
 -31: +
 -30: 
 -29: +
 -28: +
 -27: +
 -26: +
 -25: ++
 -24: ++
 -23: ++++
 -22: +++++
 -21: +++++++
 -20: ++++++++
 -19: ++++++++++
 -18: ++++++++++
 -17: +++++++++++
 -16: ++++++++++
 -15: ++++++++++++
 -14: +++++++++
 -13: ++++++++++
 -12: +++++++++++++++++
 -11: +++++++++++++++++++++++
 -10: ++++++++++++++++++++++++
  -9: +++++++++++++++++++++++
  -8: ++++++++++++++++++++++++++++++
  -7: ++++++++++++++++++++++++++++++++
  -6: ++++++++++++++++++++++++++++++++++++++
  -5: +++++++++++++++++++++++++++++++++++++++
  -4: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  -3: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  -2: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  -1: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   0: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   1: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   2: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   3: +++++++++++++++++++++++++++++++++++++++++++++++++++++
   4: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   5: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   6: +++++++++++++++++++++++++++++++++++++++++
   7: ++++++++++++++++++++++++++++++++++++++
   8: +++++++++++++++++++++++++++++++
   9: +++++++++++++++++++++++++++++++++++++
  10: ++++++++++++++++++++++++++
  11: ++++++++++++++++++
  12: +++++++++++++++++
  13: ++++++++++++
  14: +++++++++++++
  15: +++++++++++
  16: +++++++
  17: ++++++++
  18: ++++++
  19: +++++++++
  20: ++++
  21: ++++
  22: ++++
  23: ++
  24: +
  25: +
  26: +
  27: ++
  28: +
  29: +
  30: +
  31: 
  32: 
  33: 
  34: 
  35: 
  36: 
  37: 
  38: 
  39: 
  40: 
  41: 
  42: 
  43: 
  44: 
  45: 
  46: 
  47: 
  48: 
Average for abs deltas: x:   7 y:   6
Median for abs deltas: x:   6 y:   4
95% percentile for abs deltas: x:  22 y:  20
Comment 2 Peter Hutterer 2017-11-30 04:55:38 UTC
The libinput Accel Speed property still shows 0, have you tried lowering it? It's  a double in the range [-1, 1] for slowest/fastest.

The range of the trackpoint seems to fall into the default of 20, so whatever that trackpoint is doing, it's different to the laptops the current accel method was designed on. Not sure how to debug this, tbh.
Comment 3 Lukas Waymann 2017-12-04 13:55:00 UTC
My TrackPoint also started to behave very differently after installing libinput 1.9.3.  I'm using a ThinkPad X121e running Arch Linux.  Using sysfs to change the sensitivity worked.

Locate the files we can change (command from <https://gist.github.com/noromanba/11261595>):

    $ find /sys/devices/platform/i8042 -name name | xargs grep -Fl TrackPoint | sed 's/\/input\/input[0-9]*\/name$//'
    /sys/devices/platform/i8042/serio4/serio5

I checked whether the upgrade changed any values at this point, which it didn't:

    # for f in /sys/devices/platform/i8042/serio4/serio5/*; do [[ -f $f ]] && echo "$f" && cat "$f"; done > new-values.txt
    # pacman -U /var/cache/pacman/pkg/libinput-1.8.3-1-x86_64.pkg.tar.xz  # downgrade libinput
    # systemctl reboot
    # for f in /sys/devices/platform/i8042/serio4/serio5/*; do [[ -f $f ]] && echo "$f" && cat "$f"; done > old-values.txt
    $ diff -s new-values.txt old-values.txt
    Files old-values.txt and new-values.txt are identical

In the end I changed /sys/devices/platform/i8042/serio4/serio5/sensitivity to a lower value:

    $ cat /sys/devices/platform/i8042/serio4/serio5/{speed,sensitivity}
    97
    128
    $ echo 100 | sudo tee /sys/devices/platform/i8042/serio4/serio5/sensitivity
Comment 4 Peter Hutterer 2018-05-03 05:39:51 UTC
fwiw, I never got an answer to "The libinput Accel Speed property still shows 0, have you tried lowering it? It's  a double in the range [-1, 1] for slowest/fastest."
Comment 5 Peter Hutterer 2018-05-03 06:01:37 UTC
Also, I'd need the libinput debug-events --verbose output, the initial output of it at least before any motion events (or with, doesn't matter)
Comment 6 Peter Hutterer 2018-05-25 05:43:43 UTC
Too long in needinfo, closing.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.