infrastructure/skills/dbus-layer/SKILL.md
D-Bus session bus for inter-process communication inside containers. Use when working with D-Bus, desktop services, Wayland compositor dependencies, or ov eval dbus commands.
npx skillsauth add overthinkos/overthink-plugins dbus-layerInstall 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.
| Property | Value |
|----------|-------|
| Dependencies | supervisord |
| Service | dbus (supervisord, priority 2) |
| Install files | task: |
| Variable | Value |
|----------|-------|
| DBUS_SESSION_BUS_ADDRESS | unix:path=/tmp/dbus-session |
dbus-daemon (RPM)RPM: dbus-daemon (Fedora) · PAC: dbus (Arch) · DEB: dbus (Debian/Ubuntu). Full parity — same DBUS_SESSION_BUS_ADDRESS env, same supervisord fragment, identical behavior downstream.
# image.yml -- now included in all images with supervisord
my-image:
layers:
- dbus
ov eval dbus IntegrationThe ov eval dbus command provides native Go D-Bus interaction with containers via godbus/dbus/v5. It operates in two modes:
ov eval dbus notify myimage "title" "body"): delegates to the container's ov binary via engine exec container ov eval dbus notify . "title" "body". Falls back to gdbus call if ov binary is not in the container.ov eval dbus notify . "title" "body"): connects directly to the local session bus. This is what runs inside the container when delegated from the host.ov eval dbus notify <image> "title" "body" # Send desktop notification
ov eval dbus list <image> # List D-Bus services
ov eval dbus call <image> <dest> <path> <method> [type:value...] # Generic method call
ov eval dbus introspect <image> <dest> <path> # Service introspection
ov cmd/ov tmux cmd/ov eval record cmd → sendContainerNotification() → ov eval dbus notify → org.freedesktop.Notifications.Notify → swaync/mako → desktop popup
For notifications to work, the image needs:
dbus layer — D-Bus session bus (this layer)swaync layer — notification daemonov layer — in-container ov binary for native D-Bus (falls back to gdbus from glib2)ov eval dbus provides explanatory errors when D-Bus is unavailable:
dbus layerswayncov binary → falls back to gdbus, warns about adding ov layerov status ProbeThe dbus probe checks:
dbus-daemon process is runningShows as dbus:ok (notify:swaync) in ov status detail view.
sway in all desktop images/ov-infrastructure:supervisord -- process manager dependency/ov-selkies:sway -- primary consumer (Sway depends on dbus)/ov-selkies:swaync -- notification daemon (depends on dbus)/ov-selkies:libnotify -- notify-send CLI tool (depends on dbus)/ov-tools:ov -- in-container ov binary for native D-Bus/ov-eval:dbus — Native Go D-Bus commands (notify, list, call, introspect)Use when the user asks about:
DBUS_SESSION_BUS_ADDRESS environment variableov eval dbus commands (notify, call, list, introspect)/ov-image:layer — layer authoring reference (layer.yml schema, task verbs, service declarations)/ov-eval:eval — declarative testing (eval: block, ov eval image, ov eval live)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.