Isso não funciona com Wayland; se você está usando o Ubuntu 17.10 e não mudou para usar o Xorg no login, esta solução não é para você.
Você pode usar xdotool
paraisso.Seoatrasoentreasteclasforconsistente,étãosimplesassim:
xdotool type --delay 100 something
Isso digita something
com um atraso de 100
milissegundos entre cada pressionamento de tecla.
Se o atraso entre as teclas for aleatório , digamos que de 100 a 300 milissegundos, as coisas ficam um pouco mais complicadas:
$ text="some text"
for ((i=0;i<${#text};i++));
do
if [[ "${text:i:1}" == " " ]];
then
echo -n "key space";
else
echo -n "key ${text:i:1}";
fi;
[[ $i < $((${#text}-1)) ]] && echo -n " sleep 0.$(((RANDOM%3)+1)) ";
done | xdotool -
Esse loop for
passa por cada letra da string salva na variável text
, imprimindo key <letter>
ou key space
no caso de um espaço seguido por sleep 0.
e um número aleatório entre 1 e 3 ( xdotool
' sleep
interpreta o número como segundos). A saída inteira do loop é então canalizada para xdotool
, que imprime as letras com o atraso aleatório entre elas. Se você quiser alterar o atraso, basta alterar a (RANDOM%x)+y
part, y
sendo o menor e x-1+y
o limite superior - por 0,2 a 0,5 segundos, seria (RANDOM%4)+2
.
Note que esta abordagem não imprime o texto, mas sim digita exatamente como o usuário faria, sintetizando pressionamentos de tecla simples. Em consequência, o texto é digitado na janela atualmente focalizada; Se você alterar a parte do foco do texto, será digitada na janela recém-focada, que pode ou não ser o que você deseja. Em ambos os casos, dê uma olhada nas outras respostas aqui, todas brilhantes!