xdotool

xdotool — це утиліта для автоматизації вводу миші та клавіатури в X11 на Linux. Вона дозволяє емуляцію натискань клавіш, руху миші, зміни фокусу вікон та багато іншого.

Встановлення:

Ubuntu/Debian:

sudo apt update && sudo apt install xdotool

Arch Linux:

sudo pacman -S xdotool

Fedora:

sudo dnf install xdotool

Основні команди xdotool:

1. Симуляція натискання клавіш

  • Введення тексту:

    xdotool type "Hello, world!"
  • Натискання Enter:

    xdotool key Return
  • Поєднання клавіш:

    xdotool key ctrl+alt+t  # Відкрити термінал (у більшості дистрибутивів)

2. Управління мишею

  • Переміщення курсора в координати (x=100, y=200):

    xdotool mousemove 100 200
  • Лівий клік:

    xdotool click 1
  • Правий клік:

    xdotool click 3
  • Колесо миші:

    xdotool click 4  # Прокрутка вгору
    xdotool click 5  # Прокрутка вниз

3. Управління вікнами

  • Отримати ID активного вікна:

    xdotool getactivewindow
  • Змінити розмір активного вікна:

    xdotool windowsize $(xdotool getactivewindow) 800 600
  • Перемістити активне вікно:

    xdotool windowmove $(xdotool getactivewindow) 100 100
  • Мінімізувати активне вікно:

    xdotool windowminimize $(xdotool getactivewindow)

4. Автоматизація (натискання клавіш з паузою)

xdotool sleep 2 type "Цей текст з'явиться через 2 секунди"

Приклади сценаріїв

Автоматичне відкриття терміналу, виконання команди та закриття:

xdotool key ctrl+alt+t
sleep 1
xdotool type "echo 'Hello from xdotool!'"
xdotool key Return
sleep 2
xdotool key alt+F4

Запуск браузера та введення URL:

xdotool key super  # Відкрити меню (залежить від DE)
sleep 1
xdotool type "firefox"
xdotool key Return
sleep 3
xdotool type "https://example.com"
xdotool key Return

Як земулювати натискання двох клавіш Shift одночасно?

Щоб емулювати одночасне натискання обох клавіш Shift, можна використати команду:

xdotool key shift+shift

Або за допомогою команди keydown та keyup для точнішої емуляції утримування обох клавіш:

xdotool keydown Shift_L keydown Shift_R
sleep 0.1  # Коротка затримка (необов'язково)
xdotool keyup Shift_L keyup Shift_R

Last updated