Como definir a tecla de atalho específica do aplicativo que substitui a tecla de atalho global?

3

No Windows, há essa ferramenta AutoHotkey, que permite definir a tecla de atalho específica do aplicativo para qualquer aplicativo. Eu quero fazer a mesma coisa no Linux: Eu tenho uma tecla de atalho global para alternar idioma (é CapsLock, e é definido nas configurações do sistema), e eu quero substituir essa tecla de atalho quando em um determinado aplicativo.

Estou no Ubuntu 14.04, sob o GNOME. Estou usando o xbindkeys para implementar algumas teclas de atalho globais.

    
por t7ko 27.07.2016 / 23:30

1 resposta

2

Os gerenciadores de janelas suficientemente avançados (incluindo Sawfish, Awesome, Fvwm,…) permitem que você defina as combinações de teclas por janela. Gerenciadores de janelas primitivos, como Metacity e Mutter (os padrões do Gnome), não. Se você quiser configurar seu ambiente de janela para fazer o que quiser, em vez de seguir alguns padrões básicos, recomendo usar um gerenciador de janelas mais avançado. Você ainda pode usar o Gnome com muitos gerenciadores de janela, incluindo o Sawfish e o Fvwm.

Se você quiser configurar atalhos de teclado independentemente do gerenciador de janelas, pode usar um programa apenas para isso, como xbindkeys . Faça sua ligação de chave invocar um script de shell que atue de maneira diferente com base na janela ativa. Você pode usar xdotool para recuperar a ID da janela ativa (também o título) e, em seguida, outras ferramentas, como como xprop para obter mais informações sobre a janela.

#!/bin/sh
wid="$(xdotool getactivewindow)"
class="$(xprop -id "$wid" '$1' WM_CLASS)"; class="${class#*\"}"; class="${class%\"}"
case "$class" in
  Myapp) do something;;
  *) do something else;;
esac
    
por 28.07.2016 / 01:59