我喜欢我的全新笔记本电脑。快速处理器、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
您的鼠标仍应支持轻敲和物理点击。现在,如果您在尝试点击其他地方时键入内容,它不会失去焦点(物理点击仍会使其失去焦点,但我尚未弄清楚为什么会这样。但是这对我来说不是什么大问题,因为我在键入内容时从不会用力靠在键盘上,从而导致鼠标以这种方式点击)。现在您只需要在启动时运行它,这样就不会同时检测到两个不同的鼠标。