← 返回 Skills 市场
cyanogenic

wlcom GUI Automation

作者 Cyanogenic · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ✓ 安全检测通过
20
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install wlcom-gui-automation
功能描述
Automate GUI tests on KylinOS V11 Wayland desktops using wlcctrl for window control, scaled pointer actions, screenshots, and result verification.
使用说明 (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.
安全使用建议
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.
功能分析
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.
能力评估
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.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install wlcom-gui-automation
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /wlcom-gui-automation 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
Initial release for KylinOS V11 Desktop wlcom/wlcctrl GUI automation
元数据
Slug wlcom-gui-automation
版本 0.1.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

wlcom GUI Automation 是什么?

Automate GUI tests on KylinOS V11 Wayland desktops using wlcctrl for window control, scaled pointer actions, screenshots, and result verification. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 20 次。

如何安装 wlcom GUI Automation?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install wlcom-gui-automation」即可一键安装,无需额外配置。

wlcom GUI Automation 是免费的吗?

是的,wlcom GUI Automation 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

wlcom GUI Automation 支持哪些平台?

wlcom GUI Automation 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 wlcom GUI Automation?

由 Cyanogenic(@cyanogenic)开发并维护,当前版本 v0.1.0。

💬 留言讨论