No description
Find a file
2026-09-18 05:11:23 +00:00
CrossSoundClient.swift DockDoorPro Support. First Push 2026-09-17 22:04:48 -07:00
CrossSoundPanel.swift DockDoorPro Support. First Push 2026-09-17 22:04:48 -07:00
CrossSoundPlugin.swift DockDoorPro Support. First Push 2026-09-17 22:04:48 -07:00
CrossSoundWidgetView.swift DockDoorPro Support. First Push 2026-09-17 22:04:48 -07:00
README.md Add a README 2026-09-18 05:11:23 +00:00
widget.json DockDoorPro Support. First Push 2026-09-17 22:04:48 -07:00

CrossSound widget for DockDoor Pro

A DockDoor Pro dock widget that drives the CrossSound desktop app: cover art and transport in the dock, and a panel with a player, a playlist picker, a Discover picker and the live queue.

CrossSound/ is a drop-in widget folder for ejbills/dockdoorpro-widgets □^^t widget.json` plus Swift sources, exactly the layout that repo expects. The folder deliberately holds nothing else (their house style: no README, no scripts inside a widget folder), which is why this file lives one level up.

How it talks to CrossSound

It does not touch SoundCloud, tokens or the keychain. CrossSound already serves a small HTTP API on the loopback interface for its companion integrations, and the widget is just another client of it:

Widget action Endpoint
Now playing, play state, like state, queue GET /state
Cover art (proxied by CrossSound, never fetched from the internet) GET /artwork
Play / pause, next, previous, like, shuffle, repeat POST /playpause, /next, /previous, /like, /shuffle, /repeat
Scrub POST /seek
Your playlists, and playing one GET /playlists, POST /play-playlist
Discover shelves, and playing an item GET /discover/mixed, POST /play
Jumping inside the queue POST /play-index

Ports are probed in order: 52124 (the Stream Deck bridge) then 8963 (the Game Bar bridge). Set a specific port in the widget settings to skip probing. State is polled on TimelineView ticks, so nothing runs while the widget is off screen.

Playlists and Discover need CrossSound to be signed in; without it those endpoints answer 503 and the panel says so.

Build and install

On the Mac, with the widgets repo cloned:

cp -R /path/to/SCSC/dockdoor-widget/CrossSound dockdoorpro-widgets/Widgets/
cd dockdoorpro-widgets
bash scripts/build-widgets.sh Widgets/CrossSound
cp -r build/CrossSound.bundle ~/Library/Application\ Support/DockDoorPro/Widgets/

Restart DockDoor Pro and add CrossSound from the widget picker. Needs macOS 14+, Xcode 15+ and python3 (the build script parses widget.json with it).

Layouts

  • Single slot □^`^t cover art, dimmed while paused, with a heart when the track is liked. Clicking the slot toggles playback.
  • Double slot □^`^t art plus title and artist (configurable), stacked horizontally on a bottom/top dock and vertically on a left/right dock.
  • Panel □^`^t long-press, right-click or hover-activate: art, title, artist, heart, scrubber, previous / play-pause / next, shuffle and repeat, then a Playlists / Discover / Queue picker.

Settings

Setting Default
Dock Text Title and Artist
Show Album Art in the Dock on
Show Heart When Liked on
API Port blank (auto)