어떤 프로그램이 핫키를 '소유'하는지 어떻게 알 수 있습니까?


32

4.2.0 커널로 젠투 위에서 XFCE 4.12를 실행하고 있습니다. 키보드의 PlayPause 버튼은 VLC의 글로벌 핫키로 사용되었습니다. 이제 VLC는 키를 인식하지 못합니다. "Alt + Media Play Pause"는 표시되지만 키만은 아닙니다.

해당 키를 캡처하는 프로그램이 무엇인지 확인하는 방법이 있습니까?

파일을 실행 xdotool key "XF86LogGrabInfo"하면 tail /var/log/Xorg.0.log읽습니다.

[ 10138.690] (II) Printing all currently active device grabs:
[ 10138.690] (II) End list of active device grabs

@ don_crissti 감사하지만 아무것도 대답하지 않는 것 같습니다. 단축키를 등록하는 다른 방법이 있습니까?
Andrew Redd

@don_crissti 확실히 관련이 있지만 중복 된 것으로는 생각하지 않습니다. 모든 그랩을 나열하고 하나의 특정 그래버를 찾는 것은 동일하지 않습니다. Andrew에게 유용한 솔루션 은 주석에 묻혀 있습니다 (Andrew의 문제는 내가 묻는 것이 아니기 때문에).
Gilles 'SO- 악마 그만해'

그렇습니다 xdotool keydown "XF86AudioPlay"; xdotool key "XF86LogGrabInfo"; xdotool keyup "XF86AudioPlay"; sleep 1; tail /var/log/Xorg.0.log. 어떻게 든 구글 크롬이 단축키를 등록했습니다.
Andrew Redd

답변:


21

키를 잡은 앱 / 프로그램을 찾으려면 디버그 keysym을 사용하십시오 XF86LogGrabInfo. 터미널 런에서 xdotool키 + XF86LogGrabInfo를 동시에 누르는 데 사용

KEY=XF86AudioPlay
xdotool keydown ${KEY}; xdotool key XF86LogGrabInfo; xdotool keyup ${KEY} 

그런 다음에 출력을 확인 tail /var/log/Xorg.0.log
하여 해당 주 gnome 3/gdmsystemd이 더 이상 기록됩니다 Xorg.0.log(그 대신에 기록되지 것 저널 ). 이 경우 당신은 실행할 수 있습니다

journalctl -f

그런 다음 다른 터미널에서 xdotool명령을 실행하십시오 . 첫 번째 터미널로 전환하면 다음과 같은 내용이 표시됩니다

/usr/lib/gdm/gdm-x-session[629]: Active grab 0x40c0a58e (xi2) on device 'Virtual core keyboard' (3):
/usr/lib/gdm/gdm-x-session[629]: client pid 708 /usr/bin/gnome-shell
/usr/lib/gdm/gdm-x-session[629]: at 32595124 (from passive grab) (device frozen, state 6)
/usr/lib/gdm/gdm-x-session[629]: xi2 event mask for device 3: 0xc000
/usr/lib/gdm/gdm-x-session[629]: passive grab type 2, detail 0xac, activating key 172

위 예제에서 키를 잡은 프로그램 (클라이언트)은 gnome-shell입니다.


lightdm과 비슷한 것이 있습니까?
elig

@elig-무슨 뜻인지 모르겠습니다. 이것은 디스플레이 관리자와 상관없이 X 서버에서 수행됩니다.
don_crissti

그럼 난 내 로그 또는 저널에 표시되지 않습니다
elig
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.