wlrctl(1) General Commands Manual wlrctl(1)

# [NAME](#NAME)

wlrctl - A command line utility for miscellaneous wlroots extensions

# [SYNOPSIS](#SYNOPSIS)

wlrctl \[options...] \[command]

# [OPTIONS](#OPTIONS)

**-h, --help**

Show a help message and quit.

**-v, --version**

Show the wlrctl version and quit.

# [COMMANDS](#COMMANDS)

**keyboard** &lt;action&gt;

Use a virtual keyboard.

**pointer** &lt;action&gt;

Use a virtual pointer device.

**window|toplevel** &lt;action&gt;

Use the foreign toplevel interface.

**output** { &lt;action&gt; | &lt;identifier&gt; \[config\_action] }

Use the output management interface.

# [KEYBOARD ACTIONS](#KEYBOARD_ACTIONS)

**type** &lt;string&gt; \[modifiers ...]

Send a string to be typed into the focused client

**modifiers** &lt;SHIFT,CTRL,ALT,SUPER&gt; Comma-separated list of modifiers that will be depressed on the virtual keyboard while string is being typed.

# [POINTER ACTIONS](#POINTER_ACTIONS)

**click** \[button]

Click a mouse button. If unspecified, clicks the default (left) button.

**move** &lt;dx&gt; &lt;dy&gt;

Move the cursor. *dx* is the displacement in positive-right direction, *dy* is the displacement in the positive-downward direction. Negative numbers are allowed. Units are pixels.

**scroll** &lt;dy&gt; &lt;dx&gt;

Scroll the cursor. *dy* is the amount of vertical scroll, *dx* is the amount of horizontal scroll. Negative numbers are allowed.

# [TOPLEVEL ACTIONS](#TOPLEVEL_ACTIONS)

**minimize** \[matches...]

Instruct the compositor to minimize matching windows.

**maximize** \[matches...]

Instruct the compositor to maximize matching windows.

**fullscreen** \[matches...]

Instruct the compositor to fullscreen matching windows.

**focus** \[matches...]

Instruct the compositor to focus matching windows.

**find** \[matches...]

Exit with a successful return code iff there is at least one window matching the provided criteria.

**wait** \[matches...]

Wait to return a successful return code until all the matching windows have closed. If there are no matches, exit with a failing return code immediately.

**waitfor** \[matches...]

Wait to return a successful return code until there is at least one window that matches the requested criteria.

# [OUTPUT ACTIONS](#OUTPUT_ACTIONS)

**list**

List the names of all known outputs

# [TOPLEVEL MATCHSPEC](#TOPLEVEL_MATCHSPEC)

A match is a colon separated attribute/value pair. e.g. To match a firefox window, a suitable match value is *app\_id:firefox*. You may give any number of match specifiers, and a window must match all of them to be considered. If the app\_id or title keys are specified more than once, a window may match any of the given values. Otherwise later key value pairs override previous ones. A match without a key is assumed to be an app\_id, so just *firefox* works in the example above.

Currently supported attributes are: *app\_id*, *title*, and *state*.

Supported state values are: *maximized*, *minimized*, *active*, and *fullscreen*, and their negations: *unmaximized*, *unminimized*, *inactive*, and *unfullscreen*. You can also use a '-' prefix, for example *state:-fullscreen*.

# [AUTHOR](#AUTHOR)

Written by Ronan Pigott &lt;rpigott@berkeley.edu&gt;

2026-10-16

---

Document: wlrctl(1) from wlrctl 0.2.2-r1 (Chainguard OS)
