如何摆脱联想触摸板反应前的延迟方式?

Jon*_*fer 6 drivers touchpad xinput

在我的 Lenovo T460p 上,在注册触摸板移动或滚动之前,我有一个“延迟方式”。注意:不要将此延迟方式与触摸板的非活动区域混淆,因为可通过 synclient 配置并用于例如点击板功能。这更像是操纵杆的“死区”,只有在一定量的移动后才会做出反应。

当我触摸垫并开始移动我的手指时,起初什么也没有发生。在鼠标指针响应之前,我必须将手指移动几毫米。然后它会完全记录移动,这意味着每当我开始使用触摸板时,我都会在指针移动中跳过数十个像素。这使得触摸板无法用于任何“精确”工作,例如点击选项卡上的关闭按钮。

这也会发生在我让手指在一个动作中停留一秒钟左右之后。双指滚动也会发生同样的情况。这些是 xinput 设置:

Device 'SynPS/2 Synaptics TouchPad':
    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 (275): 1
    Device Accel Constant Deceleration (276):   2.500000
    Device Accel Adaptive Deceleration (277):   1.000000
    Device Accel Velocity Scaling (278):    12.500000
    Synaptics Edges (297):  1574, 5369, 1354, 4571
    Synaptics Finger (298): 25, 30, 0
    Synaptics Tap Time (299):   180
    Synaptics Tap Move (300):   254
    Synaptics Tap Durations (301):  180, 100, 100
    Synaptics ClickPad (302):   0
    Synaptics Middle Button Timeout (303):  75
    Synaptics Two-Finger Pressure (304):    282
    Synaptics Two-Finger Width (305):   7
    Synaptics Scrolling Distance (306): 115, 115
    Synaptics Edge Scrolling (307): 0, 0, 0
    Synaptics Two-Finger Scrolling (308):   1, 1
    Synaptics Move Speed (309): 1.000000, 1.750000, 0.034590, 0.000000
    Synaptics Off (310):    0
    Synaptics Locked Drags (311):   0
    Synaptics Locked Drags Timeout (312):   5000
    Synaptics Tap Action (313): 0, 0, 0, 0, 1, 3, 2
    Synaptics Click Action (314):   1, 3, 2
    Synaptics Circular Scrolling (315): 0
    Synaptics Circular Scrolling Distance (316):    0.100000
    Synaptics Circular Scrolling Trigger (317): 0
    Synaptics Circular Pad (318):   0
    Synaptics Palm Detection (319): 0
    Synaptics Palm Dimensions (320):    10, 200
    Synaptics Coasting Speed (321): 20.000000, 50.000000
    Synaptics Pressure Motion (322):    30, 160
    Synaptics Pressure Motion Factor (323): 1.000000, 1.000000
    Synaptics Grab Event Device (324):  0
    Synaptics Gestures (325):   1
    Synaptics Capabilities (326):   1, 0, 0, 1, 1, 1, 1
    Synaptics Pad Resolution (327): 65, 44
    Synaptics Area (328):   0, 0, 0, 0
    Synaptics Noise Cancellation (329): 28, 28
    Device Product ID (267):    2, 7
    Device Node (266):  "/dev/input/event1"
Run Code Online (Sandbox Code Playgroud)

有没有人解决这个问题?

我曾尝试将降噪设置为0, 0,但这没有帮助。

这是 Debian 测试(拉伸)。Fedora 24 Workstation Live Image 也显示了同样的问题。

2019-11-20:问题依旧。这是当我在触摸板上不停地上下滚动手指时光标行为的屏幕截图(没有“移动”,只是滚动指尖)。

我仍在进行 Debian 测试(现在是靶心)。

Tha*_*awn 0

这可能是由 USB 电源管理引起的。

尝试暂时禁用 USB 电源管理并查看问题是否消失:

首先使用lsusb(包的一部分usbutils)来识别您的触摸板使用的端口:

Bus 002 Device 003: ID 18a5:0245 Verbatim, Ltd 
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Run Code Online (Sandbox Code Playgroud)

在我的例子中,这将是总线 001 设备 003 上的罗技统一接收器。现在使用您设备的供应商 ID 在 /sys/ 中找到相应的设备(在我的例子中,id 是046d):

grep 046d /sys/bus/usb/devices/*/idVendor

> /sys/bus/usb/devices/1-1.5/idVendor:046d
Run Code Online (Sandbox Code Playgroud)

现在告诉内核保持设备始终打开:

echo on >/sys/bus/usb/devices/1-1.5/power/control
Run Code Online (Sandbox Code Playgroud)

如果这有帮助,您可以在笔记本电脑模式工具中禁用自动挂起。编辑/etc/laptop-mode/conf.d/runtime-pm.conf并添加AUTOSUSPEND_RUNTIME_DEVID_BLACKLIST="046d:c52b"替换046d:c52b为 给定的设备的设备 ID 的位置lsusb。就我而言,我使用了更通用的参数来禁用所有人机界面设备和存储设备的自动挂起:AUTOSUSPEND_RUNTIME_DEVTYPE_BLACKLIST="usbhid usb-storage"