xdotool - эмулятор действий мыши и клавиатуры

Категория: Linux

Утилита предоставляет широкие возможности по управлению клавиатурой и мышью. Позволяет эмулировать нажатие клавиш и двигать курсор мыши. Некоторые примеры пригодятся при написании bash скриптов или для динамической подвязки горячих клавиш. Также вы можете заранее определить текст, который нужно ввести в определенное поле при определенных условиях.

* Xdotool умеет переключать клавиши с индикаторами *lock однако сами световые индикаторы не изменяют свое состояние.

Есть другие утилиты для эмуляции нажатия клавиш xvkbdxte (менее функциональная) и для работы с буфером обмена - xselxclip.

Примечание

Определить keycode и keysym клавиши, а также дополнительную информацию о клавише, можно утилитами xev или xkeycaps.
Также можно получить комбинацию клавиш утилитой xbindkeys:

xbindkeys -k

Примеры использования

Эмулировать нажатие клавиш по названию:

xdotool key Shift+Left
xdotool key Control+c
xdotool key Alt+Tab
xdotool key Shift+Caps_Lock
xdotool key XF86AudioRaiseVolume
xdotool key XF86AudioLowerVolume

xdotool keyup Mod2+Mod4+m     ## Отпустить клавиши
xdotool key Ctrl+Alt+Shift+m

Триггер нажатия клавиши по keycode или keysym:

xdotool key 0xfe08 # keysym клавиши Meta Right
xdotool key 134    # keycode клавиши Meta Right
xdotool key 105+62 # keycode клавиш Control_R и Shift_R

Эмулируем отпускание клавиши KP_End и нажатие комбинации Shift+Home:

xdotool keyup KP_End key Shift+Home

Эмулируем вставку из буфера (можно поиграться со значением delay):

xdotool key --clearmodifiers --delay 20 ctrl+shift+v

Определить позицию курсора:

xdotool getmouselocation
xdotool getmouselocation -shell
Данные о позиции курсора
X=224
Y=45
SCREEN=0
WINDOW=56623111

Выделить мышью область текста (примеры перемещения мыши): 

xdotool click --repeat 3 1 ## Triple Click (Select line)
xdotool click 2            ## Middle click
xdotool click 3            ## Right Click (Menu)
xdotool click 4            ## Scroll wheel up
xdotool click 5            ## Scroll wheel down

xdotool mousedown 1
xdotool mousemove 100 100 click 3
xdotool mousedown 1 sleep 0.1 mouseup 1

Эмуляция набора текста:

xdotool type --delay 0 --clearmodifiers "$(xsel -b -o)"  ## Вывести/напечатать текст из clipboard
Примечание

Есть более простой способ эмуляции ввода текста (требует рута):

echo "Y" > /dev/keyboard

#keys #keyboard #keycode #xdotool #emulation #hotkeys #bind keys

категория: Linux