Como descubro qual programa 'possui' uma tecla de atalho?

32

Estou executando o XFCE 4.12 no topo do Gentoo com um kernel 4.2.0. Meu botão PlayPause no teclado costumava funcionar como uma tecla de atalho global para o VLC. Agora o VLC nem reconhece a chave. Ele vê "Alt + Media Play Pause", mas não a tecla sozinha.

Existe uma maneira de ver se e qual programa pode estar capturando essa chave?

Quando executo xdotool key "XF86LogGrabInfo"o tail /var/log/Xorg.0.logarquivo lê

[ 10138.690] (II) Printing all currently active device grabs:
[ 10138.690] (II) End list of active device grabs
Andrew Redd
fonte
@don_crissti obrigado, mas isso não parece responder nada. Existe outra maneira de registrar teclas de atalho?
Andrew Redd
@don_crissti Está relacionado com certeza, mas não acho que seja uma duplicata. Listar todas as capturas e encontrar um captador específico não é o mesmo. A solução útil para Andrew está escondida em um comentário (porque o problema de Andrew não é o que eu estava perguntando).
Gilles 'SO- stop be evil'
Sim, em execução xdotool keydown "XF86AudioPlay"; xdotool key "XF86LogGrabInfo"; xdotool keyup "XF86AudioPlay"; sleep 1; tail /var/log/Xorg.0.log. De alguma forma, o Google Chrome registrou a tecla de atalho.
Andrew Redd

Respostas:

21

Para descobrir qual aplicativo / programa pegou sua chave, use o debug keysym XF86LogGrabInfo. Use xdotoolpara pressionar as teclas + XF86LogGrabInfoao mesmo tempo, por exemplo, em um terminal

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

Em seguida, verifique a saída com tail /var/log/Xorg.0.log
Note que with gnome 3/gdme systemdisso não está mais conectado Xorg.0.log(em vez disso, está registrado no diário ). Nesse caso, você pode executar

journalctl -f

e depois em outro terminal, execute os xdotoolcomandos. Mude para o primeiro terminal e verá algo como

/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

No exemplo acima, o programa (o cliente) que pegou a chave é gnome-shell.

don_crissti
fonte
Existe algo semelhante para o lightdm?
elegível 27/06
@elig - não sei o que você quer dizer ... isso é feito pelo servidor X, independentemente do seu gerenciador de exibição.
don_crissti 27/06
Então não o vejo nos meus registros ou diário
elegível