Можно ли отправлять нажатия клавиш в неактивное окно?

Я хотел бы знать, знает ли кто-нибудь метод, в котором я могу сфокусировать окно, например, браузер, и отправлять нажатия клавиш в неактивное окно, например, текстовый редактор. Например, что-то писать, когда текстовый редактор свернут (это не конкретная задача, которую я делаю, а пример).

1
задан 16 July 2019 в 12:09

1 ответ

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

этот, если для да/нет.. измените для стиля ввода текста

dialogue --man

имеет один для - inputbox, который подошел бы для Вашего приложения. необходимо будет сделать это сами.

sudo apt install dialog 

dialog --title "texttoeditor" \
--backtitle "Suspend Confirmation " \
--yesno "Are you sure you want to suspend 
\"/tmp/foo.txt\"?" 7 60
# Get exit status
# 0 means user hit [yes] button.
# 1 means user hit [no] button.
# 255 means user hit [Esc] key.
response=$?
case $response in
0) systemctl suspend -i ;;
1) echo "suspend cancelled.";;
255) echo "[ESC] key pressed.";;
esac
text=<however we get the result as text for that input 
dialogue  for use below by xdotool  
clear
exit

теперь Вам ввели текст, копию это к буферу обмена или хранилищу как переменный $text для сценария

sudo способная установка xdotool

мы можем получить активное окно и сохранить, это - идентификатор, активируйте временно текстовый редактор (gedit используемый здесь), вставьте текст в от буфера обмена с помощью нажатий клавиш редакторов (например, ctrl-v), затем повторно активируйте активное окно снова. aggh, та работа привычки, поскольку текущее окно является диалогом, таким образом, необходимо было бы поместить следующую id1 строку, ПРЕЖДЕ ЧЕМ диалог выше назовут.

сохраните текущий идентификатор id1 окон =, $ (xdotool getwindowfocus) # xdotool нужен идентификатор с имени редактора

name="gedit"

$ id2= (xdotool поиск - настольный 0 - класс "$name")

 xdotool windowactivate --sync $id2 key  --clearmodifiers  --delay 100

xdotool keydown ctrl && xdotool key v

лучшая альтернатива

xdotool type --window $id2 $text

больше информации о xdotool здесь https://www.linux.org/threads/xdotool-keyboard.10528/xdotool windowactivate - синхронизирующем ключе $id1 - clearmodifiers - задерживается 100

некоторая работа там для Вас, я не протестировал всех тех.

0
ответ дан 7 December 2019 в 19:32

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

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