Como descubro qual programa possui uma tecla de atalho?

24

Estou executando o XFCE 4.12 no topo do Gentoo com um kernel 4.2.0. Meu botão PlayPause no meu 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 chave sozinho.

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

Quando executo xdotool key "XF86LogGrabInfo" , o arquivo tail /var/log/Xorg.0.log

[ 10138.690] (II) Printing all currently active device grabs:
[ 10138.690] (II) End list of active device grabs
    
por Andrew Redd 10.02.2016 / 22:56

1 resposta

17

Para descobrir qual aplicativo / programa pegou sua chave, use o comando debug keysym XF86LogGrabInfo . Use xdotool para pressionar as teclas + XF86LogGrabInfo ao mesmo tempo. 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
Observe que, com gnome 3/gdm e systemd , isso não é mais registrado em Xorg.0.log (em vez disso, ele é registrado no diário ). Nesse caso, você poderia correr

journalctl -f

e, em outro terminal, execute os comandos xdotool . Mude para o primeiro terminal e você 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 .

    
por 11.02.2016 / 00:33