sábado, 15 de outubro de 2022

Como usar o Xdotool para estimular cliques do mouse e pressionamentos de tecla no Linux

O Xdotool é uma ferramenta de linha de comando gratuita e de código aberto para simular cliques do mouse e pressionamentos de tecla. Este artigo abordará um breve guia sobre o uso do xdotool para automatizar as entradas do teclado e do mouse. O Xdotool funciona apenas no servidor de exibição X e não há suporte para Wayland (no momento da redação deste artigo).

Instalar o Xdotool

Para instalar o xdotool no Ubuntu, execute o comando abaixo:
sudo apt install xdotool

Para instalar o xdotool em outras distribuições Linux, procure o termo “xdotool” no gerenciador de pacotes. O Xdotool está incluído nos repositórios da maioria das distribuições Linux.


Simular um pressionamento de tecla

Você pode usar o xdotool para simular um pressionamento de tecla executando o comando abaixo. Substitua “n” por qualquer tecla ou caractere válido no layout do teclado.
xdotool key n

Observe que o comando acima simulará um pressionamento de tecla e uma liberação de tecla um após o outro e você não notará nenhum atraso entre esses eventos. Caso queira simulá-los separadamente, use os seguintes comandos:
xdotool keydown n
xdotool keyup n



Simular um pressionamento de tecla com uma tecla modificadora

As teclas modificadoras modificam o comportamento dos pressionamentos de tecla quando duas ou mais teclas são pressionadas simultaneamente. Por exemplo, <CTRL+S>, <SHIFT+1> e assim por diante. O processo para executar combinações de teclas usando xdotool também é bastante semelhante:
xdotool key ctrl+s

Você pode encontrar nomes corretos para as teclas do teclado usando o seguinte comando:
xev

Uma pequena janela se abrirá. Mantenha-o focado e, em seguida, pressione qualquer tecla. Você obterá o nome da chave na saída do terminal.


Simular Teclas de Repetição / Turbo / Rapid Fire

Para simular vários pressionamentos de tecla durante um período de tempo, você terá que especificar quantas vezes os pressionamentos de tecla devem ser simulados e o atraso entre cada pressionamento de tecla. Para fazer isso, execute um comando no seguinte formato:
xdotool key --repeat 5 --delay 50 n

Substitua os valores das chaves “–repeat” e “–delay” (em milissegundos) de acordo com seus requisitos. Observe que tive problemas de repetição quando configurei o atraso para mais de 500 ms. Isso pode ser um bug ou comportamento pretendido e, se você estiver enfrentando problemas semelhantes, evite definir valores de atraso altos. Você pode usar instruções de loop “for” e “while” para superar essa limitação.

O comando indicado abaixo irá inserir a tecla “n” três vezes com um atraso de 2 segundos entre cada pressionamento de tecla.
for i in {1..3}; do xdotool key n; sleep 2; done

Você também pode usar um loop while para simular repetidamente as teclas pressionadas até que o loop seja interrompido manualmente usando a tecla <CTRL+C>.
while true; do xdotool key n; sleep 2; done


Simular uma sequência de teclas

Para simular várias teclas uma após a outra, use um comando no seguinte formato:
xdotool key x y z


Simular cliques do mouse

Para simular um clique com o botão direito no local atual do ponteiro, execute o comando abaixo:
xdotool click 3

Substitua “3” por qualquer número da referência abaixo:

1 – Clique com o botão esquerdo
2 – Clique do meio
3 – Clique com o botão direito
4 – Roda de rolagem para cima
5 – Role a roda para baixo
Se você quiser usar um conjunto diferente de coordenadas, use um comando no seguinte formato:
xdotool mousemove 100 100 click 3

Substitua “100” pelas coordenadas desejadas como “X” e “Y” no canto superior esquerdo da tela.

Observe que vários exemplos explicados até agora com pressionamentos de tecla também podem ser usados ​​com cliques do mouse.

Obtenha a janela ativa e minimize-a
O comando a seguir obterá o ID da janela atualmente em foco e a minimizará:
xdotool getactivewindow windowminimize

Consulte a página do manual
O Xdotool inclui inúmeras opções e você pode usar inúmeras combinações diferentes para personalizar o comportamento das teclas e cliques do mouse. Não é possível cobrir todos os casos de uso aqui, você pode consultar a página man executando o comando abaixo:
man xdotool

Você também pode acessar a página do manual online .

Mapeie comandos e scripts do Xdotool para atalhos de teclado
Você pode usar a GUI de configuração de atalhos de teclado disponível nas configurações do sistema de sua distribuição para atribuir comandos xdotool simples a atalhos de teclado personalizados. No caso de instruções complexas e múltiplas, salve os comandos em um script e mapeie o script para o atalho de teclado.

Conclusão
Xdotool é um dos melhores utilitários disponíveis para automatizar entradas de teclado e mouse no Linux. Você pode executar macros simples e comandos complexos encadeando várias entradas simuladas.


Nenhum comentário:

Postar um comentário