Еще одно предложение по xdotool, работающее в Debian Jessie 8.7 (январь 2017):
xdotool click --delay 0 --clearmodifiers 2
- xdotool обрабатывает многобайтовые строки (pe UTF-8), в отличие от xvkbd.
xdotool click
имитирует фактический щелчок, поэтому вам не нужно нажимать на себя, чтобы вставить в позицию мыши, как если бы вы использовали xdotool type
, или xvkbd.
Единственная проблема заключается в том, что --clearmodifiers
после имитации клика «нажмет» обратно любой модификатор (Ctrl / Alt / Shift / Meta), который вы используете. Даже с --delay 0
(вместо 12 мс) выполнение команды занимает немного времени. Если вы отпустите клавиши до того, как они закончатся, ваши модификаторы будут снова «нажаты» и останутся там до тех пор, пока вы не нажмете и не отпустите актуальную клавишу еще раз.
Так что с этим вы должны быть немного «медленными» (50 мс?), Чтобы выпустить ваши модификаторы, если вы их используете.
Вы можете проверить это, настроив сочетание клавиш, используя его в текстовом редакторе, а затем нажав клавишу (например a
, или стрелку). Буква должна появиться в нижнем регистре. Если что-то происходит, вы слишком быстры, и модификатор застрял (например, Shift, если он написан заглавными буквами, Ctrl, если вы выбрали весь текст, Alt, если вы открыли меню). Нажмите и отпустите ваши модификаторы снова, чтобы сбросить их.
Если вы слишком быстры, вы можете воспользоваться предложением ilkerk:
sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0 "`xsel`"'
Затем вы должны выпустить их менее чем за 300 мс и подождать полсекунды, пока текст не появится.
Кроме того, использование xdotool type
означает, что вы вставляете текст, как если бы вы печатали, в позиции курсора текста, а не в указателе мыши. Вы можете изменить его на, click
если вы предпочитаете обычное поведение среднего щелчка.
(сделал этот пост, чтобы новичкам больше не приходилось разбирать кусочки головоломки, разложенные в комментариях)