advancingu / XPS13Linux

Public collection of issues with running Linux on a Dell XPS 13 (2015 edition)
131 stars 3 forks source link

thumb strokes on frame between touchpad and space bar generate events #14

Closed anaran closed 9 years ago

anaran commented 9 years ago

Here's the evidence. Hope this helps to better understand and fix the issue.

Make sure to enable

in Super+A mouse & touchpad for this experiment to work.

I would appreciate if others (especially those on Ubuntu 15.04 and XPS 13 9343) could provide a few output lines of their test results.

It does not happen right away, but moving or drumming the thumbs gently along the frame between space bar and touchpad should start generating events (moves and clicks) within a few seconds.

adrian@adrian-xps-13-9343:~$ xinput list
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=10   [slave  pointer  (2)]
⎜   ↳ DLL0665:01 06CB:76AD UNKNOWN              id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Video Bus                                   id=7    [slave  keyboard (3)]
    ↳ Power Button                                id=8    [slave  keyboard (3)]
    ↳ Sleep Button                                id=9    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                        id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=13   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                            id=14   [slave  keyboard (3)]
adrian@adrian-xps-13-9343:~$ xinput --test 12 # thumb strokes on frame between touchpad and space bar generate events
motion a[0]=406 
motion a[0]=406 
motion a[0]=407 
motion a[0]=407 
motion a[0]=408 
motion a[0]=408 
motion a[0]=409 
motion a[0]=409 
motion a[0]=410 
motion a[0]=410 
motion a[0]=411 
motion a[0]=412 
motion a[0]=412 
motion a[0]=412 
motion a[0]=413 
motion a[0]=413 
motion a[0]=414 
motion a[0]=414 
motion a[0]=414 
motion a[0]=415 
motion a[0]=415 
button press   1 
button release 1 
button press   1 
button release 1 
^C
adrian@adrian-xps-13-9343:~$ 
dchambers commented 9 years ago

@anaran, that's a very surprising result! @MarcusMoeller said he was seeing trackpad jumpiness using a 15.04 Live USB key, so maybe he would be able to try and replicate these results?

advancingu commented 9 years ago

I can't reproduce this. Are you sure your skin isn't touching the touchpad at all while doing this exercise? There isn't exactly much space between the touchpad and keyboard.

anaran commented 9 years ago

@advancingu please provide your output of the xinput list command. There isn't much space, true, but enough to rest my thumbs on without touching the touch-pad. Perhaps this is a proximity-pad(TM), not a touch-pad.

anaran commented 9 years ago

@advancingu do you get events listed when you are taping or dragging on the touchpad? If not, you might have to use a different id (e.g. 14 instead of 12) in the xinput --test ID command. During my original experiment I had psmouse blacklisted.

I have undone that and now I still see id 12, but 14 as well.

No events get listed for id 14, however, only for 12.

Here is my current setup.

adrian@adrian-xps-13-9343:/etc/modprobe.d$ xinput list
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=10   [slave  pointer  (2)]
⎜   ↳ DLL0665:01 06CB:76AD UNKNOWN              id=12   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Video Bus                                   id=7    [slave  keyboard (3)]
    ↳ Power Button                                id=8    [slave  keyboard (3)]
    ↳ Sleep Button                                id=9    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                        id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=13   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                            id=15   [slave  keyboard (3)]
adrian@adrian-xps-13-9343:/etc/modprobe.d$ 
advancingu commented 9 years ago

No events for the ID of device DLL0665:01 06CB:76AD UNKNOWN unless I explicitly touch the touchpad. Perhaps your touchpad has a physical fault?

anaran commented 9 years ago

Hi @MarcusMoeller, would be great if you could try this experiment as well. Especially the upper right corner above the touchpad is very likely to produce these spurious movement and click events for my system.

anaran commented 9 years ago

There's a video at https://youtu.be/0zNgoMJT_Ck now where I make a fool of myself demonstrating the spurious move and click events.

Cursor on the screen starts moving 20 seconds into the video, then around 24 seconds the focus suddenly jumps from the right terminal window (where I'm typing) to the left.

In real world scenarios this has, for example, caused me killing threads in Thunderbird when the cursor suddenly jumped from a Firefox window (where I was typing), made a text selection, and I typed the letter k (the shortcut for kill thread in Thunderbird), believing I was still typing text in Firefox.

I hope to show with this video that I am steering clear with my palms and not directly touching the touchpad with my thumbs.

The effects of spurious cursor moves and tap clicks should also be visible quite well.

Capturing this on video was a challenge for several reasons:

dchambers commented 9 years ago

Hi @anaran, thanks for sharing this video. It wasn't obvious to me that you weren't touching the trackpad when the cursor moved. In fact, the cursor moves to the right at exactly the same time your thumb seems to swipe right near, or on, the trackpad. Obviously, I can't feel what you're feeling, but it would actually seem like evidence supporting the fact that this is an ergonomic rather than a technical problem, in that the trackpad is too close to the keyboard for touch typing.

anaran commented 9 years ago

I was finally able to resolve the spurious clicks and cursor moves.

Setting AreaTopEdge to 10 (TopEdge takes no effect whatsoever) was sufficient for all those spurious events to vanish.

I also verified that blacklisting psmouse was not necessary.

As an additional ergonomic improvement I moved the menu button (3) to RTCornerButton, and middle button to paste text (2) to LTCornerButton.

These changes to /etc/X11/xorg.conf.d/50-synaptics.conf did not take effect until I added the catchall.

Here is the current version of the file I am running:

/etc/X11/xorg.conf.d/50-synaptics.conf

Section "InputClass"
    Identifier "touchpad catchall"
    Driver "synaptics"
    MatchIsTouchpad "on"
    # MatchDevicePath "/dev/input/event*"
        Option "AccelFactor" "0.2"
        Option "RTCornerButton" "3"
        Option "RBCornerButton" "0"
        Option "LTCornerButton" "2"
        Option "LBCornerButton" "0"
    Option "AreaTopEdge" "10"
EndSection
advancingu commented 9 years ago

Thanks for posting your config and good to see it's resolved.