どのプログラムがホットキーを「所有」しているかを調べるにはどうすればよいですか?


32

Gentooの上で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感謝しますが、それは何にも答えていないようです。ホットキーを登録する別の方法はありますか?
アンドリューレッド

@don_crissti確かに関連していますが、重複しているとは思いません。すべてのグラブをリストし、特定のグラバーを見つけることは同じではありません。Andrewにとって有用な解決策はコメントに埋もれています(Andrewの問題は私が求めていたものではないからです)。
ジル 'SO-悪である停止

はい、実行xdotool keydown "XF86AudioPlay"; xdotool key "XF86LogGrabInfo"; xdotool keyup "XF86AudioPlay"; sleep 1; tail /var/log/Xorg.0.logしました。何らかの理由でGoogle Chromeはホットキーを登録しました。
アンドリューレッド

回答:


21

どのアプリ/プログラムがキーを取得したかを調べるには、debug keysymを使用しますXF86LogGrabInfo。ターミナルの実行などで、xdotoolキー+ XF86LogGrabInfoを同時に押すために使用します

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

次に、withを使用して出力を確認しますtail /var/log/Xorg.0.log
。with gnome 3/gdmsystemdこれはもうログに記録されませんXorg.0.log(代わりにjournalに記録されます)。その場合は、実行することができます

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

その後、ログやジャーナルに表示されません
44分
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.