我想在键入时停用触摸板。我尝试了这个:
syndaemon -i 1 -d -t -K
它应禁用触摸板上的点击和滚动1秒钟,并忽略修饰键和组合键,但在进行上述设置后,则syndaemon
不会进行任何更改。触摸板始终处于活动状态,非常烦人。
我在Dell Precision 5510上使用Ubuntu 16.04。
syndaemon -i 1.0 -d -K
我想在键入时停用触摸板。我尝试了这个:
syndaemon -i 1 -d -t -K
它应禁用触摸板上的点击和滚动1秒钟,并忽略修饰键和组合键,但在进行上述设置后,则syndaemon
不会进行任何更改。触摸板始终处于活动状态,非常烦人。
我在Dell Precision 5510上使用Ubuntu 16.04。
syndaemon -i 1.0 -d -K
Answers:
您可能正在运行两个触摸板驱动程序,然后syndaemon在其中与错误的一个交互。我在Dell XPS 13上遇到了相同的问题,该线程(http://ubuntuforums.org/showthread.php?t=2316240)帮助了我。
如果您还看到两个触摸板设备,请尝试禁用其中一个。由于您使用的是其他计算机,因此链接中的说明实际上可能适用于您,也可能并不适用。
从所提到的职位,过程是:
/usr/share/X11/xorg.conf.d/51-synaptics-quirks.conf
使用文本编辑器以root身份打开文件,插入以下文本:
# Disable generic Synaptics device, as we're using
# "DLL0704:01 06CB:76AE Touchpad"
# Having multiple touchpad devices running confuses syndaemon
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
MatchProduct "SynPS/2 Synaptics TouchPad"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/event*"
Option "Ignore" "on"
EndSection
使用sudo systemctl restart lightdm
Credit 命令从ubuntuforums.org 重新启动或重新启动Xorg 。
自2018年1月以来,戴尔在其知识库中提供了有关Ubuntu触摸板/鼠标问题的官方页面。该页面介绍了此修复程序以禁用“ SynPS / 2 Synaptics触摸板”,还建议将其移至libinput而不是作为鼠标垫驱动程序的synaptics。
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
干杯!
我正在使用ubuntu 17.10并尝试了此处建议的其他解决方案,大多数情况下不起作用。在ubuntu 17.10中启动时,特别是触摸板指示器软件只能禁用触摸板,而我没有找到任何方法来重新启用它,而无需重新启动笔记本电脑。现在我发现了这个解决方案,我认为它现在仍然可以很好地工作:只需使用此命令,
synclient PalmDetect = 1
这样至少可以防止不必要地在触摸板上敲击手掌,最终可以延长使用寿命。
在查看了“ xinput”的选项之后,我找到了一个有效且简单的解决方案,使用Ubuntu 16.04和Lubuntu 16.04禁用Synaptics触摸板
在终端窗口中,输入“ sudo -s”并输入密码,以授予自己管理权限。
使用您喜欢的编辑器(例如leafpad或gedit)创建一个新的脚本文件:
leafpad /usr/local/bin/tpadoff
并插入以下内容:
#!/bin/bash
#/usr/local/bin/tpadoff - turn off touchpad
xinput --disable 'SynPS/2 Synaptics TouchPad'
保存文件并退出编辑器。然后输入命令:
chmod 755 /usr/local/bin/tpadoff
使文件可执行。您可以重复创建一个tpadon文件,只需将“ --disable”更改为“ --enable”即可。
完成后,“退出”终端窗口以禁用管理员访问权限。
可以通过打开新的终端窗口并使用您喜欢的编辑器来创建桌面条目(在此示例中,我再次使用Leafpad):
cd Desktop
leafpad tpadoff.desktop
并插入以下文本:[Desktop Entry] Name = TouchPad Off Comment = Turn-Off Touchpad Exec = / usr / local / bin / tpadoff Terminal = false Type = Application
保存文件并退出编辑器。然后输入以下命令:
chmod 775 tpadoff.desktop
您也可以重复创建一个tpadon.desktop,将所有“关闭”引用更改为“打开”。
完成后,您将有两种方法来关闭(以及选择打开)触摸板,方法是双击桌面图标或在终端窗口中输入“ tpadoff”。
如果触摸板不同,则可能必须在终端窗口中使用“ xinput”来找到触摸板的确切语法。然后编辑“ / usr / local / bin / tpadoff”文件以匹配xinput报告的内容。
在寻找解决方案数月之后,我决定编写一个简单的Python程序来在键入时禁用触摸板。将程序添加到“启动应用程序”中,以使其在每次启动计算机时运行。您需要运行xinput list
以确定键盘的ID,在我的情况下为17。
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft® Nano Transceiver v1.0 id=11 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft® Nano Transceiver v1.0 id=12 [slave pointer (2)]
⎜ ↳ DLL082A:01 06CB:76AF Touchpad id=14 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=18 [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)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Microsoft Microsoft® Nano Transceiver v1.0 id=10 [slave keyboard (3)]
↳ Integrated_Webcam_HD id=13 [slave keyboard (3)]
↳ Intel Virtual Button driver id=15 [slave keyboard (3)]
↳ Intel HID events id=16 [slave keyboard (3)]
**↳ AT Translated Set 2 keyboard id=17 [slave keyboard (3)]**
↳ Dell WMI hotkeys id=19 [slave keyboard (3)]
↳ Microsoft Microsoft® Nano Transceiver v1.0 id=20 [slave keyboard (3)]
这是程序
import time
import subprocess
import threading
def main():
subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true', shell=True)
p = subprocess.Popen('xinput test 17', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
clickTime = [0, 0]
def checkTime():
keys = [37, 50, 62, 64, 105, 108, 133]
while True:
out = p.stdout.readline()
if len(out) < 1:
break
key = int(out.split()[-1])
if key not in keys:
clickTime[0] = time.time()
t = threading.Thread(target=checkTime)
t.start()
lastTime = 0
touchpad = True
while True:
inactive = time.time() - clickTime[0]
# print ('inactive for', inactive)
if inactive > 1:
if not touchpad:
print ('Enable touchpad')
subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true', shell=True)
touchpad = True
else:
if touchpad:
print ('Disable touchpad')
subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click false', shell=True)
touchpad = False
time.sleep(0.5)
retval = p.wait()
if __name__ == '__main__':
main()
在Ubuntu 19.04中,我发现仅满足“我的需要”就足以禁用“点击以点击”功能:
但是,这样做的结果是您实际上必须使用触摸板的按钮(希望您有按钮)才能进行单击。对我来说,这是一个公平的权衡。
如果您实际上没有“左右”点击按钮(与触摸板分开),则可以校准触摸板的灵敏度。我在此bug报告中从Peter Hutterer那里了解到这一点。
我希望笔记本电脑制造商不要制造不带触控板的笔记本电脑。这些与键盘按键(而不是后退)齐平的触摸板是设计缺陷。
请让您的笔记本电脑制造商知道由于这种不良设计给您带来的麻烦,否则他们将在以后的型号中盲目地这样做。
对于Kubuntu用户...
在Kubuntu 16.04上-要在输入时禁用触摸板,我必须清除设置->输入设备->触摸板->启用/禁用触摸板下的复选框“仅禁用水龙头和滚动”。看起来似乎很明显,但是...
xinput list |
while read line; do
if [[ $line == *Touchpad* ]]; then
tid="$(echo $line | cut -d '=' -f 2 | cut -c 1-2)"
xinput set-prop $tid "Device Enabled" 0
fi
done
或更简洁
xinput list | sed -nre 's/^.*Touchpad.*\sid=(\S+).*$/\1/p' | xargs -I{} -- xinput set-prop {} 'Device Enabled' 0