为什么要禁用触摸屏?
答:外屏幕有条裂缝,鼠标是不是自动被触发,很搞人心态,又没钱修。
废话不多,上正文
临时禁用(可以用来实验或者确定设备,禁用错了关机重启就好了)
X11
使用xinput这个软件包,楼主是arch系的,照例来讲ubuntu也能用。
xinput list#打印出来设备信息
#像是这样:
#⎡ Virtual core pointer id=2 [master pointer (3)]
#⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
#⎜ ↳ xwayland-pointer:15 id=6 [slave pointer (2)]
#⎜ ↳ xwayland-relative-pointer:15 id=7 [slave pointer (2)]
#⎜ ↳ xwayland-pointer-gestures:15 id=8 [slave pointer (2)]
#⎣ Virtual core keyboard id=3 [master keyboard (2)]
# ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
# ↳ xwayland-keyboard:15 id=9 [slave keyboard (3)]
#➜ ~
楼主在x11下也试过,和wayland 输出不太一样,
设备名称里,一般有名称的无非是键盘、鼠标、触摸板之类的,而触摸屏往往是一个十六进制的物理地址,应该挺明显的,大不了一个一个试试,无非麻烦点,应该挺好找的。
楼主的是 'SYNA7813:00 06CB:1A1A',他的id是13.
所iy禁用的命令就是
xinput disable 'SYNA7813:00 06CB:1A1A'
#或者
xinput disable 13
wayland(xwayland)
wayland同理,只不过id和设备名可能和x11不一样,而且会报警告,无视就好。
比如,我的触屏设备变成了xwayland-touch,id=10。
把上面的命令相同字段换掉就行
永久禁用(开机服务)
看看你的电脑有没有/usr/lib/systemd/system/rc-local.service这个服务,有的话在这里面操作就行,没有的话需要自己建立一个服务项,名字任意。
内容如下:
[Unit]
Description="/etc/rc.local Compatibility"
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardInput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
重点是ExecStart这一个地方,表述了启动脚本的位置,
我的启动脚本在/etc/rc.local,我们编辑这个文件即可:
#!/bin/sh
ls -1 /sys/bus/hid/drivers/hid-multitouch | grep 06CB:1A1A > /sys/bus/hid/drivers/hid-multitouch/unbind
xinput disable 10
这个地方解释一下,第一行是我在x11的时候修改的,作用是取消触摸屏和驱动的绑定,从而使之失效,如果你是X11的桌面环境,只需要改动06CB:1A1A即可,改成一个能够标识你的触摸屏的字符串,我这里建议用他的硬件地址的十六进制编码。
这样可以从ls的输出流中定位到你的设备的名称,然后写入unbind里面,实现解绑。
其实这里可以用过我们刚刚的临时修改命令来实现,比如我wayland就是通过xinput禁用的。
写完之后,赋予这个脚本可执行权限:
chmod +x rc.local
然后设置服务自启动:
systemctl enable rc-local.service
重启即可。