2

I have an Asus Zenbook UX305 with 16.04 and Unity installed. When using the trackpad ("Elan touchpad" identified by xinput), I use my right hand for maneuvering the mouse pointer, and my left for performing left-clicks in the bottom left of the touchpad. Unfortunately, often the mouse jumps towards the bottom left of the screen just before my click is completed. Initially I thought the jump was entirely to the bottom left, but subsequently I have discovered the jump is only in that direction (by adjusting the speed of the mouse pointer).

I have tried various settings in the Mouse and touchpad settings, and also fiddling with various settings in synclient (e.g. FingerHigh), to no avail.

Generally, I remove my right hand from the touchpad before clicking with the left hand; however, sometimes perhaps the interval between the release and the click is too small, or nonexistent. My feeling is that somehow the initial pressure from my left hand is seen as pressure from a very fast motion to the lower right from the position of my right hand as I am releasing it.

I would really like to resolve this irritating behaviour.

Additional information:

$ xinput --list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Elan Touchpad id=10 [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)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ USB2.0 UVC HD Webcam id=9 [slave keyboard (3)] ↳ Asus WMI hotkeys id=11 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]

$ xinput --list-props "Elan Touchpad" Device 'Elan Touchpad': Device Enabled (137): 1 Coordinate Transformation Matrix (139): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (265): 1 Device Accel Constant Deceleration (266): 2.500000 Device Accel Adaptive Deceleration (267): 1.000000 Device Accel Velocity Scaling (268): 12.500000 Synaptics Edges (269): 123, 2974, 114, 2005 Synaptics Finger (270): 25, 30, 0 Synaptics Tap Time (271): 180 Synaptics Tap Move (272): 165 Synaptics Tap Durations (273): 180, 100, 100 Synaptics ClickPad (274): 1 Synaptics Middle Button Timeout (275): 0 Synaptics Two-Finger Pressure (276): 282 Synaptics Two-Finger Width (277): 7 Synaptics Scrolling Distance (278): 75, 75 Synaptics Edge Scrolling (279): 0, 0, 0 Synaptics Two-Finger Scrolling (280): 1, 1 Synaptics Move Speed (281): 1.000000, 1.750000, 0.053305, 0.000000 Synaptics Off (282): 2 Synaptics Locked Drags (283): 0 Synaptics Locked Drags Timeout (284): 5000 Synaptics Tap Action (285): 2, 3, 0, 0, 1, 3, 0 Synaptics Click Action (286): 1, 3, 0 Synaptics Circular Scrolling (287): 0 Synaptics Circular Scrolling Distance (288): 0.100000 Synaptics Circular Scrolling Trigger (289): 0 Synaptics Circular Pad (290): 0 Synaptics Palm Detection (291): 0 Synaptics Palm Dimensions (292): 10, 200 Synaptics Coasting Speed (293): 20.000000, 50.000000 Synaptics Pressure Motion (294): 30, 160 Synaptics Pressure Motion Factor (295): 1.000000, 1.000000 Synaptics Resolution Detect (296): 1 Synaptics Grab Event Device (297): 0 Synaptics Gestures (298): 1 Synaptics Capabilities (299): 1, 0, 0, 1, 1, 1, 1 Synaptics Pad Resolution (300): 33, 32 Synaptics Area (301): 0, 0, 0, 0 Synaptics Soft Button Areas (302): 1548, 0, 1737, 0, 0, 0, 0, 0 Synaptics Noise Cancellation (303): 18, 18 Device Product ID (257): 1267, 5 Device Node (258): "/dev/input/event7"

[Disclaimer: this is very similar to How do I stop the cursor jumping from desired location to the far left of the screen? , but we could not establish if it was the same or a different issue because the original poster stopped responding on the question.]

3
  • Steve, that's VERY different from MadBow1's use-case in yr quoted thread above. I will have a look, but I have a priori no experience with that. I only ever used one hand on my pads. Can you edit yr post by adding the outputs of: xinput --list as well as xinput --list-props "Elan ... TouchPad" ?
    – Cbhihe
    Jul 8, 2016 at 11:49
  • @Cbhihe Sorry for the delay - pasted output into question. Jul 12, 2016 at 18:27
  • 1
    I have the same problem on my Dell XPS 13 (SynPS/2 Synaptics TouchPad). Very annoying. The problem is I can't find the wrong motion/sequence that causes this. I used windows on this laptop before linux and I didn't had the problem. Now I use Ubuntu/i3. I also use right hand to move and left to click. Just before I click, the cursor jumps away.
    – roeland
    Sep 14, 2016 at 10:41

2 Answers 2

2

The event sequence you described is:

  • right hand finger drag, followed by
  • right hand finger lift, followed by
  • left hand finger touch and release (tap).

When you click using yr particular method (w/ fingers from 2 hands on the pad), make sure to tap with yr left hand finger after releasing the right hand finger contact. That should help the kernel recognize a quick tap as a left click and (I hope) differentiate between that and a trajectory sensed as continuous on the pad, going from right hand to left hand according to the sequence above.

Experiment various avenues at length or possibly change the way you work with yr touch-pad.

1) Coasting: First read the doc and make sure that "conventional coasting" is disabled. If you want coasting, make sure it is enabled as "edge coasting" only. Otherwise the type of sequence described above will lead to what I call "pointer movement leak" ("conventional coasting"), a behavior that consist in the fact that the pointer continues its rectilinear movement even after you have stopped driving it on the pad. Conventional coasting stops with a tap. "Edge-coasting" on the other hand is only activated when you apply finger pressure on a pad-edge. It stops immediately as finger pressure goes below a given value.

2) Second, tweak Synaptics Tap Durations (273): 180, 100, 100:

The 3 values are:

   Option "MaxTapTime" "integer"
          Single touch timeout or maximum time (in milliseconds) for detecting a tap.

   Option "MaxDoubleTapTime" "integer"
          Maximum time (in milliseconds) for detecting a double  tap.

   Option "ClickTime" "integer"
          Duration  of  the  mouse  click  generated  by tapping.

Try lowering the value of MaxTapTime (touch and release time) from 180 to, say, 90. It will make yr pad more sensitive to taps, hopefully helping the kernel discriminate between a quick tap and a change of finger during pointer movement. That will certainly have side effects, which you can gauge by referring to this.

If this does not give you satisfactory results, try to:

3) Turn off Synaptics Pressure Motion (294): 30, 160:

  • Synaptics Pressure Motion: 32 bit, 2 values, min, max.

All the tools and documentation you need are referenced and demonstrated in this answer as well as in a previous one already cited by you.

NOTE: I am not sure anybody can help you anymore than that, as the solution is very much dependent on trial and error and yr personal taste. For that reason this type of question does not elicit that much interest. This is understandably important to you, but I am afraid that getting into such particulars and specifics may fall outside the scope of general interest.

2
  • Hey @Cbhihe: I finally got to experimenting with this the other day, and disabling coasting had a dramatic effect on the occurrence of this problem, so very many thanks! Nov 9, 2016 at 13:28
  • @stevekroon: :-) Glad I could be of help. ^^
    – Cbhihe
    Nov 12, 2016 at 19:18
1

I had this problem with a Synaptics touchpad and what resolved it for me was to change the noise cancellation values. After a fresh install the Noise cancellation values were:

Synaptics Noise Cancellation (353): 8, 8

So I changed the noise cancellation values to 20, 20 with the command

xinput --set-prop 13 "Synaptics Noise Cancellation" 20 20

As they say, your mileage may vary...

Take care.

2
  • This might work until the next logout, would be good to now how to make it persistent. You should adapt the command to the specific case, here device-id is 10for the touchpad. Property-values are 18 18 already, so very near to your suggested values, but as you mentioned, mileage may vary.
    – mook765
    Sep 28, 2016 at 1:57
  • This also seemed to help me with a Synaptics trackpad as well although the default numbers were quite a bit higher.
    – Ev-
    Mar 7, 2017 at 1:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.