wlcctrl(1)

wlcctrl1

A command line utility for kylin-wayland-compositor

Usage

wlcctrl [command] [options ...]

Global options

--help

Show a help message and quit.

-v, --version

Show a wlcctrl version and quit.

--exec <str>

Execute a shell command.

--sleep <int_ms>

Set sleep time in milliseconds. Can be combined with other commands.

example:

wlcctrl --keydown a --sleep 1000 --keyup a wlcctrl --mousepress 1 --sleep 200 --mouserelease 1

--path <str>

Set screenshot save path (PNG format). Uses last value when set multiple times.

with --windowcapture:

Set the window screenshot saved path.

with --workspacecapture:

Set the workspace screenshot saved path.

with --fullscreencapture:

Set the screen/output screenshot saved path.

example: wlcctrl --windowcapture uuid --path "/home/kylin/xxx.png"

-o <o_uuid>

Specify output device by UUID. Uses last value when set multiple times.

Keyboard options

--keystring <string>

Send a string to be typed into the focused client. No commands can chain after 'keystring'.

--key <key>

Send key events. Single key or key combination.

Note: CapsLock(58), NumLock(69), ScrollLock(70) may not switch states normally. For reliable lock key functionality, use ydotool instead.

Key mappings:

"PrintScreen" -> "sys_req" "esc" -> "escape" "ctrl" -> "control_l" "shift" -> "shift_l" "alt" -> "alt_l" "winleft" -> "super_l" "enter" -> "return"

Valid keys: escape, return, shift_l, shift_r, control_l, control_r, meta_l, meta_r, alt_l, alt_r, page_up, page_down, menu, caps_lock, pause, break, print, sys_req, scroll_lock, num_lock, etc.

Multiple keys separated by '+'.

examples:

wlcctrl --key control_l+alt_l+t wlcctrl --key ctrl+alt+t wlcctrl --key super_l

--keyup <key>

Release a single key.

--keydown <key>

Press a single key.

with --keyup:

Indicate pressing and releasing a key.

otherwise: Indicate the state of a key being pressed individually. The command defaults to releasing the key upon completion.

Pointer options

--mousebutton <button>

Click mouse button.

Button codes:

1 = BTN_LEFT 2 = BTN_RIGHT 3 = BTN_MIDDLE 4 = BTN_EXTRA 5 = BTN_SIDE 6 = BTN_FORWARD 7 = BTN_BACK

example:

wlcctrl --mousebutton 2

--mousepress [button]

Press a mouse button.

Button codes:

1 = BTN_LEFT 2 = BTN_RIGHT 3 = BTN_MIDDLE 4 = BTN_EXTRA 5 = BTN_SIDE 6 = BTN_FORWARD 7 = BTN_BACK

with --mouserelease

Indicate pressing and releasing a mouse button.

width --mousemove

Can be combined into a drag-and-drop action.

otherwise: Indicate the state of an individual mouse button being pressed. The command defaults to releasing the mouse button upon completion.

example: Click a mouse button.

wlcctrl --mousepress 2 --mouserelease 2

example: Complete a drag-and-drop action.

/wlcctrl --mousemove 500,600 --mousepress 1 --mousemove 100,200 --mouserelease 1

--mouserelease [button]

Release a mouse button.

Button codes: BTN_LEFT->1 | BTN_RIGHT->2 | BTN_MIDDLE->3 | BTN_EXTRA->4 | BTN_SIDE->5 | BTN_FORWARD->6 | BTN_BACK->7

--mousemove <dx,dy>

Move cursor. dx = right displacement, dy = down displacement. Only non-negative numbers allowed. Units: pixels.

example:

wlcctrl --mousemove 100,500

--scroll [-x <dx>] [-y <dy>]

Scroll cursor. Negative numbers allowed.

examples:

wlcctrl --scroll -y 10 wlcctrl --scroll -x 10 -y 20

--getmouselocation

Get the current mouse position.

Toplevel options

-l, --list

List the names of all known toplevel.

--windowmove <w_uuid> [options...]

Move the window to a specified position.

-x <dx>

dx is the displacement in positive-right direction.

-y <dy>

dy is the displacement in the positive-downward direction.

Only non-negative numbers are allowed.

example: wlcctrl --windowmove 182fcd8f-6136-413b-aa1b-c77b066ebe23 -x 200 -y 400

--windowsize <w_uuid> [options...]

Resize the window. w_uuid: This is the UUID of the toplevel device.

-w <width>

width is the desired window width.

-h <height>

height is the desired window height.

Units are pixels.

example: wlcctrl --windowsize 182fcd8f-6136-413b-aa1b-c77b066ebe23 -w 800 -h 600

--windowminimize <w_uuid>

Minimize window. w_uuid is the UUID of the toplevel.

--windowmaximize <w_uuid>

Maximize window. The default output device is the primary display. w_uuid is the UUID of the toplevel.

with -o

Set the output device for the action.

example: wlcctrl --windowmaximize <w_uuid> -o <o_uuid>

--windowfullscreen <w_uuid>

Fullscreen window. The default output device is the primary display. w_uuid is the UUID of the toplevel.

with -o

Set the output device for the action.

example: wlcctrl --windowfullscreen <w_uuid> -o <o_uuid>

--windowenter <w_uuid:uuid>

Add the window into the specified workspace. w_uuid is the UUID of the toplevel. uuid is the workspace that window to be entered.

--windowleave <w_uuid:uuid>

Remove the window from the specified workspace. w_uuid is the UUID of the toplevel. uuid is the workspace that window to be left.

--movewindowtoworkspace <w_uuid:uuid>

Move the window to the specified workspace. w_uuid is the UUID of the toplevel. uuid is the workspace that window moved to.

--movewindowtooutput <w_uuid:o_uuid>

Move the window to the specified output device. w_uuid is the UUID of the toplevel. o_uuid is the UUID of the output device.

--windowmap <w_uuid>

Restore window. w_uuid is the UUID of the toplevel.

--windowclose <w_uuid>

Close window. w_uuid is the UUID of the toplevel.

--windowkill <app_id>

Force close all windows of the specified app_id.

--windowactivate <w_uuid>

Activate the specified window. w_uuid is the UUID of the toplevel.

--windowcapture <w_uuid>

Take a screenshot of a window. Saved by default in the current working directory. w_uuid is the UUID of the toplevel.

--getactivewindow

Get the current active window.

--getwindowname <w_uuid>

Query the app ID, title, icon and pid of a specific window. w_uuid is the UUID of the toplevel.

--getwindowgeometry <w_uuid>

Query the geometry of a specific window. w_uuid is the UUID of the toplevel.

Output options

--outputs

List the name of all known outputs.

--getdisplaygeometry <o_uuid>

Get the geometry of a specified output. o_uuid is the UUID of the output device.

--fullscreencapture

Take a fullscreen screenshot. Saved the file to the current working directory by default. By default, capture a fullscreen image of the primary display.

example: wlcctrl --fullscreencapture

with -o

Set the output device for the action.

example: wlcctrl --fullscreencapture -o <o_uuid>

--setarea <x,y,width,height>

Area screenshot. Set the position and size of the rectangular region. The default output device is the primary display.

x is X coordinate of the screenshot area in output coordinate. y is Y coordinate of the screenshot area in output coordinate. width is Width of the screenshot area. height is Height of the screenshot area.

with -o

Set the output device for the area.

with --path

Set the screenshot save path.

example: wlcctrl --setarea 10,40,500,100 --path "/home/kylin/xxx.png"

wlcctrl --setarea 10,40,500,500 --path "/home/kylin/xxx111.png" -o d4d40b7b-5e2e-396a-eaa2-7b5efea5a3ec

--getpixelcolor <x,y>

Get the RGBA value of a pixel at a specified position. The default output device is the primary display. x is X coordinate of the point in output coordinate. y is Y coordinate of the point in output coordinate.

with -o

Set the output device for the pixel location.

example: wlcctrl --getpixelcolor 100,3

Workspace options

--workspace

List the name of all known workspaces.

--workspacecapture <uuid:o_uuid>

Take a screenshot of a workspace. Saved the file to the current working directory by default. uuid is the workspace that needs to be captured. o_uuid is the UUID of the output device.

--workspaceadd <num>

Add new workspaces. If num is unspecified, a workspace will be added by default.

--workspaceremove <uuid>

Remove the specified workspace. uuid: The workspace that needs to be operated on.

--workspaceactive <uuid>

Activate the specified workspace. uuid is the workspace that needs to be operated on.

From kylin-wayland-compositor 1.3.2-1 in Arch Linux 2026-11-07. Parsed by carta from the page's man source.