Instalando Xdotool
Para instalar o xdotool no Ubuntu, execute o comando abaixo:
$ sudo apt install xdotoolPara instalar o xdotool em outras distribuições Linux, procure o termo “xdotool” no gerenciador de pacotes. 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 chave nObserve que o comando acima irá simular um pressionamento e 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
Simule 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. E.g.
Você pode encontrar nomes corretos para as teclas do teclado usando o seguinte comando:
$ xevUma pequena janela se abrirá. Mantenha o foco e pressione qualquer tecla. Você obterá o nome da chave na saída do terminal.
Simular Teclas de Repetição / Turbo / Fogo Rápido
Para simular vários pressionamentos de tecla ao longo de um período de tempo, você terá que especificar quantas vezes os pressionamentos de tecla devem ser simulados e o intervalo entre cada pressionamento de tecla. Para fazer isso, execute um comando no seguinte formato:
$ xdotool chave --repetir 5 - atrasar 50 nSubstitua os valores dos interruptores "-repeat" e "-delay" (em milissegundos) de acordo com seus requisitos. Observe que tive problemas de repetição ao definir o atraso para mais de 500 ms. Isso pode ser um bug ou comportamento intencional e se você estiver enfrentando problemas semelhantes, evite definir valores de atraso altos. Você pode usar as 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.
$ para i em 1… 3; faça xdotool chave n; dormir 2; feitoVocê também pode usar um loop while para simular repetidamente pressionamentos de tecla até que o loop seja interrompido manualmente usando
Simule uma sequência de teclas
Para simular várias chaves uma após a outra, use um comando no seguinte formato:
$ x chave da ferramenta x y zSimular cliques do mouse
Para simular um clique com o botão direito na localização atual do ponteiro, execute o comando abaixo:
$ xdotool click 3Substitua “3” por qualquer número da referência abaixo:
- 1 - Clique com o botão esquerdo
- 2 - Clique com o botão do meio
- 3 - Clique com o botão direito
- 4 - Roda de rolagem para cima
- 5 - Roda de rolagem para baixo
Se você quiser usar um conjunto diferente de coordenadas, use um comando no seguinte formato:
$ xdotool mousemove 100 100 clique 3Substitua "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.
Obter janela ativa e minimizá-la
O comando a seguir obterá a ID da janela atualmente em foco e a minimizará:
$ xdotool getactivewindow windowminimizeConsulte a página do homem
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 do manual executando o comando abaixo:
$ man xdotoolVocê também pode acessar a página do manual online.
Mapeie comandos e scripts 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, em seguida, 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, bem como comandos complexos, encadeando várias entradas simuladas.