我的笔记本电脑的触摸屏破裂了,当地华硕技术人员告诉我无法更换,即使是非触摸屏也不能更换,因为他们不再生产它们了。
在所有其他方面,它都是一台出色的笔记本电脑,并且与外部显示器一起使用时效果也很好,但屏幕上的裂缝有时会产生随机触摸事件,从而扰乱我的会话。
禁用屏幕可以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
,它们都按预期工作,但这个有问题。
答案1
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 服务器检测到触摸屏控制器时使用的确切标识符可能会有所帮助,并相应调整该Match...
条款。您可以Match...
通过man xorg.conf
在您的系统上使用来找到有关各种关键字的更多信息。