---
name: "xdo"
section: "1"
platform: "linux"
package: "xdo"
version: "0.5.7-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/xdo"
---

# xdo(1)

Perform actions on windows

## NAME

xdo - Perform actions on windows

## SYNOPSIS

**xdo** *ACTION* \[*OPTIONS*\] \[*WID* ...\]

## DESCRIPTION

Apply the given action to the given windows.

If no window IDs and no options are given, the action applies to the focused window.

## ACTIONS

**close**

Close the window.

**kill**

Kill the client.

**hide**

Unmap the window.

**show**

Map the window.

**raise**

Raise the window.

**lower**

Lower the window.

**below**

Put the window below the target (see **-t**).

**above**

Put the window above the target (see **-t**).

**move**

Move the window.

**resize**

Resize the window.

**activate**

Activate the window.

**id**

Print the window’s ID.

**pid**

Print the window’s pid.

**key\_press**, **key\_release**

Simulate a key press/release event.

**button\_press**, **button\_release**

Simulate a button press/release event.

**pointer\_motion**

Simulate a pointer motion event.

**-h**

Print the synopsis and exit.

**-v**

Print the version and exit.

## OPTIONS

When options are provided, the action applies to all the children of the root window that match the comparisons implied by the options in relation to the focused window.

- **-r**

  Distinct ID.

- **-c**

  Same class.

- **-C**

  Distinct class.

- **-d**

  Same desktop.

- **-D**

  Distinct desktop.

- **-n** *INSTANCE\_NAME*

  The window has the given instance name.

- **-N** *CLASS\_NAME*

  The window has the given class name.

- **-a** *WM\_NAME*

  The window has the given wm name.

- **-t** *WID*

  The target window for the **below** and **above** actions.

- **-p** *PID*

  The window has the given pid.

- **-k** *CODE*

  Use the given code for the **key\_press**, **key\_release**, **button\_press** and **button\_release** actions.

- **-x** *\[±\]PIXELS*

  Window x coordinate (or delta) for the **move** and **pointer\_motion** action.

- **-y** *\[±\]PIXELS*

  Window y coordinate (or delta) for the **move** and **pointer\_motion** action.

- **-w** *\[±\]PIXELS*

  Window width (or delta) for the **resize** action.

- **-h** *\[±\]PIXELS*

  Window height (or delta) for the **resize** action.

- **-m**

  Wait for the existence of a matching window.

- **-s**

  Handle symbolic desktop numbers.

## EXAMPLES

Close the focused window:

```
xdo close
```

Close all the windows having the same class as the focused window:

```
xdo close -c
```

Hide all the windows of the current desktop except the focused window:

```
xdo hide -dr
```

Activate the window which ID is 0x00800109:

```
xdo activate 0x00800109
```

Send fake key press/release events with keycode 46 to the focused window:

```
xdo key_press -k 46; sleep 0.2; xdo key_release -k 46
```
