github jxlarrea/kiosk-satellite 2026.9.23

latest release: 2026.9.24
4 hours ago

What's New in Kiosk Satellite 2026.9.23

This release lets the Clock screensaver load its background photo from a URL, adds a Night mode option to hide that photo and fixes a rendering failure that left screensavers, the drawer and settings black on some devices after the app's screen was re-created.

New Feature: Clock Background From a URL

  • Image URLs: The Background photo setting under Screensaver > Clock screensaver now accepts an http(s):// image URL as well as a path on the device. Set it from the new URL button on the device, the remote admin or the ESPHome Clock background text entity.
  • Fetched by the Device: The device downloads the image itself, so a file under Home Assistant's /local/ folder, an Immich shared link, a daily photo service or an image rendered by an automation all work with nothing pushed to the device and no storage permission needed.
  • Every Write Reloads: Writing the setting always fetches the image again, an unchanged value included. An automation can rewrite the entity to pull a new image served under the same URL.
  • Refresh on a Timer: A new Refresh URL background setting fetches a URL background again every N minutes on its own. It defaults to 0, which only fetches when the setting is written.
  • Failure Handling: A failed fetch keeps the current photo and tries again a minute later, so a transient outage never blanks the clock.
  • Length Limit: The value is limited to 255 characters on every writer, the most Home Assistant allows in a text entity.

Screensaver Improvements

  • Hide the Photo at Night: A new Hide background photo setting under Clock screensaver > Night mode, off by default, hides the background photo while Night mode is active so the clock uses the Night background color. It works with every clock face, restores the photo when the room brightens and applies immediately.
  • Replaced Files Show Up: A clock background image overwritten under its old file name is now picked up within a minute, and immediately when the setting is rewritten. Previously the old picture stayed until the next restart, which forced a rotating file name.

Performance

  • Less GPU Work Under the Dashboard: While the dashboard covers the screen, the app no longer composites the Flutter backdrop behind it, so the GPU draws one full-screen layer instead of two. Transparent overlays such as the screensaver and the drawer keep their backdrop.

Fixed

  • Black Screensavers, Drawer and Settings After Re-Creation: On devices where Flutter renders through OpenGL ES, destroying and re-creating the app's Activity while the dashboard was on screen left the renderer's context bound to the wrong thread. From then on the dashboard kept working, but any screensaver other than Dim or Black showed a black screen and the drawer and settings never appeared. Android re-creates the Activity when the app is sent to the background and brought back on a phone, after the Back key on some launchers or under memory pressure. The app now hands the context back when the screen is torn down, so the renderer recovers on its own. The Legacy renderer setting is no longer needed as a workaround for this.
  • Meta Portals Return to the Default Renderer: Earlier releases switched every Portal to the Legacy renderer on its first start to sidestep the failure above. That rule is gone, and a Portal it switched goes back to Impeller by itself on its first start of this build. A Legacy renderer choice made by hand on either settings page is left alone, and the app now records when it turned the setting on itself so later cleanups can tell the two apart.

Don't miss a new kiosk-satellite release

NewReleases is sending notifications on new releases.