Делает ли `xdotool key --delay` паузу на указанную задержку между набором каждых двух последовательных клавиш?

man-страница xdotool говорит

- delay миллисекунды Задержка между нажатиями клавиш. По умолчанию 12 мс.

Я думал, что строка ключа будет вводить каждый символ в строке один раз, а - задержка предназначена для паузы между вводом двух последовательных символов. Так почему же следующие первые две команды ничего не показывают, в то время как третья вводит дважды, а последняя - много раз? Спасибо.

$ xdotool key 9
$ xdotool key --delay 2 9
$ xdotool key --delay 1000 9
99$ xdotool key --delay 10000 9
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999^C

Я использую Lubuntu 18.04 и

$ xdotool -v
xdotool version 3.20160805.1
0
задан 5 December 2018 в 17:26

1 ответ

В руководстве действительно говорится

Задержка между нажатиями клавиш. По умолчанию 12 мс.

Это приводит к тому, что между каждым (имитируемым) нажатием и отпусканием клавиши будет задержка на установленное значение. Однако эта опция ведет себя так, как если бы клавиша была нажата в течение периода, указанного задержкой, без такой задержки между различными нажатиями клавиш. Когда задержка достаточно велика, срабатывает автоповтор, и персонаж повторяется.

Для получения желаемого поведения при наличии паузы между нажатиями клавиш лучше использовать команду sleep:

xdotool sleep 1 key 9

9 будет нажата через одну секунду. Два последовательных нажатия клавиш с интервалом в одну секунду могут быть выполнены

xdotool sleep 1 key 9 sleep 1 key 2

.В качестве альтернативы, при работе со сценариями bash можно ввести задержку с помощью команды bash sleep между вызовами xdotool.

#!/bin/sh
sleep 1
xdotool key 9
sleep 1
xdotool key 2
3
ответ дан 11 September 2020 в 16:07

Другие вопросы по тегам:

Похожие вопросы: