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
'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?
-- 
-- "Jonathan Thornburg [remove -color to reply]" <[email protected]>
   he/him; on the west coast of Canada; https://www.bkis-orchard.net/
   "!07/11 PDP a ni deppart m'I !pleH" -- slashdot.org page footer, 2022-10-16
   "eHpl !'I mrtpaep dnia P PD1 /107" -- slightly more plausible message given
                                         the PDP-11's little-endian byte order

Reply via email to