在腳本中監控 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
,它們都按預期工作,但是這個有問題。
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