Como posso fazer um keybind envolvendo o xdotool no Openbox?

4

Estou executando o Openbox 3.5.2 (no Lubuntu 13.10) fazendo login na sessão do Openbox.

Em uma sessão do Openbox, se eu executar xdotool mousemove 1000 5 click 3 de um terminal, o cursor do mouse se moverá para a posição vazia especificada na área de trabalho; em seguida, um clique com o botão direito do mouse é executado para abrir o menu do botão direito do Openbox.

Então eu fiz o seguinte keybind em ~/.config/openbox/rc.xml :

<keybind key="W-space">
  <action name="Execute">
    <command>xdotool mousemove 1000 5 click 3</command>
  </action>
</keybind>

e Openbox reconfigurado. Mas quando pressiono super + barra de espaço tudo que vejo é que o cursor do mouse se move para a posição designada; o menu do botão direito não aparece.

Como posso fazer com que o menu do botão direito seja exibido?

    
por Timo 20.01.2014 / 07:59

3 respostas

1

Você deve tentar esperar até que o mousemove seja concluído. Às vezes, as coisas ficam fora de sincronia se o sistema estiver lento. Você pode colocar um atraso (com sleep ou xdotool --delay . Isso sempre atrasa e atrasa as coisas. Você deve primeiro tentar:

xdotool mousemove --sync 1000 5 click 3

Como --sync não espera se nada precisar ser feito. Se isso não te ajudar pode sempre colocar em um atraso extra com sleep :

xdotool mousemove --sync 1000 5
sleep 0.2
xdotool click 3
    
por 20.01.2014 / 08:36
1

O problema é que o clique está sendo executado antes que você libere super , e o Openbox distingue entre um clique e um modificador + clique. A solução mais limpa é usar xdotool para também enviar um evento de chave:

xdotool mousemove 1000 5 keyup Super_L click 3

Usar sleep como Timo sugerido também funciona contanto que você libere super antes que sleep retorne (assim, o sucesso de acertar ou errar com um menor valor de suspensão).

Embora provavelmente não seja relevante no seu caso, se você quiser executar outro pressionamento de tecla usando super imediatamente após xdotool retornar, sem liberar e reprimir a chave, você pode colocar um evento keydown mais tarde no comando. Nos meus testes, não consegui liberar a chave mais rapidamente do que xdotool é executado, e o evento keydown ajuda a garantir o comportamento esperado.

    
por 01.10.2014 / 12:54
0

Se você quiser apenas mostrar o menu Openbox quando você pressiona super + barra de espaço então você pode fazê-lo com apenas

<keybind key="W-space">
  <action name="ShowMenu">
    <menu>root-menu</menu>
  </action>
</keybind>

Isso funciona o tempo todo, mesmo se você tiver uma janela em tela cheia.

    
por 04.02.2014 / 10:17

Tags