터치 스크린을 사용할 때 마우스 커서를 동적으로 숨깁니다.

터치 스크린을 사용할 때 마우스 커서를 동적으로 숨깁니다.

터치 스크린 노트북이 있는데 화면을 터치할 때 포인터를 숨기고 싶습니다. 나는 이런 해결책을 알고 있다정돈하다그리고startx -nocursor하지만 포인터를 동적으로 숨기거나 표시하고, 터치스크린을 사용하는 경우 숨겨지고, 하드웨어 마우스를 사용하는 경우 표시되기를 원합니다.

만들까 고민하다가두 개의 독립적인 포인터위의 두 가지 솔루션 중 하나를 터치스크린 포인터에 적용했지만 두 솔루션 모두 단일 포인터 위치를 지정하는 방법에 대해 언급하지 않았으며 포인터가 여러 개 있으면 상황이 이상해지며 이로 인해 하드웨어 마우스 커서가 숨겨지지 않습니다.

내 생각엔 내가 이런 일을 가장 합리적으로 할 수 있을 것 같아이것, 현재 입력 메커니즘을 추적하고 xinput -cursor [transparent cursor]터치 스크린을 사용할 때와 일반 마우스를 사용할 때 모두 xinput -cursor [normal cursor]수행합니다 .

xinput을 살펴보니 하드웨어 마우스와 터치 스크린이 모두 동일한 포인터에 종속되어 있기 때문에 둘 다 xev에 동일한 이벤트를 등록하는 것 같습니다. 따라서 터치 클릭과 터치 스크린을 구별하는 데 필요한 정보를 어디서 얻을 수 있는지 잘 모르겠습니다. 마우스 클릭. 가능합니까?

답변1

당신이 사용할 수있는

사용하려면 설치하세요.

sudo apt-get install unclutter

그런 다음 실행

unclutter -idle 0.01 -root

유휴 후의 숫자는 숨기기 전의 시간을 나타냅니다. 이 예에서는 1/100초로 설정되어 있습니다. 항상 숨겨진 값으로 변경해 볼 수 있습니다.

커서를 움직이지 않을 때 커서가 숨겨집니다. 완전히 숨길 수 있는 옵션이 있다고 확신합니다.

답변2

하나 있다Nowrep의 깔끔한 수정 도구 포크는 여기에서 사용할 수 있습니다.. 이 릴리스에는 -touch터치 입력이 감지되면 커서를 자동으로 숨기는 옵션이 추가되었습니다. (원래 unclutter-xfixes 저장소는 다음과 같습니다.여기)

한 가지 주목할 점은 지정된 시간이 지난 후에도 커서를 숨기는 동작이 여전히 포함되어 있다는 것입니다. --timeout이 옵션을 매우 높은 값으로 설정하면 이 문제를 해결할 수 있습니다 .

이것은 당신에게 아주 잘 어울릴 것입니다. 제 경우에는 외부에 연결된 터치스크린이 있고 일반 모니터로 다시 이동하면 커서가 터치스크린에 있으므로 터치한 곳에서 다시 모니터로 옮겨야 합니다. 좋은 점은 마우스를 움직이기 시작하면 커서가 나타나서 그것이 어디에 있는지 알 수 있다는 것입니다.

이 옵션의 좋은 장점은 원할 경우 터치 스크린에서 마우스를 평소처럼 사용할 수 있지만 그렇지 않은 경우 숨겨진다는 것입니다.

답변3

마우스가 없을 때 터치 스크린을 사용하고, 필요할 때 시스템에 마우스를 연결하는 것을 상상해 보세요. 이 경우 udev규칙을 사용하여 그에 따라 포인터를 관리할 수 있습니다.

ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceSubClass}=="01", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/user/.Xauthority", ENV{REMOVE_CMD}="/usr/bin/xinput -cursor [transparent cursor]", RUN+="/usr/bin/xinput -cursor [normal cursor]"

마우스를 구별하는 데 사용되는 조건은 다음에서 차용되었습니다.이 답변.

개별 응용 프로그램은 자유롭게 동적으로 커서를 재정의할 수 있으므로 응용 프로그램 창 위로 마우스를 가져가면 커서가 다시 표시될 수 있습니다. unclutter모든 커서를 모든 곳에서 숨기려면 다음을 시작/중지할 수 있습니다.

ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceSubClass}=="01", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/user/.Xauthority", ENV{REMOVE_CMD}="/bin/sh -c unclutter&", RUN+="/usr/bin/killall unclutter"

개인적으로 저는 마우스를 연결할 때 터치스크린을 완전히 비활성화하여 커서가 마우스를 따라가도록 할 때 실수로 터치해도 커서를 방해하지 않도록 할 것입니다.

관련 정보