Re: Lenovo T16 Gen 3 touchpad/trackpoint problem (7.9/amd64)
Kihaguru Gathura <[email protected]> Tue, 4 Aug 2026 17:53:55 +0300
| Newsgroups | gmane.os.openbsd.misc |
|---|---|
| Message-ID | <CAPggWJ8p-tJPgAm5hC=MUeD+DieVaU4bvOqYiMhLTGNY2vj-=Q@mail.gmail.com> |
--000000000000ad410a065839d3c0
Content-Type: text/plain; charset="UTF-8"
Hi Jonathan,
Thanks for testing. That seems to confirm that /dev/wsmouse is where the
jumps are coming from.
The loss of the three buttons also makes some sense. They may be part of
the pms0/TrackPoint interface rather than the imt0 touchpad interface. Your
dmesg shows:
wsmouse0 at imt0
wsmouse1 at ims0
wsmouse2 at pms0
Perhaps the next test is to ignore the multiplexed /dev/wsmouse, but open
/dev/wsmouse2 directly:
Section "InputClass"
Identifier "ignore wsmouse mux"
MatchDevicePath "/dev/wsmouse"
Option "Ignore" "true"
EndSection
Section "InputDevice"
Identifier "TrackPoint and buttons"
Driver "ws"
Option "Device" "/dev/wsmouse2"
Option "AutoServerLayout" "true"
EndSection
This would leave /dev/wsmouse0 handling the touchpad through synaptics,
while /dev/wsmouse2 handles the TrackPoint and its buttons without going
through the multiplexor.
After restarting X, does `xinput list` show both /dev/wsmouse0 and the
separately configured wsmouse2, but not /dev/wsmouse?
If so, it would be interesting to see whether the touchpad, buttons and
TrackPoint then work without the jumps.
I haven't tested this particular setup, so please keep the previous
xorg.conf handy in case X does not add wsmouse2 this way.
Regards,
Kihaguru
On Tue, 4 Aug 2026, 08:41 Jonathan Thornburg, <[email protected]>
wrote:
> Hi Kihaguru,
>
> Thanks for your analysis!
>
> On Sun, Aug 02, 2026 at 11:07:38PM +0300, Kihaguru Gathura wrote:
> > Hi Jonathan,
> >
> > The interesting part of the log may be that X is opening more than one
> > interface for the pointing devices:
> >
> > /dev/wsmouse0 - imt0 touchpad, using synaptics
> > /dev/wsmouse1 - ims0 report, which fails to enter native mode
> > /dev/wsmouse - the wscons multiplexor
> >
> > So the touchpad may be reaching X directly through wsmouse0 and again
> > through the multiplexor. The multiplexor may also carry events from the
> > TrackPoint at pms0. The jump when you first move the TrackPoint makes
> that
> > path especially suspicious.
>
> Aha! That does seem "curious"....
>
> > As a quick test, run: xinput list , then disable the entry named
> > /dev/wsmouse, for example: xinput disable 8
> >
> > Use the actual id from `xinput list`, since it may change. This should
> > leave /dev/wsmouse0 handling the touchpad.
>
> Here's the output of 'xinput list' before disabling anything:
> % xinput list
> + 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)]
> %
>
> After 'xinput disable 8' three things happened:
> * [good] the cursor no longer jumped
> * [neutral] the trackpoint ("nipple") becomes a no-op
> * [bad] the touchpad's 3 mechanical buttons also become no-ops (tapping
> the touchpad seems to work, but I'm very used to using the touchpad's
> mechanical buttons)
>
> After returning to the initial state with 'xinput enable 8',
> I tried 'xinput disable 7' (disabling /dev/wsmouse0). This had
> different results:
> * [very bad] the cursor now jumps with *every* touchpad movement
> * [neutral] the trackpoint ("nipple") works, but the cursor jumps
> with every trackpoint movement, too
> * [ok] the touchpad buttons work ok
>
> ciao,
> --
> -- "Jonathan Thornburg [remove -color to reply]" <
> [email protected]>
> he/him; on the west coast of Canada; https://www.bkis-orchard.net/
> "He wakes me up every morning meowing to death because he wants to go
> out, and then when I open the door he stays put, undecided, and then
> glares at me when I put him out"
> -- Nathalie Loiseau (French minister for European Affairs,
> explaining why she named her cat "Brexit")
>
--000000000000ad410a065839d3c0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"auto">Hi Jonathan,<div dir=3D"auto"><br></div><div dir=3D"auto"=
>Thanks for testing. That seems to confirm that /dev/wsmouse is where the =
jumps are coming from.</div><div dir=3D"auto"><br></div><div dir=3D"auto">T=
he loss of the three buttons also makes some sense. They may be part of th=
e pms0/TrackPoint interface rather than the imt0 touchpad interface. Your d=
mesg shows:</div><div dir=3D"auto"><br></div><div dir=3D"auto">=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 wsmouse0 at imt0</div><div dir=3D"auto">=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 wsmouse1 at ims0</div><div dir=3D"auto">=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 wsmouse2 at pms0</div><div dir=3D"auto"><br></div><div dir=3D"auto">Per=
haps the next test is to ignore the multiplexed /dev/wsmouse, but open /dev=
/wsmouse2 directly:</div><div dir=3D"auto"><br></div><div dir=3D"auto">=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 Section "InputClass"</div><div dir=3D"au=
to">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Identifier &quo=
t;ignore wsmouse mux"</div><div dir=3D"auto">=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 MatchDevicePath "/dev/wsmouse"</d=
iv><div dir=3D"auto">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 Option "Ignore" "true"</div><div dir=3D"auto">=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 EndSection</div><div dir=3D"auto"><br></div><div d=
ir=3D"auto">=C2=A0 =C2=A0 =C2=A0 =C2=A0 Section "InputDevice"</di=
v><div dir=3D"auto">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
Identifier "TrackPoint and buttons"</div><div dir=3D"auto">=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Driver "ws"<=
/div><div dir=3D"auto">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 Option "Device" "/dev/wsmouse2"</div><div dir=3D"au=
to">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Option "Au=
toServerLayout" "true"</div><div dir=3D"auto">=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 EndSection</div><div dir=3D"auto"><br></div><div dir=3D"auto"=
>This would leave /dev/wsmouse0 handling the touchpad through synaptics, wh=
ile /dev/wsmouse2 handles the TrackPoint and its buttons without going thro=
ugh the multiplexor.=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"aut=
o">After restarting X, does `xinput list` show both /dev/wsmouse0 and the s=
eparately configured wsmouse2, but not /dev/wsmouse?</div><div dir=3D"auto"=
><br></div><div dir=3D"auto">If so, it would be interesting to see whether =
the touchpad, buttons and TrackPoint then work without the jumps.</div><div=
dir=3D"auto"><br></div><div dir=3D"auto">I haven't tested this particu=
lar setup, so please keep the previous xorg.conf handy in case X does not a=
dd wsmouse2 this way.</div><div dir=3D"auto"><br></div><div dir=3D"auto">Re=
gards,</div><div dir=3D"auto">Kihaguru</div></div><br><div class=3D"gmail_q=
uote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, 4=
Aug 2026, 08:41 Jonathan Thornburg, <<a href=3D"mailto:dr.j.thornburg@g=
mail.com">[email protected]</a>> wrote:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex">Hi Kihaguru,<br>
<br>
Thanks for your analysis!<br>
<br>
On Sun, Aug 02, 2026 at 11:07:38PM +0300, Kihaguru Gathura wrote:<br>
> Hi Jonathan,<br>
> <br>
> The interesting part of the log may be that X is opening more than one=
<br>
> interface for the pointing devices:<br>
> <br>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/dev/wsmouse0 - imt0 touchpad, using =
synaptics<br>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/dev/wsmouse1 - ims0 report, which fa=
ils to enter native mode<br>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/dev/wsmouse - the wscons multiplexor=
<br>
> <br>
> So the touchpad may be reaching X directly through wsmouse0 and again<=
br>
> through the multiplexor. The multiplexor may also carry events from th=
e<br>
> TrackPoint at pms0. The jump when you first move the TrackPoint makes =
that<br>
> path especially suspicious.<br>
<br>
Aha!=C2=A0 That does seem "curious"....<br>
<br>
> As a quick test, run: xinput list , then disable the entry named<br>
> /dev/wsmouse, for example: xinput disable 8<br>
> <br>
> Use the actual id from `xinput list`, since it may change. This should=
<br>
> leave /dev/wsmouse0 handling the touchpad.<br>
<br>
Here's the output of 'xinput list' before disabling anything:<b=
r>
% xinput list<br>
+ Virtual core pointer=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 id=3D2=C2=A0 =C2=A0 [master pointer=
=C2=A0 (3)]<br>
|=C2=A0 =C2=A0+ Virtual core XTEST pointer=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 id=3D4=C2=A0 =C2=A0 [slave=C2=A0 pointer=C2=A0 (2)=
]<br>
|=C2=A0 =C2=A0+ /dev/wsmouse0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0id=3D7=C2=A0 =C2=
=A0 [slave=C2=A0 pointer=C2=A0 (2)]<br>
|=C2=A0 =C2=A0+ /dev/wsmouse=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 id=3D8=C2=A0 =
=C2=A0 [slave=C2=A0 pointer=C2=A0 (2)]<br>
+ Virtual core keyboard=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0id=3D3=C2=A0 =C2=A0 [master keyboard =
(2)]<br>
=C2=A0 =C2=A0 + Virtual core XTEST keyboard=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0id=3D5=C2=A0 =C2=A0 [slave=C2=A0 keyboard (3)]<br>
=C2=A0 =C2=A0 + /dev/wskbd=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 id=3D6=C2=A0=
=C2=A0 [slave=C2=A0 keyboard (3)]<br>
%<br>
<br>
After 'xinput disable 8' three things happened:<br>
* [good] the cursor no longer jumped<br>
* [neutral] the trackpoint ("nipple") becomes a no-op<br>
* [bad] the touchpad's 3 mechanical buttons also become no-ops (tapping=
<br>
=C2=A0 the touchpad seems to work, but I'm very used to using the touch=
pad's<br>
=C2=A0 mechanical buttons)<br>
<br>
After returning to the initial state with 'xinput enable 8',<br>
I tried 'xinput disable 7' (disabling /dev/wsmouse0).=C2=A0 This ha=
d<br>
different results:<br>
* [very bad] the cursor now jumps with *every* touchpad movement<br>
* [neutral] the trackpoint ("nipple") works, but the cursor jumps=
<br>
=C2=A0 with every trackpoint movement, too<br>
* [ok] the touchpad buttons work ok<br>
<br>
ciao,<br>
-- <br>
-- "Jonathan Thornburg [remove -color to reply]" <<a href=3D"m=
ailto:[email protected]" target=3D"_blank" rel=3D"noreferrer">d=
[email protected]</a>><br>
=C2=A0 =C2=A0he/him; on the west coast of Canada; <a href=3D"https://www.bk=
is-orchard.net/" rel=3D"noreferrer noreferrer" target=3D"_blank">https://ww=
w.bkis-orchard.net/</a><br>
=C2=A0 =C2=A0"He wakes me up every morning meowing to death because he=
wants to go<br>
=C2=A0 =C2=A0 out, and then when I open the door he stays put, undecided, a=
nd then<br>
=C2=A0 =C2=A0 glares at me when I put him out"<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-- Nathalie Loiseau (French minister for =
European Affairs,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 explaining why she named her cat "Brex=
it")<br>
</blockquote></div>
--000000000000ad410a065839d3c0--