Answers:
我相信是这样。您将必须使用一些命令并创建启动脚本,但是您知道前者和后者并不难。
首先,运行xinput list
。您的输出应类似于以下内容:
zachary@MCServer:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [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)]
↳ Power Button id=7 [slave keyboard (3)]
如果可以,请事先拔下鼠标。
现在,您需要找到触控板的ID。现在使用主要ID(而不是主要项目下缩进的ID)。如果事实证明主要项目涵盖了鼠标和触摸板,请选择相应的子ID。
现在您需要运行
xinput set-prop DEVICEID "Device Enabled" 0
例如,如果我想禁用我的鼠标,我会使用2
的DEVICEID
。
插入鼠标并确保其可以正常工作,而触摸板则无法工作。如果鼠标不起作用,请运行
xinput set-prop DEVICEID "Device Enabled" 1
然后再次使用子ID运行第一个命令。
为了使它适用于启动,您需要使其成为启动命令。打开Startup Applications
(或在您的桌面环境中打开),然后添加第一个命令。
或者,您可以在内部断开触控板的连接。
是的,这很容易。将触摸板模块列入黑名单。
要找出它是什么模块,可以运行
grep -iA 2 touchpad /proc/bus/input/devices
在这里您会看到类似elan或synaptic的信息
然后
ls $(find /lib/modules/$(uname -r) -type d -name mouse)
查看当前内核的所有鼠标和触摸板模块。触摸板会i2c
或touch
在名称,鼠标模块都会有mouse
或usb
。交叉引用这两个结果
编辑:我最近想出了如何通过一个复杂的命令可靠地获取正在使用的驱动程序的名称,而terdon对我来说很好地简化了此操作:
grep -hriPo 'DRIVER=\K.+' /sys 2>/dev/null | while read driver; do [ -e /lib/modules/$(uname -r)/kernel/drivers/input/mouse/"$driver"* ] && echo $driver; done
我猜您的触摸板模块是synaptics_i2c.ko
。.ko
编写黑名单时将省略
检查您是否拥有正确的模块
sudo modprobe -r synaptics_i2c
如果您获得了正确的模块,触摸板将立即死亡。现在,防止它被加载:
在/etc/modprobe.d
带有.conf
扩展名的目录中创建一个文件,其中包含单词blacklist synaptics_i2c
(用模块名替换,不包括.ko
)。例如
echo "blacklist synaptics_i2c" | sudo tee /etc/modprobe.d/blacklist-touch.conf
(但请确保您选择的文件名不存在)