首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在脚本中监视xinput

在脚本中监视xinput
EN

Unix & Linux用户
提问于 2021-03-02 23:51:17
回答 1查看 282关注 0票数 0

我的笔记本电脑有一个破解的触摸屏,当地华硕技术公司告诉我不能更换,即使是非接触式的,因为他们只是不再制造它们了。

在所有其他方面,它都是一台很棒的笔记本电脑,在外部显示器上也能正常工作,但是屏幕上的漏洞有时会产生随机的触控事件,扰乱我的会话。

使用xinput --disable 17禁用屏幕解决了这个问题,但一些未知事件似乎会重新启用它。我可以在这样的设备上设置一个手表:

代码语言:javascript
复制
 xinput --watch-props 17
 Device 'USBest Technology SiS HID Touch Controller':
 Device Enabled (177):  1
 ....

我想解析出“已启用”并使用disable进行响应。

所以我希望它作为脚本运行,或者作为一个服务运行,这样当屏幕重新启用时,我就可以重新禁用它。但是,此脚本根本不产生任何输出。

代码语言:javascript
复制
 #!/bin/bash
 xinput --watch-props 17 | 
 while read event; do
    echo "$event"
 done

我有许多使用这种格式的inotifywaitip monitor脚本,它们都像预期的那样工作,但是这个脚本有问题。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-03-03 07:48:16

与其使用inotifywait主动重新禁用屏幕,不如告诉X服务器不需要该设备。

您可以通过创建具有如下内容的/etc/X11/xorg.conf.d/99-no-touch.conf来做到这一点:

代码语言:javascript
复制
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关键字的更多信息。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/637279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档