ov-layers/skills/wl-tools/SKILL.md
# wl-tools - Compositor-Agnostic Desktop Automation Tools ## Overview Provides CLI tools for desktop automation — Wayland-native, X11, and clipboard. Used by the `ov test wl` command. Works on all wlroots compositors (sway, labwc, niri). No daemon or special device access needed. **Note:** Screenshots are NOT included in this layer. Use `wl-screenshot-grim` (sway) or `wl-screenshot-pixelflux` (selkies) depending on your compositor. ## Layer Definition ```yaml rpm: packages: - wtype
npx skillsauth add overthinkos/overthink-plugins ov-layers/skills/wl-toolsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Provides CLI tools for desktop automation — Wayland-native, X11, and clipboard. Used by the ov test wl command. Works on all wlroots compositors (sway, labwc, niri). No daemon or special device access needed.
Note: Screenshots are NOT included in this layer. Use wl-screenshot-grim (sway) or wl-screenshot-pixelflux (selkies) depending on your compositor.
rpm:
packages:
- wtype
- wlrctl
- xdotool
- xprop
- xwininfo
- wl-clipboard
- wlr-randr
- ydotool
No dependencies — compositor-agnostic. Works with sway, labwc, niri, or any wlroots compositor.
| Property | Value |
|----------|-------|
| Depends | None (compositor-agnostic) |
| Packages | wtype, wlrctl, xdotool, xprop, xwininfo, wl-clipboard, wlr-randr, ydotool |
| Service | None (all tools are one-shot CLI commands) |
| Ports | None |
| Tool | Protocol | Purpose |
|------|----------|---------|
| wtype | zwp_virtual_keyboard_v1 | Keyboard input (type text, send keys, key combos with -M) |
| wlrctl | wlr-virtual-pointer, wlr-foreign-toplevel-management | Pointer control (move, click) + window management (list, focus, close, fullscreen, minimize) |
| wl-copy / wl-paste | wlr-data-control | Clipboard read/write |
| wlr-randr | wlr-output-management | Output resolution query and set |
| ydotool | /dev/uinput | Wayland-native mouse drag, scroll (press/release separation) |
| Tool | Purpose |
|------|---------|
| xdotool | X11 window interaction (click, type, key, move, search, activate, scroll) |
| xprop | X11 window property inspection (WM_CLASS, _NET_WM_NAME, _NET_WM_PID) |
| xwininfo | X11 window geometry information |
All packages are in Fedora official repos.
sway-desktop metalayer (+ wl-screenshot-grim for screenshots)selkies-desktop metalayer (+ wl-screenshot-pixelflux for screenshots)| Tool | sway | labwc (selkies) | niri | |------|------|-----------------|------| | wtype | YES | YES | YES | | wlrctl pointer | YES | YES | YES | | wlrctl toplevel | YES | YES | YES | | wlr-randr | YES | YES | YES | | wl-clipboard | YES | YES | YES | | xdotool | YES (XWayland) | YES (XWayland on-demand) | YES (XWayland) | | ydotool | YES | YES (needs /dev/uinput) | YES |
/ov-images:sway-browser-vnc (via sway-desktop metalayer)/ov-images:openclaw-sway-browser (via sway-desktop metalayer)/ov-images:openclaw-ollama-sway-browser (via sway-desktop metalayer)/ov-images:selkies-desktop (via selkies-desktop metalayer)/ov-images:selkies-desktop-nvidia (via selkies-desktop metalayer)/ov:wl — CLI command that uses these tools (22 subcommands)/ov-layers:wl-screenshot-grim — Screenshot layer for sway (grim)/ov-layers:wl-screenshot-pixelflux — Screenshot layer for selkies (pixelflux pipeline)/ov-layers:sway-desktop — Desktop metalayer that includes this layer/ov-layers:selkies-desktop — Desktop metalayer that includes this layer/ov:layer — layer authoring reference (layer.yml schema, task verbs, service declarations)/ov:test — declarative testing (tests: block, ov image test, ov test)tools
OpenCharly CLI (charly) binary installed into container/VM images for in-container use. Use when working with charly binary deployment inside containers, native D-Bus support, or the full charly toolchain (charly binary + virtualization + gocryptfs + socat).
development
Operator CachyOS workstation profile — a kind:local template + target:local deploy that installs the full dev stack (30 candies) onto a CachyOS host via ShellExecutor. Lives in the overthinkos/cachyos submodule. MUST be invoked before editing or applying the charly-cachyos workstation profile.
tools
Fedora box with the full charly toolchain using shared candies. Rootless-first — runs as uid=1000 with passwordless sudo (no root, no cap_add: ALL). Same candy list as charly-arch. Includes NVIDIA GPU runtime. MUST be invoked before building, deploying, configuring, or troubleshooting the charly-fedora box.
tools
Arch Linux box with the full charly toolchain. Rootless-first — runs as uid=1000 with passwordless sudo (no root, no cap_add: ALL). Composes /charly-coder:charly-mcp so the box is reachable as an MCP gateway on port 18765. NVIDIA GPU runtime composed in. MUST be invoked before building, deploying, configuring, or troubleshooting the charly-arch box.