Как узнать, какой программе «принадлежит» горячая клавиша?

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сделал это. Для гугл хрома как-то прописана горячая клавиша.
Эндрю Редд

Ответы:

21

Чтобы узнать, какое приложение / программа захватило ваш ключ, используйте команду debug keysym 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.

don_crissti
источник
Есть ли что-то похожее на lightdm?
Элиг
@elig - не уверен, что вы имеете в виду ... это делает X-сервер независимо от вашего диспетчера отображения.
don_crissti
Тогда я не вижу его в своих журналах или журнале
elig