Hello! I’d like to show On Air, a Plasma 6 panel applet I’ve been building this year. It began as a revival of the old Advanced Radio Player and has grown into a complete radio + podcast player.
Highlights:
Worldwide station search over radio-browser (dot) info (~50k stations), with self-healing stream URLs — a saved station that moves servers finds its new address by itself, and a station without a logo gets one looked up, or wears its monogram.
A full podcatcher: three directories searched at once (Apple Podcasts, fyyd, gpodder (dot) net) or any RSS address pasted directly; episodes stream instantly on a tap or download for offline; chapters, show notes, playback speed, dead-air skip, an Up-next queue and OPML import/export. Subscriptions refresh on a schedule, can auto-download the newest episode and quietly clean up old played files — each automation behind its own switch in the settings.
Recording: bit-exact stream copies with a track-list sidecar, instant or scheduled (once/daily/weekly).
Wake-up alarms that start a station or the newest downloaded episode of a subscribed show (works with no network at the alarm hour).
Casting to Chromecast and DLNA renderers; Bluetooth pairing, connecting and forgetting handled inside the applet.
Local multi-speaker sync with per-output delays, per-speaker balance/stereo pairing, and microphone auto-calibration that measures the Bluetooth latency at the listening position. An opt-in caretaker re-checks the sync while music plays; audio never leaves the machine.
MPRIS integration, keyboard navigation, 11 languages, and a test suite of 350+ automated checks.
This is by far one of the best widgets I’ve tried along with Panel Spacer Extended. It has everything that the awesome but somewhat outdated Firefox extension WorldWideRadio has and a lot more. Great work and a big thanks!
Thank you so much for the kind words — this really made my day! I’m glad you’re enjoying On Air. Interesting that you mention WorldWideRadio; I’ll take a look at it to see if there are any features worth borrowing. If you run into any bugs or have ideas, feel free to drop them here or on GitHub. Thanks again!
There is one feature in WWR that you maybe could take a look at. It has sort of a country level search function so that if I’m interested in say 70s music on stations from the UK, I can search for 70s music stations but only within the UK. I hope you get what I mean but if you try the extension I believe you will.
Good timing, this landed in 2026.23 which went out today. Type 70s in UK or jazz from France and the search runs only inside that country: names, genres and paging all respect it. The country sticks as a small flag chip next to the search box, so follow-up searches stay scoped until you close the chip. Results show country flags now too, and there is a dice button that tunes into a random country’s top station if you feel like wandering.
The Store already carries the update. Besides the country search it fixes a privacy issue around stream URLs, sends podcast covers to the TV when casting, and adds Finnish and Hindi, so the widget speaks thirteen languages now.
Thanks for the tip, WWR’s country search was a good model for how this should feel.
Thank you — that was a real find, and a fast one: you caught it within a day of 2026.24 going out. Two variables in the code were named final, which recent Qt versions quietly accept but Qt 6.10’s QML parser rejects as a reserved word — so the whole file refused to parse on Kubuntu 26.04 LTS, exactly the error you saw. Advanced Radio Player never used that name, which is why it runs fine on the same system.
2026.25 is on the Store now with the fix. Update the widget (or reinstall it from the Store page) and it should come up. If it still refuses on your machine, tell me what it says and I’ll keep digging.
And for everyone following the thread: 2026.24 landed this weekend — the multi-speaker sync now looks after itself (a periodic inaudible check quietly corrects drift between speakers without interrupting playback), muted speakers are handled properly and rejoin when unmuted, Bluetooth reconnects get trimmed back automatically, and there is a batch of podcast download and casting fixes.
2026.28 is out, and it closes the report from this thread properly: @Ralf_Lindlein, the widget also had a second icon problem underneath the Qt 6.10 one you found. The panel icon asked for two names that are Breeze’s own, so anyone on a different icon theme got an empty panel. It now carries its own icon and falls back to it, and you can choose the icon in Settings → Appearance — that setting existed in the config all along with nothing in the interface to reach it.
Also in this release: the cast button had been asking for an icon name that exists in no theme at all, and text in the accent colour is now readable on light colour schemes (the emerald was drawn against a dark panel and sat well under the readable minimum on a light one). Catalan joined, contributed by a listener, so fourteen languages.
@ngraham — belated thanks for the kind word back in July, and sorry it went unanswered at the time.