모니터링 스크립트의 xinput

모니터링 스크립트의 xinput

내 노트북의 터치 스크린에 금이 갔습니다. 현지 ASUS 기술자로부터 터치 스크린이 아닌 제품도 더 이상 생산하지 않기 때문에 교체할 ​​수 없다는 말을 들었습니다.

다른 모든 측면에서 이 노트북은 훌륭한 노트북이고 외부 모니터와 함께 사용할 때 잘 작동하지만 화면 균열로 인해 때때로 세션을 방해하는 임의의 터치 이벤트가 발생했습니다.

화면을 비활성화하면 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

관련 정보