← Back to Skills Marketplace
cyanogenic

wlcom GUI Automation

by Cyanogenic · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ✓ Security Clean
20
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install wlcom-gui-automation
Description
Automate GUI tests on KylinOS V11 Wayland desktops using wlcctrl for window control, scaled pointer actions, screenshots, and result verification.
README (SKILL.md)

wlcom GUI Automation

Use this skill when automating GUI tests on KylinOS V11 Desktop(银河麒麟桌面操作系统 V11)using wlcom's wlcctrl command.

Ground rules

  • V11 uses Wayland + UKUI + wayland-compositor/wlcom; do not assume X11 tools are authoritative.
  • Prefer wlcctrl for window discovery, screenshots, pointer movement, clicks, keys, and window placement.
  • Always inspect scale before calculating pointer coordinates.
  • wlcctrl --mousemove is absolute, despite the man page saying displacement.
  • On tested V11 machines, --mousemove input must be logical coordinate × output scale; --getmouselocation returns logical coordinates.
  • --windowmove -x/-y uses logical coordinates; do not multiply by scale.
  • Current wlcctrl v1.0.0 help/man shows screenshot support, but no recording subcommand. If recording is required, check for other wlcom tools or use an approved recorder.

Quick workflow

# 1. Confirm tool and version
command -v wlcctrl
wlcctrl --version

# 2. Inspect output UUID and scale
wlcctrl --outputs
wlcctrl --getdisplaygeometry \x3Coutput_uuid>
gsettings get org.ukui.SettingsDaemon.plugins.xsettings scaling-factor 2>/dev/null || true

# 3. Find target window
wlcctrl --list
wlcctrl --search '\x3Capp_id_or_title_regex>'
wlcctrl --getactivewindow
wlcctrl --getwindowgeometry \x3Cw_uuid>

# 4. Capture for visual coordinate identification
wlcctrl --windowcapture \x3Cw_uuid> --path /tmp/window.png

# 5. Move and click by scaled pointer coordinates
# logical_screen_x = window_x + screenshot_relative_x
# logical_screen_y = window_y + screenshot_relative_y
# mousemove_x = round(logical_screen_x * scale)
# mousemove_y = round(logical_screen_y * scale)
wlcctrl --mousemove \x3Cmousemove_x>,\x3Cmousemove_y>
wlcctrl --getmouselocation
wlcctrl --mousebutton 1

# 6. Verify by screenshot or pixel/window state
wlcctrl --windowcapture \x3Cw_uuid> --path /tmp/after.png

Helper scripts

The skill includes scripts under scripts/:

  • scripts/wlcctrl-info.sh — print version, outputs, display geometry, scale candidates, active window, and mouse location.
  • scripts/wlcctrl-window-click.sh \x3Cwindow_uuid> \x3Crelative_x> \x3Crelative_y> [button] — click a point relative to a window screenshot. It reads window geometry and output scale, converts to scaled --mousemove input, verifies location, then clicks.
  • scripts/wlcctrl-move-window.sh \x3Cwindow_uuid> \x3Cx> \x3Cy> — move a window using logical coordinates and verify geometry.

Resolve script paths relative to this SKILL.md directory before running.

Common commands

Outputs and scale

wlcctrl --outputs
wlcctrl --getdisplaygeometry \x3Coutput_uuid>

Look for:

physical size: 300x190 mm
scale: 1.750000
mode: 2880 x 1800 @ 90
position: 0, 0

xdpyinfo may report Xwayland logical DPI (for example 96x96) and should not be used alone for Wayland coordinate conversion.

Windows

wlcctrl --list
wlcctrl --search '\x3Cregex>'
wlcctrl --getactivewindow
wlcctrl --getwindowname \x3Cw_uuid>
wlcctrl --getwindowgeometry \x3Cw_uuid>
wlcctrl --windowactivate \x3Cw_uuid>
wlcctrl --windowmove \x3Cw_uuid> -x 0 -y 0
wlcctrl --windowsize \x3Cw_uuid> -w 800 -h 600

Screenshots

wlcctrl --windowcapture \x3Cw_uuid> --path /tmp/window.png
wlcctrl --fullscreencapture --path /tmp/full.png
wlcctrl --setarea \x3Cx,y,width,height> --path /tmp/area.png
wlcctrl --workspacecapture \x3Cworkspace_uuid:output_uuid> --path /tmp/workspace.png

Keyboard and pointer

wlcctrl --key ctrl+alt+t
wlcctrl --keystring 'text to type'
wlcctrl --mousebutton 1
wlcctrl --mousepress 1 --mouserelease 1
wlcctrl --scroll -y 10
wlcctrl --getmouselocation

For drag actions, move to start, press, move to end, release. Remember --mousemove coordinates are scaled absolute coordinates.

Coordinate recipe

Given:

  • output scale = S
  • window geometry = (WX, WY) WIDTH x HEIGHT
  • target point in captured window image = (RX, RY)

Then:

logical_x = WX + RX
logical_y = WY + RY
mousemove_x = round(logical_x * S)
mousemove_y = round(logical_y * S)

Run:

wlcctrl --mousemove "${mousemove_x},${mousemove_y}"
wlcctrl --getmouselocation   # should be near logical_x,logical_y
wlcctrl --mousebutton 1

Known tested example on one V11 machine:

  • output eDP-1, scale 1.75
  • calculator window geometry: (607, 176) 432 x 628
  • = center in window screenshot (376,593)
  • logical target (983,769)
  • --mousemove input about (1720,1346)
  • --getmouselocation returns about (983,769)

Test pattern

For a reliable GUI automation test:

  1. Normalize the window: activate and optionally move to (0,0).
  2. Capture the window.
  3. Identify target controls from screenshot coordinates.
  4. Click via scaled absolute --mousemove + --mousebutton.
  5. Capture again and verify visually or with OCR/image analysis.
  6. Log every wlcctrl command and its output for reproducibility.

Safety

  • Avoid --windowclose and --windowkill unless the user explicitly asks.
  • Before sending destructive keystrokes, confirm target window UUID/title.
  • Store test screenshots/logs under a project artifacts/ directory when possible.
Usage Guidance
Install/use this only if you need KylinOS V11 wlcom GUI testing. Run it in a test desktop, confirm the target window and coordinates before clicks or typing, and keep screenshots/logs out of sensitive locations.
Capability Analysis
Type: OpenClaw Skill Name: wlcom-gui-automation Version: 0.1.0 The skill bundle provides GUI automation capabilities for KylinOS V11 using the native 'wlcctrl' utility. The scripts (wlcctrl-info.sh, wlcctrl-move-window.sh, and wlcctrl-window-click.sh) are straightforward wrappers for window discovery, coordinate scaling, and input simulation. No evidence of data exfiltration, malicious persistence, or prompt injection was found; the functionality is consistent with the stated purpose of GUI testing.
Capability Assessment
Purpose & Capability
The stated purpose is Wayland GUI test automation, and the included instructions/scripts match that purpose; the capability is still high-impact because it can move/click/type and capture windows or screens.
Instruction Scope
The instructions are scoped to KylinOS V11/wlcom testing and include safety guidance such as avoiding window close/kill unless explicitly requested and confirming targets before destructive keystrokes.
Install Mechanism
There is no install spec and no remote installer; however, the metadata does not declare the wlcctrl runtime dependency even though the skill and scripts require it.
Credentials
The skill is clearly intended for KylinOS V11 Wayland/wlcom desktops, but the registry metadata lists no OS restriction, so users should verify they are on the intended environment.
Persistence & Privilege
The artifacts show no credentials, background persistence, privilege escalation, or network exfiltration; screenshots/logs are user-directed local test artifacts.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install wlcom-gui-automation
  3. After installation, invoke the skill by name or use /wlcom-gui-automation
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial release for KylinOS V11 Desktop wlcom/wlcctrl GUI automation
Metadata
Slug wlcom-gui-automation
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is wlcom GUI Automation?

Automate GUI tests on KylinOS V11 Wayland desktops using wlcctrl for window control, scaled pointer actions, screenshots, and result verification. It is an AI Agent Skill for Claude Code / OpenClaw, with 20 downloads so far.

How do I install wlcom GUI Automation?

Run "/install wlcom-gui-automation" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is wlcom GUI Automation free?

Yes, wlcom GUI Automation is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does wlcom GUI Automation support?

wlcom GUI Automation is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created wlcom GUI Automation?

It is built and maintained by Cyanogenic (@cyanogenic); the current version is v0.1.0.

💬 Comments