ELAN 触摸板 - 打字时禁用不起作用?

ELAN 触摸板 - 打字时禁用不起作用?

我喜欢我的全新笔记本电脑。快速处理器、m.2 ssd、内存充足,xUbuntu 运行良好。

但是,触控板让我抓狂!当我打字时,鼠标点击它所在的任何窗口。最糟糕的是,应该解决此问题的“打字时禁用触控板”功能不起作用。

让我们从一些规格开始:

#uname -a
Linux PickledPeanuts 4.4.0-45-generic #66-Ubuntu SMP Wed Oct 19 14:12:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
#cat /etc/issue
Ubuntu 16.04.1 LTS \n \l

#ps ax|grep syndaemo
13764 pts/6    S+     0:00 syndaemon -i 3 -KR
13793 pts/2    S+     0:00 grep --color=auto syndaemo
#xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN1010:00 04F3:3012 Touchpad            id=12   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech 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)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [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)]
    ↳ DELL Wireless hotkeys                     id=16   [slave  keyboard (3)]
#ps ax|grep wm
 2062 ?        S      0:15 xfwm4 --replace
13860 pts/2    S+     0:00 grep --color=auto wm
#dmesg|grep -i elan
[    1.604814] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x4d5f02)
[    1.617181] psmouse serio1: elantech: Synaptics capabilities query result 0x00, 0x15, 0x10.
[    1.629063] psmouse serio1: elantech: Elan sample query result 0c, 02, 75
[    1.692084] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input6
[    2.194620] input: ELAN1010:00 04F3:3012 Touchpad as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-4/i2c-ELAN1010:00/0018:04F3:3012.0001/input/input12
[    2.194862] hid-multitouch 0018:04F3:3012.0001: input,hidraw0: I2C HID v1.00 Mouse [ELAN1010:00 04F3:3012] on i2c-ELAN1010:00
#
#synclient 
Parameter settings:
    LeftEdge                = 128
    RightEdge               = 3092
    TopEdge                 = 130
    BottomEdge              = 2292
    FingerLow               = 1
    FingerHigh              = 1
    MaxTapTime              = 180
    MaxTapMove              = 177
    MaxDoubleTapTime        = 100
    SingleTapTimeout        = 180
    ClickTime               = 100
    EmulateMidButtonTime    = 0
    EmulateTwoFingerMinZ    = 282
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = 80
    HorizScrollDelta        = 80
    VertEdgeScroll          = 1
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 0
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0496401
    TouchpadOff             = 1
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 2
    RBCornerButton          = 3
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 3
    TapButton3              = 0
    ClickFinger1            = 1
    ClickFinger2            = 3
    ClickFinger3            = 0
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 0
    PalmMinWidth            = 10
    PalmMinZ                = 200
    CoastingSpeed           = 20
    CoastingFriction        = 50
    PressureMotionMinZ      = 30
    PressureMotionMaxZ      = 160
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    ResolutionDetect        = 1
    GrabEventDevice         = 0
    TapAndDragGesture       = 1
    AreaLeftEdge            = 0
    AreaRightEdge           = 0
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
    HorizHysteresis         = 20
    VertHysteresis          = 20
    ClickPad                = 1
    RightButtonAreaLeft     = 1610
    RightButtonAreaRight    = 0
    RightButtonAreaTop      = 1986
    RightButtonAreaBottom   = 0
    MiddleButtonAreaLeft    = 0
    MiddleButtonAreaRight   = 0
    MiddleButtonAreaTop     = 0
    MiddleButtonAreaBottom  = 0
#

请注意,ETPS/2 Elantech 触摸板在鼠标和触摸板设置窗口中被禁用。当 ELAN1010:00 04F3:3012 触摸板被禁用时,触摸板不再起作用(因此,这是使用的触摸板)。

我已尝试过的方法(但没有什么不同):

  • 界面中的标准“打字时禁用触摸板”选项
  • 禁用上述操作并运行 syndaemon -i 3 -DK
  • 禁用上述操作并运行 syndaemon -i 3
  • 以 root 身份运行 syndaemon(以防万一)

我如何知道它是否有效/无效:

  • 连续点击窗口中的一个键
  • 执行上述操作的同时,点击另一个窗口中的触摸板
  • 如果焦点转移到其他窗口,则触摸板不会在打字时禁用

对于可能发生的情况,有几种理论:

  • 触摸板驱动程序根本无法正常工作
  • syndaemon 禁用错误的触摸板条目(如何测试/修复?)
  • syndaemon 未检测键盘活动(如何测试/修复?)

我不想在寻求帮助时表现得像个混蛋,但在有人建议“创建一个批处理文件来禁用触摸板并将其映射到一个键”的解决方法之前。我已经知道了,但这对我来说不是一个可行的解决方案。我大部分时间都花在点击、输入几行、再次点击等上。我特别想在打字时禁用触摸板。我技术水平很高,使用不同版本的 Linux 大约 18 年,编程也有 20 年了。但是,我不知道所涉及的代码库,希望有人能帮助我找到这个问题。

答案1

嗨,我遇到了同样的问题,我找到了解决方案。我读到过一篇文章,说当 xinput 下列出多个鼠标硬件时,鼠标驱动程序会变得混乱。

所以我刚刚对其进行了测试,并执行了以下操作以阻止在键入时光标焦点移动到其他地方:

从您的xinput list命令中我看到需要禁用的触摸板是 ID 14。因此只需在终端中运行:

xinput set-prop 14 "Device Enabled" 0

您的鼠标仍应支持轻敲和物理点击。现在,如果您在尝试点击其他地方时键入内容,它不会失去焦点(物理点击仍会使其失去焦点,但我尚未弄清楚为什么会这样。但是这对我来说不是什么大问题,因为我在键入内容时从不会用力靠在键盘上,从而导致鼠标以这种方式点击)。现在您只需要在启动时运行它,这样就不会同时检测到两个不同的鼠标。

相关内容