스타일러스 접근이 감지되면 이벤트가 생성됩니까?

스타일러스 접근이 감지되면 이벤트가 생성됩니까?

노트북의 터치스크린 + 스타일러스를 스타일러스가 감지되면 터치 장치가 꺼지므로 글을 쓰는 동안 화면에 손을 대고 있을 수 있도록 구성하려고 합니다. xinput 출력에서 ​​"근접성"을 확인하여 이를 수행하는 스크립트를 작성할 수 있지만 좋은 응답 시간을 얻으려면 스크립트가 초당 여러 번 확인해야 합니다.

스타일러스 근접성이 항상 xinput 출력을 보지 않기 위해 어떻게든 캡처할 수 있는 이벤트를 생성하는지 궁금합니다... acpi_listen에는 아무 것도 표시되지 않습니다. 어떤 팁이 있나요?

고마워요, 스테파노

답변1

다음은 나에게 효과적이었습니다.

STYLUS_ID=11 # replace with ID or name of your stylus
TOUCH_ID=9 # replace with ID or name of your touch screen

xinput test -proximity "$STYLUS_ID" |
    while read line; do
        if [[ $line == *out* ]]; then
            xinput enable "$TOUCH_ID"
        else
            xinput disable "$TOUCH_ID"
        fi
    done

스타일러스 상태를 폴링하는 대신 디스플레이 장치 이벤트의 무한 루프 test에 들어가는 옵션을 사용합니다. 맨 페이지 :xinputproximityxinput

    test [-proximity] device
           Register all extended events from device and enter an endless loop
           displaying events received. If the -proximity is given, ProximityIn
           and ProximityOut are registered.

관련 정보