使用触摸板时,鼠标指针在单击左键之前跳转到左下方

使用触摸板时,鼠标指针在单击左键之前跳转到左下方

我有一台安装了 16.04 和 Unity 的华硕 Zenbook UX305。使用触控板(标识为 的“Elan 触控板” xinput)时,我用右手操纵鼠标指针,用左手在触控板的左下角执行左键单击。不幸的是,鼠标经常在我完成单击之前跳转到屏幕的左下角。最初我以为跳转到了左下角,但后来我发现跳转只在那个方向(通过调整鼠标指针的速度)。

我尝试了鼠标和触摸板设置中的各种设置,并且摆弄了 synclient 中的各种设置(例如 FingerHigh),但都无济于事。

通常,我会先将右手从触摸板上移开,然后再用左手点击;但是,有时释放和点击之间的间隔可能太短,或者没有间隔。我的感觉是,不知何故,我左手的初始压力被看作是从我释放右手时的位置向右下方快速移动的压力。

我真的很想解决这种令人恼火的行为。

附加信息:

$ 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"

[免责声明:这与如何阻止光标从所需位置跳转到屏幕最左侧?,但我们无法确定这是否是同一个问题还是不同的问题,因为原始发帖人已停止对该问题的回应。

答案1

您描述的事件顺序是:

  • 右手手指拖动,然后
  • 右手指抬起,然后
  • 左手手指触摸并释放(轻敲)。

当你使用特定方法点击时(用两只手的手指放在触控板上),请确保用左手手指点击释放右手手指接触。这应该有助于内核将快速点击识别为左键单击,并且(我希望)区分这与在触摸板上感觉为连续的轨迹,即按照上述顺序从右手到左手。

尝试各种途径最后或者可能改变您使用触摸板的方式。

1)滑行:首先阅读文档并确保“常规滑行”已禁用。如果您想要滑行,请确保已启用它,如下所示“边缘滑行”仅此而已。否则,上述类型的序列将导致我所说的“指针移动泄漏”(“常规滑行”),这种行为包括即使您停止在垫子上驱动指针,指针仍会继续其直线运动。轻敲一下即可停止常规滑行。 “边缘滑行”另一方面,只有当您用手指按压触摸板边缘时,触摸板才会激活。当手指压力低于给定值时,触摸板会立即停止。

2)第二,调整Synaptics Tap Durations (273): 180, 100, 100

这 3 个值是:

   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.

尝试将(触摸和释放时间)的值MaxTapTime从 180 降低到 90。这将使你的键盘对点击更加敏感,希望能够帮助内核在指针移动期间区分快速点击和手指变化。这肯定会产生副作用,你可以通过参考来判断

如果这不能给您带来满意的结果,请尝试:

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

  • Synaptics 压力运动:32 位,2 个值,最小值,最大值。

您需要的所有工具和文档都在此答案中引用和演示,以及前一个已被您引用。

笔记:我不确定是否有人能帮到你,因为解决方案很大程度上取决于反复试验和你的个人品味。因此,这类问题不会引起太大的兴趣。这对你来说很重要,但我担心深入探讨这些细节和具体问题可能超出了一般人的兴趣范围。

答案2

我在使用 Synaptics 触摸板时遇到了这个问题,解决这个问题的方法是更改​​噪音消除值。全新安装后,噪音消除值为:

Synaptics Noise Cancellation (353): 8, 8

所以我用命令将噪音消除值改为 20, 20

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

正如他们所说,您的里程可能会有所不同......

小心。

相关内容