ov-selkies/skills/sway-browser-vnc/SKILL.md
Minimal Sway desktop with VNC remote access and Chrome browser. Use when working with VNC desktop containers or testing the sway-desktop-vnc composition.
npx skillsauth add overthinkos/overthink-plugins sway-browser-vncInstall 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.
Minimal Sway desktop with VNC (wayvnc on port 5900) and Chrome (CDP on port 9222).
| Property | Value | |----------|-------| | Base | fedora | | Layers | agent-forwarding, sway-desktop-vnc, dbus, ov | | Ports | 5900, 9222, 9224 |
ov image build sway-browser-vnc
ov start sway-browser-vnc
ov status sway-browser-vnc # Shows all probes: supervisord, cdp, dbus, ov, sway, vnc, wl
ov eval vnc status sway-browser-vnc
ov eval wl screenshot sway-browser-vnc screenshot.png
This image includes dbus and ov layers, enabling:
ov eval dbus notify — native Go D-Bus notifications via in-container ov binaryov eval dbus list/call/introspect — full D-Bus interactionov cmd — single command execution with desktop notification on completionov tmux cmd — tmux command sending with notificationov status — supervisord, dbus, and ov probesov eval dbus notify sway-browser-vnc "Build Complete" "Image built successfully"
ov cmd sway-browser-vnc "make test" # Notifies on completion
ov eval dbus list sway-browser-vnc # List all D-Bus services
The notification daemon (swaync) is included via the sway-desktop metalayer.
Fullscreen overlays for recording (via wl-overlay, included in sway-desktop):
ov eval wl overlay show sway-browser-vnc --type text --text "INTRO" --name title
ov eval wl overlay show sway-browser-vnc --type lower-third --text "Speaker" --subtitle "Role" --name lt
ov eval wl overlay show sway-browser-vnc --type countdown --seconds 3 --name cd
ov eval wl overlay show sway-browser-vnc --type highlight --region "430,290,510,50" --name hl
ov eval wl overlay show sway-browser-vnc --type fade --color black --name outro
ov eval wl overlay hide sway-browser-vnc --all
All overlay types render with true RGBA compositor transparency. See /ov-advanced:wl-overlay for the full recording workflow.
Desktop video recording via wf-recorder (included in sway-desktop):
ov eval record start sway-browser-vnc -n demo --mode desktop
# ... interact ...
ov eval record stop sway-browser-vnc -n demo -o demo.mp4
sway-browser-vnc can act as a test client for selkies-desktop, simulating how a real user would connect via browser:
# Both containers must be running on the ov bridge network
ov start sway-browser-vnc
ov start selkies-desktop
# Open selkies URL in sway-browser-vnc's Chrome
ov eval cdp open sway-browser-vnc "https://ov-selkies-desktop:3000"
# Interact with the remote desktop:
# Mouse: CDP Input.dispatchMouseEvent on the Selkies tab (with ~0.82x coordinate scaling)
# Keyboard: ov eval vnc type sway-browser-vnc "text" (passthrough via SPA's overlayInput)
# Screenshots: ov eval vnc screenshot sway-browser-vnc (shows full client desktop with stream)
# ov eval cdp screenshot sway-browser-vnc $TAB (shows only the stream content)
Key limitations when using as a client:
ov eval vnc key Return or CDP Browser.grantPermissionsSee /ov-selkies:selkies-desktop for detailed SPA interaction documentation.
Latest ov eval live sway-browser-vnc run: 84 passed, 0 failed, 1 skipped
(chrome-devtools-mcp-port references ${HOST_PORT:9224} which isn't
mapped here — correct skip behavior).
Covers all 19 transitive layers: wayvnc (VNC), sway (compositor),
chrome-sway, xdg-portal, waybar, swaync, pavucontrol, thunar,
xfce4-terminal, pipewire, wl-screenshot-grim, wl-overlay, wf-recorder,
desktop-fonts, fastfetch, asciinema, tmux, dbus, ov. Deploy-scope: VNC
port 5900 reachable, Chrome CDP on port 9250→9222 with /json/version
200. Image-scope: sway + wayvnc both RUNNING under supervisord.
/ov-selkies:sway-desktop-vnc, /ov-selkies:sway, /ov-selkies:wayvnc,
/ov-selkies:chrome-sway, /ov-selkies:xdg-portal, /ov-foundation:dbus,
/ov-foundation:ov, /ov-foundation:agent-forwarding/ov-build:eval — declarative testing framework (parent router for ov eval cdp|wl|dbus|vnc|mcp)/ov-advanced:vnc — VNC automation on this image/ov-advanced:cdp — Chrome automation (CDP on host port 9250)/ov-advanced:wl — Wayland input/windows/clipboard (sway subgroup for compositor control)/ov-advanced:dbus — D-Bus notifications via in-container ov binary/ov-build:mcp — the image inherits 2 deploy-scope mcp: checks from the chrome-devtools-mcp layer (ping + list-tools asserting navigate_page/take_screenshot). ov eval live sway-browser-vnc --filter mcp runs them; note the port-publishing gotcha — if your deploy.yml has an explicit ports: override that predates chrome-devtools-mcp, port 9224 may not be published. See /ov-build:mcp for the fix.selkies-desktop — browser-accessible remote desktop (can be accessed from sway-browser-vnc's Chrome)/ov-build:image — image family umbrella (image: entries in overthink.yml, build/validate/inspect/list)/ov-build:build — build.yml vocabulary (distros, builders, init-systems)development
Claude Code multi-agent support in Overthink — sub-agents, dynamic workflows, and agent teams, and how each drives the existing `ov eval` disposable beds to test and verify. MUST be invoked before authoring or invoking an ov sub-agent / dynamic workflow / agent team, wiring agent-lifecycle hooks, or asking "which primitive should drive the R10 beds?".
tools
Mounts a virtiofs share tagged `workspace` at /workspace inside a VM guest via a systemd .mount unit. Use when a kind:vm entity shares a host directory into the guest and you need it auto-mounted (and re-mounted at every boot).
development
MUST be invoked before any work involving: the `kind: android` schema kind, a `target: android` deploy, the `apk:` layer package format (installing Android apps declaratively), AndroidDeployTarget, an in-pod emulator OR a remote/physical adb-endpoint device, or nested `pod → android` deployment. The first-class Android device + app surface that sits above `ov eval adb`/`appium`.
tools
Use when committing, branching, pushing, merging, tagging, creating PRs, or approving/merging PRs with gh — the feat/-branch, R10-gated, never-force-push landing workflow across the main repo + the plugins submodule + image/<distro> submodules. Covers sync-to-upstream, branch/worktree pruning, the fork+PR path for contributors without write access, and cross-repo @github landing order.