Як дізнатися, яка програма "володіє" гарячою клавішею?


32

Я працюю XFCE 4.12 поверх Gentoo з ядром 4.2.0. Моя кнопка 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 Це пов'язано точно, але я не думаю, що це дублікат. Перерахувати всі схопи та знайти одного конкретного захоплювача - це не те саме. Корисне для Ендрю рішення поховане в коментарі (адже проблема Ендрю - це не те, про що я питав).
Жил "ТАК - перестань бути злим"

Так, біг xdotool keydown "XF86AudioPlay"; xdotool key "XF86LogGrabInfo"; xdotool keyup "XF86AudioPlay"; sleep 1; tail /var/log/Xorg.0.logзробив це. Щось google Chrome зареєстрував гарячу клавішу.
Ендрю Редд

Відповіді:


21

Щоб дізнатися, який додаток / програма схопив ваш ключ, використовуйте клавішу налагодження XF86LogGrabInfo. Використовуйте xdotoolдля XF86LogGrabInfoодночасного натискання клавіш +, наприклад у термінальному виконанні

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

Потім перевірте вихід із tail /var/log/Xorg.0.log
зауваженням, що з gnome 3/gdmі systemdце більше не реєструється 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.