Re: Lenovo T16 Gen 3 touchpad/trackpoint problem (7.9/amd64)

Ulf Brosziewski <[email protected]>
Newsgroups gmane.os.openbsd.misc
Message-ID <[email protected]>
On 8/20/26 09:10, Jonathan Thornburg wrote:
> Hi Ulf,
> 
>> For example, when typing triggers a cursor jump, it could be that an
>> "oversensitive" touchpad or trackpoint issues a motion event. You could
>> verify or discard that by looking at the output of
>>     $ xinput test /dev/wsmouse2
>> (or wsmouse0 for the touchpad) while you are testing.
>>
>> In order to avoid confusion, you might leave out /dev/wsmouse and disable
>> it instead, with
>>     $ xinput disable /dev/wsmouse
>> Disabling it via an xorg.conf with MatchDevicePath and the "Ignore" option
>> doesn't work.
>>
>> I assume that wsmouse1 - that is, the instance attached to ims - does
>> nothing (except for causing an initialization error when you have
>> configured the synaptics driver).
>>
>> Events from the touchpad should be reported via wsmouse0, and trackpoint
>> events via wsmouse2.  Anything else would be unusual.
> 
> Ok, I've made the following three tests, all using my "normal" xorg.conf:
> --- begin /etc/X11/xorg.conf---
> Section "InputClass"
> 	Identifier "wsmouse touchpad"
> 	Driver "synaptics"
> 	MatchIsTouchpad "on"
> EndSection
> --- end /etc/X11/xorg.conf---
> 
> ===== test #1 (input devices disabled) =====
> restart X server (as root, 'pkill X')
> login as normal user
> this gives the following X input devices:
> --- begin 'xinput list' output ---
> + Virtual core pointer                    	id=2	[master pointer  (3)]
> |   + Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
> |   + /dev/wsmouse0                           	id=7	[slave  pointer  (2)]
> |   + /dev/wsmouse                            	id=8	[slave  pointer  (2)]
> + Virtual core keyboard                   	id=3	[master keyboard (2)]
>     + Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
>     + /dev/wskbd                              	id=6	[slave  keyboard (3)]
> --- end 'xinput list' output ---
> now run 'xinput test /dev/wsmouse0' in one xterm,
> and 'xinput test /dev/wsmouse' in another xterm,
> 
> Now I moved the cursor to a 3rd xterm and used 'vi' to edit this message.
> For a minute or two (during which time was typing, and also made a few
> cursor movements) there were no cursor jumps and neither 'xinput test'
> produced any output.  (I found this surprising -- I was expecting motion
> events from at least one of the 'xinput test' instances.)  Then

Hi Jonathan,

Unfortunately, 'xinput test' doesn't work when the cursor is in a window
configured to not "propagate" events, and, as I have learned today, this seems
to be the case for ctwm windows.

What should work with ctwm, instead, is
    $ xinput test-xi2 --root /dev/wsmouseX
, but the output is more verbose and detailed.

I assume logging started when the cursor moved out of the window.  Were you
typing, or using the touchpad when this happened?  And what did you do when
the jump occured?

I think we should continue off-list, if you want to continue these
examinations, in order to reduce the noise on misc@.

> 'xinput test /dev/wsmouse0' produced the first 2 lines of output shown
> below (but there was no cursor jump at that time).  A bit later the cursor
> jumped (for the first time in this test) and 'xinput test /dev/wsmouse0'
> produced the remainder of the output shown below.  'xinput test /dev/wsmouse'
> never produce any output during this test.
> --- begin 'xinput test /dev/wsmouse0' output ---
> motion a[0]=466 a[1]=280 
> motion a[0]=925 a[1]=491 
> motion a[0]=0 a[1]=34 
> motion a[0]=0 a[1]=46 
> motion a[0]=0 a[1]=60 
> motion a[1]=89 
> motion a[1]=103 
> motion a[1]=118 
> motion a[0]=0 a[1]=132 
> motion a[0]=4 a[1]=145 
> motion a[0]=471 a[1]=361 
> motion a[0]=448 a[1]=369 
> --- end 'xinput test /dev/wsmouse0' output ---
> 
> 
> ===== test #2 (disabling /dev/wsmouse) =====
> restart X server (as root, 'pkill X')
> login as normal user
> this gives the following X input devices:
> --- begin 'xinput list' output ---
> + Virtual core pointer                    	id=2	[master pointer  (3)]
> |   + Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
> |   + /dev/wsmouse0                           	id=7	[slave  pointer  (2)]
> |   + /dev/wsmouse                            	id=8	[slave  pointer  (2)]
> + Virtual core keyboard                   	id=3	[master keyboard (2)]
>     + Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
>     + /dev/wskbd                              	id=6	[slave  keyboard (3)]
> --- end 'xinput list' output ---
> now (as normal user) 'xinput disable /dev/wsmouse'
> this gives the following X input devices:
> --- begin 'xinput list' output ---
> + Virtual core pointer                    	id=2	[master pointer  (3)]
> |   + Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
> |   + /dev/wsmouse0                           	id=7	[slave  pointer  (2)]
> + Virtual core keyboard                   	id=3	[master keyboard (2)]
>     + Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
>     + /dev/wskbd                              	id=6	[slave  keyboard (3)]
> ∼ /dev/wsmouse                            	id=8	[floating slave]
> --- end 'xinput list' output ---
> 
> The status now is:
> * the touchpad works fine for moving the cursor
> * the cursor never jumps when making such movements
> * the trackpoint ("nipple") has no effect
> * the touchpad buttons have no effect
> 
> In this condition, 'xinput test /dev/wsmouse0' does show events
> for most cursor movements (done with the touchpad).  In particular,
> I *never* saw events when moving the cursor around within a window.
> For window-crossing cursor movements I occasionally (maybe 1/5 of the time)
> saw events, but usually saw no events.  (All the windows in quesions
> were in fact xterms.)
> 
> Here is some sample 'xinput test /dev/wsmouse0' output in this condition,
> showing the events I did see for window-crossing cursor movements:
> --- begin 'xinput test /dev/wsmouse0' output
> motion a[0]=480 a[1]=356 
> motion a[0]=921 a[1]=301 
> motion a[0]=1046 a[1]=469 
> motion a[0]=899 
> motion a[1]=471 
> motion a[0]=449 a[1]=518 
> --- end 'xinput test /dev/wsmouse0' output
> 
> 
> ===== test #3 (disabling /dev/wsmouse0) =====
> restart X server (as root, 'pkill X')
> login as normal user
> this gives the following X input devices:
> --- begin 'xinput list' output ---
> + Virtual core pointer                    	id=2	[master pointer  (3)]
> |   + Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
> |   + /dev/wsmouse0                           	id=7	[slave  pointer  (2)]
> |   + /dev/wsmouse                            	id=8	[slave  pointer  (2)]
> + Virtual core keyboard                   	id=3	[master keyboard (2)]
>     + Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
>     + /dev/wskbd                              	id=6	[slave  keyboard (3)]
> --- end 'xinput list' output ---
> now (as normal user) 'xinput disable /dev/wsmouse0'
> this gives the following X input devices:
> --- begin 'xinput list' output ---
> + Virtual core pointer                    	id=2	[master pointer  (3)]
> |   + Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
> |   + /dev/wsmouse                            	id=8	[slave  pointer  (2)]
> + Virtual core keyboard                   	id=3	[master keyboard (2)]
>     + Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
>     + /dev/wskbd                              	id=6	[slave  keyboard (3)]
> ∼ /dev/wsmouse0                           	id=7	[floating slave]
> --- end 'xinput list' output ---
> 
> The status now is:
> * the touchpad works fine for moving the cursor
> * the trackpoint ("nipple") works fine for moving the cursor
> * the cursor *always* jumps at the start of each movement
>   (whether via touchpad or via the trackpoint ("nipple")
> * the touchpad buttons work fine
> 
> In this condition, 'xinput test /dev/wsmouse' shows events
> for some (about 1/2, I'd say), but not all, cursor movements
> (all of which have a cursor-jump at the start of the movement).
> I didn't notice any difference between within-window movements
> and window-crossing movements.
> 
> Here is some sample 'xinput test /dev/wsmouse' output showing the
> events I did see in this condition: when moving the cursor:
> --- begin 'xinput test /dev/wsmouse' output
> motion a[0]=0 a[1]=39 
> motion a[0]=0 a[1]=50 
> motion a[0]=0 a[1]=60 
> motion a[0]=0 a[1]=69 
> motion a[0]=0 a[1]=79 
> motion a[0]=0 a[1]=114 
> motion a[0]=0 a[1]=123 
> motion a[0]=0 a[1]=130 
> motion a[0]=0 a[1]=137 
> motion a[0]=0 a[1]=143 
> motion a[0]=0 a[1]=149 
> motion a[0]=0 a[1]=156 
> motion a[0]=0 a[1]=162 
> motion a[1]=167 
> motion a[0]=0 a[1]=171 
> motion a[0]=0 a[1]=173 
> motion a[1]=175 
> motion a[0]=0 a[1]=177 
> motion a[1]=179 
> motion a[1]=180 
> motion a[0]=2 
> motion a[0]=0 
> motion a[0]=3 
> motion a[0]=11 a[1]=178 
> motion a[0]=1 a[1]=130 
> motion a[0]=2 a[1]=129 
> motion a[0]=3 a[1]=128 
> motion a[0]=4 
> motion a[0]=0 a[1]=48 
> motion a[0]=0 a[1]=61 
> motion a[0]=0 a[1]=74 
> motion a[0]=0 a[1]=86 
> motion a[0]=0 a[1]=122 
> motion a[0]=0 a[1]=134 
> motion a[0]=0 a[1]=145 
> motion a[0]=0 a[1]=154 
> motion a[0]=0 a[1]=165 
> motion a[0]=0 a[1]=175 
> motion a[0]=0 a[1]=183 
> motion a[0]=0 a[1]=191 
> motion a[0]=0 a[1]=199 
> motion a[0]=0 a[1]=206 
> motion a[0]=0 a[1]=211 
> motion a[1]=215 
> motion a[0]=0 a[1]=217 
> motion a[1]=220 
> --- end 'xinput test /dev/wsmouse' output
> 
> 
> Does this tell you anything interesting?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.