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?

Reply via email to