我的笔记本电脑有一个破解的触摸屏,当地华硕技术公司告诉我不能更换,即使是非接触式的,因为他们只是不再制造它们了。
在所有其他方面,它都是一台很棒的笔记本电脑,在外部显示器上也能正常工作,但是屏幕上的漏洞有时会产生随机的触控事件,扰乱我的会话。
使用xinput --disable 17禁用屏幕解决了这个问题,但一些未知事件似乎会重新启用它。我可以在这样的设备上设置一个手表:
xinput --watch-props 17
Device 'USBest Technology SiS HID Touch Controller':
Device Enabled (177): 1
....我想解析出“已启用”并使用disable进行响应。
所以我希望它作为脚本运行,或者作为一个服务运行,这样当屏幕重新启用时,我就可以重新禁用它。但是,此脚本根本不产生任何输出。
#!/bin/bash
xinput --watch-props 17 |
while read event; do
echo "$event"
done我有许多使用这种格式的inotifywait和ip monitor脚本,它们都像预期的那样工作,但是这个脚本有问题。
发布于 2021-03-03 07:48:16
与其使用inotifywait主动重新禁用屏幕,不如告诉X服务器不需要该设备。
您可以通过创建具有如下内容的/etc/X11/xorg.conf.d/99-no-touch.conf来做到这一点:
Section "InputClass"
Identifier "Disable a cracked touch screen"
MatchProduct "USBest Technology SiS HID Touch Controller"
# completely disregard the broken device
Option "Ignore" "true"
# alternative: just stop the device for being used as an active input device
# Option "Floating" "true"
EndSection我相信,通过从Option "Ignore"...给出的输入设备列表中完全删除触摸屏,xinput list行将更适合您的目的。
使用Option "Floating"...行的替代方法将允许设备保持列表,但将该设备指定为“当前未作为虚拟核心指针/键盘组的一部分使用”,这实际上使设备被没有具体请求该特定输入设备的任何X11应用程序忽略。
由于我从您的MatchProduct输出中提取了xinput --watch-props 17值,它可能是正确的,但是如果您需要调整它,那么查看/var/log/Xorg.0.log来查看Xorg X11服务器检测触摸屏控制器时使用的确切标识符(S),并相应地调整Match...子句可能会有帮助。通过在您的系统上使用Match...,您可以找到有关各种man xorg.conf关键字的更多信息。
https://unix.stackexchange.com/questions/637279
复制相似问题