ov-layers/skills/xdg-portal/SKILL.md
# xdg-portal - XDG Desktop Portal Infrastructure ## Overview Provides XDG Desktop Portal support for Sway containers. Installs the portal daemon, the wlroots-specific backend (`xdg-desktop-portal-wlr`), and the GTK fallback backend. Enables screen sharing, screenshots via portal API, and file dialogs for applications running inside the container. ## Layer Definition ```yaml depends: - dbus - sway - pipewire env: XDG_CURRENT_DESKTOP: "sway" rpm: packages: - xdg-desktop-portal
npx skillsauth add overthinkos/overthink-plugins ov-layers/skills/xdg-portalInstall 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 XDG Desktop Portal support for Sway containers. Installs the portal daemon, the wlroots-specific backend (xdg-desktop-portal-wlr), and the GTK fallback backend. Enables screen sharing, screenshots via portal API, and file dialogs for applications running inside the container.
depends:
- dbus
- sway
- pipewire
env:
XDG_CURRENT_DESKTOP: "sway"
rpm:
packages:
- xdg-desktop-portal
- xdg-desktop-portal-wlr
- xdg-desktop-portal-gtk
- slurp
| Property | Value |
|----------|-------|
| Depends | dbus, sway, pipewire |
| Packages | xdg-desktop-portal, xdg-desktop-portal-wlr, xdg-desktop-portal-gtk, slurp |
| Env | XDG_CURRENT_DESKTOP=sway |
| Service | None (D-Bus activation on demand) |
| Ports | None |
~/.config/sway/config.d/portal.conf which runs dbus-update-activation-environment to export WAYLAND_DISPLAY, XDG_RUNTIME_DIR, XDG_CURRENT_DESKTOP, and SWAYSOCK to the D-Bus activation environment. Without this, portal daemons can't find the Wayland display.~/.config/xdg-desktop-portal-wlr/config with chooser_type=none for headless automation (no user dialog for screen sharing).| Interface | Backend | Status | |-----------|---------|--------| | Screenshot | xdg-desktop-portal-wlr | Supported | | ScreenCast (PipeWire) | xdg-desktop-portal-wlr | Supported | | RemoteDesktop | — | NOT supported on wlroots | | File dialogs | xdg-desktop-portal-gtk | Supported (fallback) | | Settings | xdg-desktop-portal-gtk | Supported (fallback) |
sway-desktop metalayer (default for all desktop images)/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-layers:sway-desktop — Desktop metalayer that includes this layer/ov-layers:dbus — D-Bus session bus (required dependency)/ov-layers:pipewire — PipeWire (required for ScreenCast)/ov-layers:sway — Sway compositor (required)/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.