---
name: "wlrctl"
section: "1"
platform: "linux"
package: "wlrctl"
version: "0.2.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/wlrctl"
---

# wlrctl(1)

A command line utility for miscellaneous wlroots extensions

## NAME

wlrctl - A command line utility for miscellaneous wlroots extensions

## SYNOPSIS

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

## OPTIONS

- **-h, --help**

  Show a help message and quit.

- **-v, --version**

  Show the wlrctl version and quit.

## COMMANDS

**keyboard** \<action\>

Use a virtual keyboard.

**pointer** \<action\>

Use a virtual pointer device.

**window\|toplevel** \<action\>

Use the foreign toplevel interface.

**output** { \<action\> \| \<identifier\> \[config\_action\] }

Use the output management interface.

## KEYBOARD ACTIONS

**type** \<string\> \[modifiers ...\]

Send a string to be typed into the focused client

**modifiers** \<SHIFT,CTRL,ALT,SUPER\> Comma-separated list of modifiers that will be depressed on the virtual keyboard while string is being typed.

## POINTER ACTIONS

**click** \[button\]

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

**move** \<dx\> \<dy\>

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** \<dy\> \<dx\>

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

## 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

**list**

List the names of all known outputs

## 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

Written by Ronan Pigott \<rpigott@berkeley.edu\>
