これは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
のsleep
解釈秒などの数)。次に、ループの出力全体がにパイプされxdotool
、ランダムな遅延を挟んで文字が出力されます。遅延を変更したい場合は、下限と上限である部品を変更するだけです。0.2〜0.5秒間はになります。(RANDOM%x)+y
y
x-1+y
(RANDOM%4)+2
このアプローチはしないことに注意してください印刷するテキストを、ではなく、入力し、単一のキーの押下を合成し、それが正確にユーザーが行うのと同じよう。結果として、テキストは現在フォーカスされているウィンドウに入力されます。テキストのフォーカス部分を変更すると、新しくフォーカスされたウィンドウにテキストが入力されますが、これは必要な場合とそうでない場合があります。いずれの場合も、ここで他の回答をご覧ください。それらはすべて素晴らしいです!