Como evitar que o xdotool bloqueie a janela atual após um script?

Como evitar que o xdotool bloqueie a janela atual após um script?

Eu tenho um script BASH simples xdotoolque lê alguns dados de um CSV e os insere em um formulário em algum outro software:

#!/bin/bash

sleep 5

while read -r line
do
    a="$(echo $line | awk '{ print $1 }')"
    xdotool type $a
    xdotool key "$Tab"
done < ./data.csv

aplay Beep.wav

O script funciona conforme o esperado, mas após o bipe, a tela fica bloqueada:

  • O mouse se move, mas nenhuma janela pode vê-lo (por exemplo, as dicas de ferramentas não aparecem) e ele não pode clicar em nada, nem mesmo na janela atual.
  • As palavras do teclado, mas apenas na janela atual.
  • A janela fica trancada dessa maneira por cerca de 5 minutos e, de repente, não fica mais trancada.

CTRL+ALT+F1 me permite mudar de console, mas killall -9 xfce4-terminalnão killall -9 xdotoolinterrompeu o bloqueio.

Como posso evitar xdotoolo bloqueio da janela atual após executá-la em um script?

Responder1

Ele emite um sinal sonoro porque está esperando que você clique na janela com a qual deseja interagir. Você não percebeu que o cursor mudou para um símbolo '+'?

Leia a página de manual novamente. Você precisa fornecer um ID de janela (--windoweu ia)

Responder2

Me deparei com essa pergunta bastante antiga procurando uma resposta, porque tenho/tive um problema semelhante. Eu uso o xdotool para digitar automaticamente informações de login em sites (no Firefox).

Vinculei uma combinação de teclas a um script com xbindkeys. O script identifica o nome da janela (também com xdotool), procura uma entrada associada em um arquivo criptografado, carrega as informações de login apropriadas e as digita.

Não vou explicar as complexidades do meu script, a interação do usuário com ele e a maneira como ele insere informações nos campos de entrada. No entanto, resolvi o problemaadicionando um breve sono antes da digitação real.

sleep 0.4
xdotool type ...

Admito que esta é uma solução hackeada, mas parece funcionar. Espero que esta solução possa ajudar alguém que esteja procurando superar esse bug tão frustrante (?), Ou talvez exija que outra pessoa escreva uma resposta melhor.

informação relacionada