Ubuntu – Trackpad button / click & drag doesn’t work, sends key event (Surface Pro2 Ubuntu 16.04)

gimpsurfacetouchpad

I've been using Ubuntu on my Surface Pro 2 for a few years (since 14.04), and it's mostly working fine out of the box now with 16.04, (kernel 4.3+). However one thing which which really bugs me is the trackpad button.

  • tap to click (anywhere on the pad) works fine
  • pressing the physical click button brings up the overlay below. Some apps (eg nautilus, firefox, sublimetext) register the click and the click works fine (despite the overlay). Other apps (eg gimp) just don't respond to the click at all (but do respond to the tap)
  • click and drag also brings up the same overlay, and works in some apps (eg nautilus, firefox, sublimetext), but again completely ignored in others (eg gimp).
  • double-tap (anywhere on the pad) hold and drag does not work (doesn't do click & drag) in any situation
  • two finger scroll works fine
  • I dont have a touchpad tab in Settings > Mouse & Touchpad
  • I'm using gnome 3 desktop

ive been carrying a mouse around with me for years, just to be able to do simple click and drag in gimp, but ive had enough! what does this overlay mean? how can i get click and drag in gimp with this trackpad?

UPDATE: From xinput –test I've seen that the touchpad button also sends a key event. How can i prevent this?

enter image description here


uname -a

Linux MSA-SP2-UBUNTU 4.10.0-40-generic #44~16.04.1-Ubuntu SMP Thu Nov 9 15:37:44 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

xinput

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ MICROSOFT SAM                             id=9    [slave  pointer  (2)]
⎜   ↳ MICROSOFT SAM                             id=10   [slave  pointer  (2)]
⎜   ↳ Atmel Atmel maXTouch Digitizer            id=11   [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)]
    ↳ Front LifeCam                             id=12   [slave  keyboard (3)]
    ↳ Rear LifeCam                              id=13   [slave  keyboard (3)]

xinput –test 10

key release 36 
motion a[0]=483 a[1]=646 
motion a[0]=480 a[1]=647 
motion a[0]=478 a[1]=648 
motion a[0]=475 a[1]=649 
motion a[0]=473 a[1]=650 
motion a[0]=467 a[1]=644 
motion a[0]=468 a[1]=643 
motion a[1]=642 
motion a[1]=641 

# tapping
button press   1 
button release 1 
motion a[0]=467 
motion a[0]=466 
motion a[0]=465

# clicking touchpad button 
key press   201 
button press   1 
key release 201 

# releasing touchpad button
button release 1 
motion a[0]=463 
motion a[0]=462 

xinput –watch-props 10

Device 'MICROSOFT SAM':
    Device Enabled (139):   1
    Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (267): 0
    Device Accel Constant Deceleration (268):   1.000000
    Device Accel Adaptive Deceleration (269):   1.000000
    Device Accel Velocity Scaling (270):    10.000000
    Device Product ID (259):    1118, 1961
    Device Node (260):  "/dev/input/event5"
    Evdev Axis Inversion (271): 0, 0
    Evdev Axes Swap (273):  0
    Axis Labels (274):  "Rel X" (149), "Rel Y" (150), "Rel Horiz Wheel" (292), "Rel Dial" (293), "Rel Vert Wheel" (294)
    Button Labels (275):    "Button Left" (142), "Button Middle" (143), "Button Right" (144), "Button Wheel Up" (145), "Button Wheel Down" (146), "Button Horiz Wheel Left" (147), "Button Horiz Wheel Right" (148), "Button Side" (290), "Button Extra" (291), "Button Unknown" (262), "Button Unknown" (262), "Button Unknown" (262), "Button Unknown" (262)
    Evdev Scrolling Distance (276): 1, 1, 1
    Evdev Middle Button Emulation (277):    0
    Evdev Middle Button Timeout (278):  50
    Evdev Middle Button Button (279):   2
    Evdev Third Button Emulation (280): 0
    Evdev Third Button Emulation Timeout (281): 1000
    Evdev Third Button Emulation Button (282):  3
    Evdev Third Button Emulation Threshold (283):   20
    Evdev Wheel Emulation (284):    0
    Evdev Wheel Emulation Axes (285):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (286):    10
    Evdev Wheel Emulation Timeout (287):    200
    Evdev Wheel Emulation Button (288): 4
    Evdev Drag Lock Buttons (289):  0

cat /proc/bus/input/devices

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/PNP0C0D:00/input/input0
U: Uniq=
H: Handlers=event0 
B: PROP=0
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
U: Uniq=
H: Handlers=kbd event1 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
U: Uniq=
H: Handlers=kbd event2 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0003 Vendor=045e Product=07a9 Version=0111
N: Name="MICROSOFT SAM"
P: Phys=usb-0000:00:14.0-3/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.1/0003:045E:07A9.0002/input/input3
U: Uniq=0.1.0000
H: Handlers=sysrq kbd mouse0 event3 
B: PROP=0
B: EV=10001f
B: KEY=c03 30001 0 300000000000000 200e800000000000 100000020000000
B: REL=3
B: ABS=1000003
B: MSC=10

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input4
U: Uniq=
H: Handlers=kbd event4 
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0003 Vendor=045e Product=07a9 Version=0111
N: Name="MICROSOFT SAM"
P: Phys=usb-0000:00:14.0-3/input2
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.2/0003:045E:07A9.0003/input/input5
U: Uniq=0.1.0000
H: Handlers=sysrq kbd mouse1 event5 leds 
B: PROP=0
B: EV=12001f
B: KEY=3f0003007f 0 0 483ffff17aff32d bf54444600000000 1f0001 130f938b17c007 ffe77bfad9415fff febeffdff3cfffff fffffffffffffffe
B: REL=1c3
B: ABS=ffffff0100000000
B: MSC=10
B: LED=7

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card1/input6
U: Uniq=
H: Handlers=event6 
B: PROP=0
B: EV=21
B: SW=10

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card1/input7
U: Uniq=
H: Handlers=event7 
B: PROP=0
B: EV=21
B: SW=4

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel HDMI HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:03.0/sound/card0/input8
U: Uniq=
H: Handlers=event8 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel HDMI HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:03.0/sound/card0/input9
U: Uniq=
H: Handlers=event9 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel HDMI HDMI/DP,pcm=8"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:03.0/sound/card0/input10
U: Uniq=
H: Handlers=event10 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0003 Vendor=03eb Product=8209 Version=0111
N: Name="Atmel Atmel maXTouch Digitizer"
P: Phys=usb-0000:00:14.0-4/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-4/2-4:1.0/0003:03EB:8209.0004/input/input11
U: Uniq=
H: Handlers=mouse2 event11 
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=3273800000000003

I: Bus=0003 Vendor=045e Product=0794 Version=0306
N: Name="Front LifeCam"
P: Phys=usb-0000:00:14.0-5/button
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input12
U: Uniq=
H: Handlers=kbd event12 
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0003 Vendor=045e Product=0795 Version=0307
N: Name="Rear LifeCam"
P: Phys=usb-0000:00:14.0-6/button
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-6/2-6:1.0/input/input13
U: Uniq=
H: Handlers=kbd event13 
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0

Best Answer

Related Question