The headline this time: multi-speaker sync that looks after itself. A periodic check listens to the room with a tone too high to hear and quietly corrects drift between speakers — no clicks, no interruptions; corrections wait for a natural break in the sound. Muted speakers are skipped properly and rejoin when unmuted, and a Bluetooth speaker that reconnects with different buffering gets trimmed back automatically.
Also in this release: podcast download fixes (relative folders, cover placement, name collisions, shows that move feeds), seek and resume when casting a podcast, faster and more accurate track covers, and a feed with broken XML can no longer freeze the panel.
You can grab it from the KDE Store (search for On Air under Plasma 6 Applets) or from the project’s GitHub releases. Feedback welcome, as always.
2026.26 is up: the muted-speaker notices from 2026.24 now come in all twelve languages — they had shipped in English everywhere. The automatic sync care also got three small fixes: a correction below zero no longer vanishes silently, and the fine-tune slider, the popup’s advice and the applied delay always agree on the number. If .25 already runs quietly for you, this one is just polish.
2026.27 brings the biggest feature since launch: pause live radio. An opt-in timeshift keeps a rolling local copy of the playing station — pause parks the broadcast, play resumes exactly where you left off, and a pill above the controls shows how far behind live you are; one tap catches back up. Works from the popup, the panel icon, the Space key and the media keys. Off by default under Settings → Automation, and the copy is deleted when playback stops and never leaves your machine.
Also in this release: live Ogg-family streams (FLAC, Vorbis, Opus) play again — they stalled right at the start of playback; reported on GitHub, thank you — and a Bluetooth speaker you disconnect by hand now stays disconnected instead of being paged back by the sync watchdog.
This is now damn near a perfect online radio experience. If I could wish for something (and this is really nitpicking) it would be the possibility to assign per station volume levels.
Thank you — and that is not nitpicking at all. Stations are mastered at wildly different levels, so going from a quiet classical stream to a loud pop one is a real jolt, and the volume slider does not fix it because the next station undoes the correction. A level remembered per station is the right answer. It is written down; no promise on timing, since this is a spare-time project, but it is the kind of thing that earns its place.
Meanwhile 2026.28 went out just now, mostly repairs: the panel icon no longer disappears if you use an icon theme other than Breeze (the widget carries its own now, and you can pick one in Settings), the cast button had been asking for an icon that exists in no theme at all, and text in the accent colour is 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 too, contributed by a listener, so fourteen languages.
2026.29 is out — a fix release for FLAC and Ogg stations. The earlier fix helped one station and stumbled on the rest: most FLAC radios don’t say the format in their address, so they never took the new playback road at all, and the road itself could cut out for a few seconds at a time. Both are sorted now. FLAC stations play continuously, search previews included, and the footer shows their bitrate. Already on the Store; Discover picks it up within the day.
2026.30 is out, and this one is mostly for podcast listeners.
Search now finds single episodes across every show — a Shows/Episodes switch appears while you type, so a topic or a guest’s name gets you the episode itself, playable right there. The Popular list shows your own country’s top podcasts now instead of a worldwide list. And headset buttons finally understand episodes: Next and Previous skip forward and back inside a playing episode instead of switching to a radio station, and desktop media controls can seek and show an episode’s real position, length and playback speed.
On the radio side, FLAC and Ogg stations got live track titles and a working track download button, search previews can be paused, and country search works in any spelling — mexico finds Mexico. The widget also settles in properly when placed on the desktop, and a pin in the popup’s header keeps it open while you work elsewhere.
The Catalan translation was reviewed and corrected by a native speaker. On the KDE Store as usual.
2026.31 is out, and it’s a small one aimed at two things people asked for.
High-bitrate FLAC stations start clean. Someone reported that streams around 1.5 Mbps stuttered through their first ten seconds and then settled. The cause turned out to be my own doing: these streams play through a small local relay, and that relay started serving the moment it had anything, which put the player on the live edge with no cushion at all. It now hands the player a head start before the first byte — the same trick Icecast plays on its own listeners — with a short cap so ordinary stations don’t wait for a cushion they never needed.
Tabs you don’t use can step aside. Settings → Appearance has switches for the My Music, Podcasts and Timers tabs; the ones you keep take the freed space. Hiding a page puts nothing away — alarms still ring, downloads still land, and everything comes back the moment you switch it on.
The README also explains moving between machines now: stations travel as .arp files, podcast subscriptions as OPML.
@CGA — the second one is done in 2026.32, which is out now. The suggestions row under the search bar (Trending, the country list, the genre chips) has its own switch in Settings → Appearance, and the search field has a separate one, so you can drop either or both. Every tab can be hidden as well, and the controls on each station row, and the cover and bitrate badge on the Playing page. One button in there brings all of it back if you go too far.
That gets you a good part of the way to the compact list too, since the rows start higher up the popup and the row controls stop taking width from the station names. A genuinely denser row — smaller logos, tighter line height — is not in yet, and I would rather ask than guess: is it the height of each row you want back, or just the space the header and the suggestions were eating? If it is the rows themselves, I will look at it.
Two other things from this release that touch the list: hovering a station now keeps its logo visible instead of swapping it for a bare glyph, and there is a colour choice — the built-in green, your system accent, or plain with no colour of its own.
Ideally both, the height of the station row is IMO unnecessarily large. About 3/4 of the current height would be enough. Maybe a layout option with “Compact” and “Normal” options would be ideal, giving users a choice.
Both, then — noted. A layout choice with Compact and Normal is exactly how the rest of the widget already works (everything visual has its own switch by now), so that is the shape it will take. Most of the air in a row is padding and line height rather than the logo, so the three-quarter height you describe is realistic.
It did not make this release — 2026.33 went out today and is bug fixes only: pause and resume now work properly on MP3 stations (the buffering road behind pause was quietly broken for them), and clicking a paused station’s row resumes it, as its icon always promised, instead of tearing the pause down behind the scenes. The density option is first in line for the next feature round.
Done — 2026.34 has it: Settings → Appearance → Layout → “Compact rows (three-quarter height)”. The shape you described: rows drop to about three quarters of their old height, the logos shrink a touch less so they stay recognisable, and the search results in the same list follow along. Normal remains the default. Thanks for the precise ask — “about 3/4” made this easy to build to measure.
The headline is the widget starting on its own, which turned out to be four separate roads: a plasmashell restart replaying the last media-key press from before it, a station paused on the Ogg/FLAC road waking when its local buffer reached the end of its window, a pause made by hand mistaken for a Bluetooth speaker’s power-off farewell, and Stop in an episode’s last seconds starting the next.
The other half: track titles now appear on Ogg and FLAC stations, where the “sends no titles” memory had been filed under the local relay those stations play through and so never lifted. Plus podcast and casting fixes, and the settings window no longer discards what other windows did to your station list. The compact rows from .34 are unchanged.
2026.36 went up today, and it finishes something 2026.35 only half did.
If you paused a station, it could start playing again on its own — sometimes a few minutes later, sometimes an hour, and then again after that. The reason turned out to be simple once it was in front of me: pressing Stop had always shut down every clock the widget keeps waiting on a station, while pausing shut down only some of them. Each clock left ticking was its own way back to sound. Pause and Stop now tear down the same things.
Two smaller ones alongside it: podcast shows whose media links carry a changing token were being re-downloaded on every check, because the changing link looked like a new episode — those are recognised properly now; and the microphone picked during speaker calibration is judged against the room’s actual noise floor instead of against the test click itself.
A small release, 2026.37, from a listener’s request that turned out to be a fair one.
If a station you were listening to went quiet, the widget kept knocking at it — after half a minute, then a minute, then longer, all session. Handy when your train goes into a tunnel; less so when the station is simply gone and you are trying to work in silence. There was no way to say which you wanted.
Now there is: Settings → Automation → Live radio. Leave it on and nothing changes from before; turn it off and a dead stream just stops, the way most players behave. Losing and regaining your connection still picks up by itself, and alarms and scheduled recordings keep their own recovery either way.
And a correction to it a couple of hours later: 2026.38.
The switch was only half wired. Turning it off stopped the retrying, but the lookup that follows a station when it changes address stayed open and would find the new address and start playing. That lookup ships on, so the setting looked like it worked and the sound came back anyway.
The fix also changed the setting’s shape, which I think it needed. The widget cannot tell a stream that dropped from a station that has shut down for good — most stream deaths carry no error at all, the sound just ends. It does not have to tell them apart: something that really dropped answers again within a minute or two, something that has gone never answers. So the retries have a limit now, three tries over roughly three and a half minutes, and then the station is left alone. autoRetryKnocks set to 0 restores the indefinite behaviour.
The other half mattered more. Giving up now drops the play order as well — an order that outlived its retries could put a station that died at three in the morning back on at seven, the moment the network flickered.