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?