Roon Now Playing v1.7.0 — Self-Service Onboarding & Roon-Optional Mode
Hey everyone! Excited to share a big update to Roon Now Playing — the always-on display extension for Roon (and now, any music source).
What’s new since v1.5.1
v1.7.0 — Self-Service Onboarding
The problem: Setting up a new display meant finding its ID in the admin panel, manually selecting a zone, and configuring the layout. If you had multiple screens, this was tedious.
The fix: Displays now onboard themselves.
When you open a new screen, instead of “Waiting for Roon Core…” you get a clean welcome screen with:
- A friendly name auto-assigned by the server (e.g.,
gentle-fox-17,calm-falcon-3) - A QR code linking directly to that screen’s config page
Scan the QR from your phone, pick a zone, choose a layout — done. The display updates instantly. No IDs to copy, no admin panel required.
Per-screen config page — Each display gets its own page at /admin/screen/gentle-fox-17 (or whatever its name is). It’s a focused, mobile-friendly UI showing just the settings for that one screen: zone, layout, font, and background. Perfect for configuring from your phone after scanning the QR.
Names persist across reconnects and server restarts. If you don’t like the auto-generated name, rename it to something like “Living Room” or “Office” from the admin panel or the config page itself.
v1.7.0 — Roon is Now Optional
Thanks to a contribution from @leolobato, you can now run the app without Roon at all. Set ROON_ENABLED=false in your environment and the app skips Roon discovery entirely, running in external-sources-only mode.
This is great if you’re using the External Sources API to push now-playing data from Spotify, Plex, Home Assistant, or any other source. No Roon hardware needed.
Home Assistant Integration
For those running Home Assistant — there’s now a custom integration that connects to your Roon Now Playing server and exposes each named display as a controllable device in HA. Each screen gets:
- Select entities for layout, font, background, and zone
- Binary sensor for connection status (online/offline)
This means you can automate your displays: switch to minimal layout at night, dim the lights when a screen connects, change layout based on what’s playing — all through HA automations.
Install via HACS as a custom repository: roon-now-playing-hass
v1.6.0 — Typography & Testing (in case you missed it)
- Configurable typography — All layouts now expose CSS custom properties for font sizes and line heights. Easy to tweak for your specific display size (especially useful for 4K TVs vs tablets).
- E2E visual testing — Added Playwright-based screenshot tests across all 9 layouts and multiple viewports (1080p, 4K, iPad, etc.) to catch visual regressions.
- Better font scaling — Improved
clamp()values for 4K displays and tighter line heights for smaller screens.
How to Update
Docker:
docker pull ghcr.io/arthursoares/roon-now-playing:latest
docker compose up -d
Manual:
git pull
pnpm install
pnpm build
pnpm start
Links
- GitHub: GitHub - arthursoares/roon-now-playing
- Release: Release v1.7.0 — Welcome Screen & QR Onboarding · arthursoares/roon-now-playing · GitHub
- External API Docs: roon-now-playing/docs/external-api.md at main · arthursoares/roon-now-playing · GitHub
- Home Assistant Integration: GitHub - arthursoares/roon-now-playing-hass: Home Assistant integration for Roon Now Playing displays
Feedback welcome — especially on the QR onboarding flow. Would love to hear how it works with your setup!