xdotool e xbindkeys

5

Eu tenho um Acrobat Reader que não aplica zoom no Control + plus, mas sim no Control + agudo (Control + Swing rotula irritantemente o documento).

Eu gostaria de consertar isso usando xbindkeys e xdotool, mas a complicação é que o Control-plus também é usado por outros aplicativos.

Portanto, a ideia é interceptar o Control-plus, verificar se o Acrobat é a janela ativa. Em caso afirmativo, envie ao Acrobat um Controle agudo, caso contrário envie o Controle +.

Aqui, minha tentativa atual para o script que xbindkeys inicia no Control + plus:

WM_CLASS=$(xprop -id 'xdotool getactivewindow' WM_CLASS |awk '{print $4}')

if [ "$WM_CLASS" = "\"Acroread"\" ];
then
   sleep 0.1s;
   xdotool key --clearmodifiers ctrl+acute
else
   killall xbindkeys
   xdotool key --clearmodifiers ctrl+plus
   xbindkeys
fi

Isso realmente funciona, mas o problema é que, se eu não matasse xbindkeys, o xdotool enviando ctrl-plus novamente acionaria xbindkeys e assim por diante.

Mas é claro que isso significa que toda vez que eu clico em Control + plus em uma janela não-acrobat, xbindkeys precisam ser mortos e reiniciados ...

Existe uma maneira melhor de fazer isso?

Muito obrigado!

    
por morgon 02.02.2015 / 16:46

0 respostas