ov-layers/skills/swaync/SKILL.md
SwayNotificationCenter notification daemon for wlroots compositors (sway, labwc). Use when working with desktop notifications, notification center, or swaync configuration.
npx skillsauth add overthinkos/overthink-plugins swayncInstall 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 | dbus |
| Service | swaync (supervisord, priority 14, startsecs=2) |
| Install files | layer.yml, tasks:, swaync-wrapper, config.json, style.css |
SwayNotificationCenter (RPM) -- provides swaync, swaync-clientRuns as a supervisord service (priority 14, startsecs=2) via swaync-wrapper which waits for the Wayland socket before starting. The wrapper uses pkill -9 -x swaync (exact name match) to kill any stale instance before exec, preventing D-Bus name conflicts on restart. startsecs=2 gives swaync time to claim the D-Bus name before supervisord declares it running. Priority 14 ensures swaync starts after the compositor (10-12) but before waybar (15), so the notification indicator module is ready.
The tasks: removes D-Bus auto-activation service files (org.erikreider.swaync.service, org.erikreider.swaync.cc.service) at build time. Without this fix, D-Bus spawns a competing swaync instance when waybar's swaync-client -swb queries the notification service ~2 seconds after startup. The SystemdService= directive in those files is intended to delegate to systemd, but since containers use supervisord (not systemd as PID 1), D-Bus falls back to Exec=/usr/bin/swaync, creating a second instance that steals the D-Bus bus name from the supervisord-managed one — causing the supervisord instance to exit with FATAL status.
~/.config/swaync/config.json)~/.config/swaync/style.css)Catppuccin Mocha theme matching waybar:
The waybar custom/notification module displays a notification bell icon using swaync-client:
swaync-client -t)swaync-client -d)desktop-fonts layer)Works with any wlroots compositor via wlr-layer-shell protocol:
# Preferred: use ov test dbus notify (native Go D-Bus, no shell quoting issues)
ov test dbus notify <image> "Title" "Body text"
# Alternative: use ov cmd with notification (triggers on completion)
ov cmd <image> "sleep 2 && echo done"
# Check if swaync is receiving notifications
ov test dbus list <image> | grep Notifications
# Low-level: notify-send (requires libnotify layer)
ov cmd <image> "notify-send 'Title' 'Body text'" --no-notify
# swaync-client operations
ov cmd <image> "swaync-client -c" # notification count
ov cmd <image> "swaync-client -C" # clear all
ov cmd <image> "swaync-client -t" # toggle panel
ov cmd <image> "swaync-client -d" # toggle DnD
/ov-layers:sway-desktop -- via metalayer composition/ov-layers:selkies-desktop -- via metalayer composition/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-layers:dbus -- D-Bus session bus dependency/ov-layers:libnotify -- notify-send CLI (optional; ov test dbus notify uses native Go D-Bus instead)/ov-layers:waybar -- notification bell module/ov-layers:waybar-labwc -- same notification bell module/ov-layers:desktop-fonts -- Nerd Font icons for notification bellUse when the user asks about:
/ov:layer — layer authoring reference (layer.yml schema, task verbs, service declarations)/ov:test — declarative testing (tests: block, ov image test, ov test)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.