# xdotool

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

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

Ubuntu/Debian:

```bash
sudo apt update && sudo apt install xdotool
```

Arch Linux:

```bash
sudo pacman -S xdotool
```

Fedora:

```bash
sudo dnf install xdotool
```

***

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

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

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

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

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

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

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

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

  ```bash
  xdotool mousemove 100 200
  ```
* Лівий клік:

  ```bash
  xdotool click 1
  ```
* Правий клік:

  ```bash
  xdotool click 3
  ```
* Колесо миші:

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

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

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

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

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

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

  ```bash
  xdotool windowminimize $(xdotool getactivewindow)
  ```

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

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

***

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

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

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

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

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

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

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

```bash
xdotool key shift+shift
```

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

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