监控脚本中的xinput

监控脚本中的xinput

我的笔记本电脑的触摸屏破裂了,当地华硕技术人员告诉我无法更换,即使是非触摸屏也不能更换,因为他们不再生产它们了。

在所有其他方面,它都是一台出色的笔记本电脑,并且与外部显示器一起使用时效果也很好,但屏幕上的裂缝有时会产生随机触摸事件,从而扰乱我的会话。

禁用屏幕可以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.logXorg X11 服务器检测到触摸屏控制器时使用的确切标识符可能会有所帮助,并相应调整该Match...条款。您可以Match...通过man xorg.conf在您的系统上使用来找到有关各种关键字的更多信息。

相关内容