Це не працює з Wayland; якщо ви використовуєте Ubuntu 17.10 і не змінили використання Xorg при вході, це рішення не для вас.
Ви можете використовувати xdotool
для цього. Якщо затримка між натисканнями клавіш повинна бути послідовною , це так само просто:
xdotool type --delay 100 something
Цей тип something
із затримкою в 100
мілісекунди між кожним натисканням клавіші.
Якщо затримка між натисканнями клавіш має бути випадковою , скажімо, від 100 до 300 мілісекунд, все стає дещо складніше:
$ 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 -
Цей for
цикл проходить через кожну букву рядка, збережену у змінній text
, друкуючи key <letter>
або key space
у випадку пробілу, після якого sleep 0.
і випадкове число від 1 до 3 ( xdotool
s sleep
інтерпретує число як секунди). Потім виводиться весь висновок циклу xdotool
, який друкує літери з випадковою затримкою між ними. Якщо ви хочете змінити затримку, просто змініть частину, будучи нижньою та верхньою межею - протягом 0,2 до 0,5 секунди .(RANDOM%x)+y
y
x-1+y
(RANDOM%4)+2
Зауважте, що цей підхід не друкує текст, а скоріше вводить його так, як це робив би користувач, синтезуючи окремі натискання клавіш. Внаслідок цього текст набирається у вікно, орієнтоване на даний момент; якщо ви зміните фокус-частину, текст набереться у щойно зосередженому вікні, що може бути, а може і не бути тим, що ви хочете. У будь-якому випадку погляньте на інші відповіді тут, всі вони є геніальними!