To nie działa z Waylandem; jeśli używasz Ubuntu 17.10 i nie zmieniłeś się na używanie Xorg przy logowaniu, to rozwiązanie nie jest dla ciebie.
Możesz xdotool
do tego użyć . Jeśli opóźnienie między naciśnięciami klawiszy powinno być spójne , jest to tak proste:
xdotool type --delay 100 something
Typ ten występuje something
z opóźnieniem 100
milisekund między każdym naciśnięciem klawisza.
Jeśli opóźnienie między naciśnięciami klawiszy powinno być losowe , powiedzmy od 100 do 300 milisekund, sprawy stają się nieco bardziej skomplikowane:
$ 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 -
Ta for
pętla przechodzi przez każdą pojedynczą literę łańcucha zapisanego w zmiennej text
, albo drukowania key <letter>
lub key space
w przypadku spację sleep 0.
i losową liczbę między 1 i 3 ( xdotool
„s sleep
interpretuje jako liczba sekund). Następnie przesyłane jest całe wyjście pętli xdotool
, które drukuje litery z losowym opóźnieniem pomiędzy nimi. Jeśli chcesz zmienić opóźnienie, po prostu zmień część, która jest dolną i górną granicą - na 0,2 do 0,5 sekundy .(RANDOM%x)+y
y
x-1+y
(RANDOM%4)+2
Zauważ, że to podejście nie drukuje tekstu, a raczej wpisuje go dokładnie tak, jak zrobiłby to użytkownik, syntezując pojedyncze naciśnięcia klawiszy. W rezultacie tekst zostaje wpisany w aktualnie zaznaczonym oknie; jeśli zmienisz fokus, część tekstu zostanie wpisana w nowo zaznaczonym oknie, co może, ale nie musi być tym, czego chcesz. W obu przypadkach spójrz na inne odpowiedzi tutaj, z których wszystkie są genialne!