마우스를 잡은 것 같은 응용 프로그램이 있습니다 (움직일 수는 있지만 아무 곳이나 클릭 할 수는 없습니다). X.org 마우스 잡기를 소유 한 응용 프로그램을 찾는 방법이 있습니까?
마우스를 놓기 위해 여기 에 주어진 바로 가기 가 작동하지 않아서 더 많은 정보를 줄 수있는 것에 관심이 있습니다.
마우스를 잡은 것 같은 응용 프로그램이 있습니다 (움직일 수는 있지만 아무 곳이나 클릭 할 수는 없습니다). X.org 마우스 잡기를 소유 한 응용 프로그램을 찾는 방법이 있습니까?
마우스를 놓기 위해 여기 에 주어진 바로 가기 가 작동하지 않아서 더 많은 정보를 줄 수있는 것에 관심이 있습니다.
답변:
이 커밋에XF86LogGrabInfo 도입 된 키 를 눌러이 작업을 수행 할 수 있습니다 .
기본적으로이 키 심은 실제 키 또는 키 조합에 바인딩되지 않습니다. 그러나 여전히 다음을 사용하여 활성화 할 수 있습니다 xdotool
.
xdotool key "XF86LogGrabInfo"
해당 명령을 실행하면 활성 잡기 목록이 X 로그에 기록됩니다. 우분투에서 적어도 이것은입니다 /var/log/Xorg.0.log
. 로그 파일 끝 근처에 있지만 그 아래에는 관련이없는 여러 로그 메시지가있을 수 있습니다. 횡령이 없으면 다음과 같이 씁니다.
[1199271.146] (II) Printing all currently active device grabs:
[1199271.146] (II) End list of active device grabs
잡기가 있으면 (여기서 Firefox에서 메뉴를 열었을 때) 다음과 같이 기록됩니다.
[1199428.782] (II) Printing all currently active device grabs:
[1199428.782] Active grab 0x4c00000 (core) on device 'Virtual core pointer' (2):
[1199428.782] client pid 15620 /usr/lib/firefox/firefox
[1199428.782] at 1199423728 (from active grab) (device thawed, state 1)
[1199428.782] core event mask 0x7c
[1199428.782] owner-events true, kb 1 ptr 1, confine 0, cursor 0x0
[1199428.782] (II) End list of active device grabs
방금 비슷한 문제가 있었고 X11이 중간 버튼을 눌렀다 놓지 않았다고 생각하는 버그로 좁혔습니다. mouseup 이벤트가있을 때까지 물리적으로 마우스를 분리해도 도움이되지 않습니다.
xdotool mousedown 2
창을 사용하여 초점을 전환하는 것은 불가능합니다.
xdotool key XF86LogGrabInfo
현재 초점이 맞춰진 프로세스 창을 보여 주지만, 하나가 종료되면 다른 창이 초점을 받고 동일한 시나리오가 계속됩니다.
해결 방법 : issue xdotool mouseup 2
.
업데이트 : 중간 버튼을 눌렀다가 놓지 않는 것은 가장 눈에 띄지 않습니다. 대부분의 앱이 응답하지 않기 때문에 일부 마우스에는이 버튼이 없어서 문제가 사라 졌는지 확인할 수 있습니다.
Xorg 로그의 항목은 해독 할 수 없습니다. 나는 그것들을 파싱하고 인간이 다루기 쉬운 형태로 제시하는 프로그램을 작성했다.
https://gist.github.com/CyberShadow/6412d11aea64144f8905cc0b8196f38e
사용하려면 xdotool key XF86LogGrabInfo
기계 달팽이의 답변에 설명 된대로 먼저 실행하십시오 . 그런 다음 위에 링크 된 프로그램을 실행하십시오. Xorg 로그 파일이에없는 /var/log/Xorg.0.log
경우 --xorg-log
옵션을 사용하여 해당 위치를 지정할 수 있습니다 . 자세한 내용 --help
을 참조하십시오.