我找到了一种方法来做这个:
首先,打开终端,并打印出所有的输入设备,以找到你需要禁用的输入设备的ID。在终端中输入:
xinput --list
下一步:注意在每个输入设备的一列中,它都标有id=X。您需要找到与您想要禁用的输入设备相对应的设备ID(可能是类似于“触摸板”的名称)。然后,在以下命令中将X替换为表示您想要禁用的输入设备的ID号码。
xinput disable X
注意:如果您不确定应该使用哪个设备ID来禁用触摸板,那么您可以通过测试随机的ID并查看鼠标板是否仍然工作来找出。确保您没有进行任何重要操作。保存所有工作,并准备好在禁用键盘等操作时重新启动计算机。(如果无法输入终端,则可能会遇到启用它的困难。
然后,您将需要运行此最后一行(感谢Arch Stanton的指正!)
xinput enable X
原因:我迫切需要解决这个问题,因为我在使用触摸板时遇到的问题使得任何工作都变得不可能。突然间,在使用笔记本电脑的某个随机时刻,似乎没有任何原因,我的触摸板进入了某种“特殊模式”。只要在触摸板上移动一个手指,屏幕就会滚动,而不是真正移动鼠标光标,所以无法将鼠标悬停在浏览器中的任何位置,除非进行相当协调的努力来应对滚动屏幕和不移动的鼠标。我想找到一种方法,在不重新启动笔记本电脑的情况下,重置触摸板。好消息是,使用上述方法重置触摸板实际上解决了我的问题。
更新:
为了更加方便地重置触摸板,我为上述命令创建了一个热键。当我的触摸板出现问题时,我只需按下组合键ctrl+super+r,它就会为我执行重置操作。快速简便。
以下是具体步骤:
- 在您的主目录内创建一个文件,将其命名为“touchpad-reset.sh”。
-在这个文件中,放入前面列出的三个命令中的两个(最后两个),但是,不要使用设备的X id号码,因为它可能会随着添加外设而改变(也许??),你可以使用这个代替:
这是我电脑终端内使用这个命令的输出:
xinput --list
结果:
Virtual core pointer id=2 [master pointer (3)]⎜
↳ Virtual core XTEST pointer id=4 [slave pointer (2)]⎜
↳ Genius 2.4G Wireless Mouse id=10 [slave pointer (2)]⎜
↳ MSFT0001:00 06CB:75BD UNKNOWN id=13 [slave pointer (2)]⎜
↳ ELAN Touchscreen id=12 [slave pointer (2)]⎜
-现在你要做的是,将之前的X(代表一个id)替换为xinput disable X和xinput enable X,并用相应id对应的名称放在单引号内。例如,根据上面的例子,如果你想对id=13,也就是我的触摸板设备进行操作,你可以使用以下命令:
xinput disable 'MSFT0001:00 06CB:75BD UNKNOWN'
xinput enable 'MSFT0001:00 06CB:75BD UNKNOWN'
- 所以现在,您是通过名称而不是ID号来禁用,因为ID可能会随时间改变,然后您将禁用和启用其他设备。
- 最后,您需要赋予执行此文件的权限;在终端中,将工作目录设置为您的主目录(即创建文件的位置),然后运行以下命令:
chmod +x your_script_name.sh
所以一旦你在文件中写入适当的命令,并确保它位于你的主目录中,按照以下步骤进行:
- 按下键盘上的超级键(PC上的Windows键)来打开Unity侧边栏。输入“系统设置”并按回车键。
- 在“硬件”下找到“键盘”选项并点击。
- 选择“快捷键”选项卡。
- 在左窗口中选择“自定义快捷键”。
- 点击底部中间的+按钮。
- 会弹出一个窗口要求输入描述名称和命令。
- 将名称设为“重置触摸板”之类的。
- 使用以下命令:gnome-terminal -x ./你的脚本名称.sh
- 点击“应用”。
- 现在你应该能看到你的快捷方式已列出,并且在最右边显示为“禁用”或其他内容。点击该文本并准备设置某种键组合,例如ctrl+super+r。
- 完成这个键组合后,你就完成了。
恭喜!玩得开心。