Changelog

What's new

The most recent stable releases, in detail. New modules, editor improvements, infrastructure work, and the bugs we squashed along the way.

v1.13.0

1.13.0

New

  • School Timetable module. A week card per child with today lit, start and end times and what to pack, plus a Day view that puts every child on a shared clock. Schools hold bell times, breaks, A and B weeks and exceptions, weeks import from a Google Sheet or CSV, and holidays come from OpenHolidays where published.
  • Shared to-do lists. The phone, the wall and the editor read and write the same list. The phone gains a Lists tab, and the To-Do module offers list, focus, progress, board and compact views with due days, repeats and assignment.
  • Family roster and groups. Household members live in one roster shared by chores, calendars, to-do lists and timetables, removing a person cleans up every reference, and a named group (Kids, Grown-ups) works anywhere people are picked.
  • Group chores, bonus chores and "not today". A group chore reaches everyone in the group, including people who join later. Bonus chores are up for grabs or open to everyone and earn tickets without counting toward daily chores or streaks. Grown-ups can skip a chore for one person for a day without breaking their streak.
  • Rewards store and reward history on the chore charts: a list, tiles or a price list that shows who can afford each reward, and what the family has redeemed day by day, as 30-day totals or in the spotlight.
  • Sports Scores covers every ESPN league, 15 in all, including college football and men's and women's college basketball. Pick up to eight favorite teams (drag to reorder) and their games sort first with a colored marker, Standings can tint their rows, a Team view shows one team's record, standing, live or next game and last result, both modules show AP poll ranks, and league names read LIGA MX or SERIE A instead of a code.
  • Calendar name tags, a people filter and a rolling weeks view. Both calendar modules can show the owner's initials in place of the calendar dot, show only the people or groups you choose, and show one to eight weeks from today. Day rules can match specific dates (a day of every month, a fixed date each year, the nth weekday, a whole month) and paint a built-in or uploaded picture behind the day.
  • Pictures and videos page in the editor and a Photos tab on the phone. The editor shows the whole library with sizes and folders, bulk upload, move and replace in place, an In use badge, and a report of files a screen expects but the library no longer has. The phone browses by folder, opens any photo full screen, shows it on the wall, moves or deletes it, manages folders, adds pictures from Google Photos or an iCloud link, and steps, pauses and plays the wall's slideshow. SVG and every JPEG spelling are accepted.
  • Your own pictures as icons. Upload a PNG, JPG, WebP or GIF from any icon picker, crop it square, and use it for meals, chores, rewards, people, routines and screens.
  • Update channels and automatic updates. Choose Normal, Early access, Beta or Test builds and let the device install at a chosen time of day. A release can require a version first, hold back a step the saved settings cannot survive, and roll itself back if it never starts. Updates also work on installs that are not a Raspberry Pi, download less, say in plain language when they cannot start or could not check, and offer Restart to finish the update on the System page, the phone and the update window.
  • Background shade and clock backdrop. Each screen can darken its background picture with an even shade, a fade or darker edges, and the photo viewer's clock gets a backdrop from none to a solid band with a color picker and digits that pick dark or light to match.
  • Display and device: screen dots can be hidden for every display or just one, a Clock check button on the Location page sets the device's clock to the household's time zone, the panel can power off while the display sleeps (opt-in under Sleep & dimming), and touch alignment on rotated touchscreens follows the rotation, survives updates, and can take your own six numbers.
  • Docker image with an example compose file, sign-in to Google Calendar and Google Photos with Home Screens' own Google app (hidden until Google approves it), and a display-key endpoint so Home Assistant and other tools can show or hide one module.

Improved

  • Every screen follows the household's time zone, never the device or browser clock, looking up a town fills in its time zone, and a new install's 12 or 24 hour clock follows the chosen language.
  • A much lighter wall on a Pi: one heartbeat instead of five polls, fetches of only what changed, cached calendar feeds, and clock, calendar and meal modules that redraw only what moves. A Pi 4 clock and chore wall drops from two thirds of a core to under a third. Wall photos load at the size they are shown, stay loaded across screen changes, are fetched ahead and fade in once ready, slideshows pick up where they left off, and new picture, video, slideshow, web embed and rain map cards start without a card blur.
  • The Pi's rotation and size follow the main display's settings without a reboot, survive an update, and hold when a monitor drops off HDMI in standby.
  • Recovery from a broken setup: a Try again screen with backup tools when the saved setup cannot load, pages that recover from an error by themselves, a half-written module that draws stand-ins, and failed saves and loads that speak up on the phone and in the editor.
  • Chore chart and chore form: one row per chore with a dot per person (tap to tick, hold to un-tick), people without an icon show their initial, Schedule is always offered with a remove button on every row, chores show their ticket value, and weekly chores ask for at least one day.
  • Calendar: day rules can be named and open one at a time, event backgrounds can be turned off on the daily and agenda views, Wrap titles is offered on the rolling weeks view, and busy days in the month grid show a dot per event.
  • Weather: daily forecasts can hide the weekday labels, the larger first day and the Forecast heading, the views share one rain rule and bar scale, pressure shows in inHg for imperial, and the editor's preview asks only the services you use.
  • Meals can be typed straight into a day, the grocery list guesses the aisle in every language, and narrow meal cells put the picture above the name.
  • Settings search finds settings by their options and help text and says which page each is on, with clearer wording across Settings in every language.
  • Editor and Style panel: background and border colors have a strength slider, the see-through slider is its own Color strength row, each display's preview and swatches use its own theme, modules dragged past the edge land at the edge, and Scale to Fit is offered when a display's rotation or size changes on its own page.
  • Phone: the Back gesture closes the open sheet or photo viewer and asks first about unsaved changes, sheets take keyboard focus and close on Escape, tabs reload when the network is back, the profile shown is the one actually in effect, and a scheduled profile can be kept after its schedule ends.
  • Small improvements: a long press on the kiosk touchscreen no longer opens the browser's menu, the display holds the current screen for eight seconds after a tap, un-ticking a finished chore on the wall takes a press and hold, an empty screen stays out of the rotation, Suggest and plugin uninstall ask first, holiday countries and new screen names follow the household's language, the getting-started checklist has a household step, traffic routes wait for typing to settle, the Rain Map timestamp uses the module's font, and wording and layout are tidied across the editor, the phone and the wall.
  • The website's module options, configuration types and endpoint list are generated from the code, the API reference is rewritten, and the docs and README cover everything new in 1.13. Underlying libraries are updated, including security fixes in the web framework, the test runner and an image library that could hang on a malformed picture.

Fixed

  • An editor change made in the second before opening Settings, pressing Back or opening Preview could be lost. The save now follows you out of the page, and a layout the editor could not draw is never saved by the reload.
  • Two phones, or a phone and the editor, changing chores, rewards, meals, grocery ticks or routines at the same time no longer drop each other's changes, and a hub rewrite always lands on the layout it started from.
  • Running the installer over an existing install destroyed every uploaded picture and iCloud import. User files now survive a re-install.
  • The editor password could go unchecked on some installs because the password file was read from the wrong place.
  • Checking off a chore and crediting its points are saved together, so losing power in between cannot record one without the other.
  • A display held at a standing brightness ignored every tap and flick, a flick right after a tap was lost, and a chosen brightness did not hold through touches, dims, sleep and alerts.
  • On a Pi with more than one video output, the kiosk drives the output that is actually switched on.
  • Calendar feeds whose events carry a time but no time zone resolve in the display's time zone, so a 4 pm event no longer shows at 6 pm on a UTC hub.
  • Wall freshness: a request that started before a change can no longer land old data after it, the first layout edit no longer empties the wall's cache, a Google Calendar sign-in shows within seconds, a refused display key reloads to pick up a new one, and the phone and kids' page pick up chores and rewards another phone changed.
  • Chores and rewards: weekly rotations hand over on Monday instead of Friday, two quick taps on the same chore no longer undo each other, un-ticking a chore whose points were spent says who is affected, adding a member before the chore manager had loaded discarded the name, removing a person switches off a reward that was only theirs, bonus chores done over a week ago show their date and pickup day says Today, both charts show a loading message on a fresh Pi, and the kids' page works with a password set.
  • Calendar: day-rule pictures paint under events and load behind a password, switching a rule to weekdays clears the month, a just-checked feed keeps its health badge, Google Calendar's newer colors show, Todoist tasks with a time show at the right time, and a removed calendar is dropped from its owners and module filters.
  • Weather and sports: Met Office and Open-Meteo forecasts start on the right day, switching to a source with a saved key no longer flashes a missing-key card, Sports Standings with no grouping chosen labelled one grouping as another, college football records read correctly, a missing score no longer shows as 0, and favorites in a switched-off league stay hidden.
  • Photos and iCloud: videos shown from the phone fill the wall, sideways photos report their upright size, folder create and delete report the right thing, newer Shared Album links work, an unreachable iCloud is reported as such, the library count covers only the files it lists, only a slideshow's last playable picture and files a screen uses are protected from deletion, and the photo viewer names its real default theme.
  • Dates and layout: new countdown and holiday dates no longer start a day off when picked in the evening, a one-sided time window reads "from 6:00 PM" or "until 9:00 AM" instead of "all day", the clock bar reads 12 instead of 0, meal dates follow the household's language, the chore board, month grid, countdown list and timetable day headings fit their boxes, long all-day titles stay in their day in the schedule view, the meal planner's week view fits a landscape wall, and the photo viewer's clock shows on the wall when the editor says it is on.
  • Plugins: installing or removing one no longer resets the panel to Browse, two quick changes no longer leave the hub serving the previous plugin list, and uninstalling a plugin takes its modules off every screen.
  • Small fixes: grocery ticks are kept per week and cleared with that week's plan, blank ingredient rows behave, completed to-do items are tidied after 30 days, with idle sleep off the remote's Sleep no longer lights a powered-off screen, a backup from a newer version is refused with a reason, arrow keys inside an editor control no longer move the module, a space in a screen rename no longer starts a drag, importing a screen leaves out its profiles, display commands that name no display go to the main display, traffic routes are looked up one at a time and unfinished ones are skipped, mislabelled options in four languages are corrected, the Discord link points at a fresh invite, and dev servers no longer count as new installs in the anonymous telemetry.
v1.12.2

1.12.2

New

  • Full-Screen Calendar can show event descriptions on the Family grid and Up next views, with a Show Description toggle for each (off by default). Family grid gives each event only the lines its description needs, and Up next trims descriptions first when the board would run past its box.
  • A background wall for every full-screen theme, painted from the theme's own colours, so a regular screen matches a full-screen screen sitting next to it. Ten new gradients (Ocean, Ember, Ink, Moss, Copper, Lavender, Cloud, Sand, Sage, Blush) and four patterns (Dots, Grid, Diagonal, Paper) join the shipped set. The picker groups walls into theme, colour, and pattern sections, lists your display's theme first and marks the one in use, and shows tiles in your display's orientation. Every wall paints correctly on both portrait and landscape displays.

Improved

  • Setting up WiFi from a wifi.txt file on the SD card now retries on every boot until it works, so a mistyped password can be corrected without reflashing. Passwords are saved exactly as typed, including spaces, quotes, and backslashes, and are checked for a valid length before saving. The country defaults to US when not set.
  • When Home Screens needs the device password to update, change the hostname, connect or forget WiFi, or restart, the editor asks for it in place and retries the action. The Pi image grants this up front, and installs from older versions can be repaired from the editor or over SSH.
  • Release images are held for hardware testing before they are attached to a release, so every published image has been booted on a real Pi.

Fixed

  • Changing or turning off the editor password takes effect on the very next request. Previously the editor could keep rejecting saves for up to five seconds after a password change, a password reset, or a restored backup.
  • The built-in backgrounds now live in their own folder instead of alongside your uploads, so an update no longer leaves stale copies of them in your backgrounds folder. Screens that use a built-in wall are pointed at the new location automatically.
  • Adding WiFi from the editor on a Pi that was started over Ethernet failed silently because the image shipped with the WiFi radio off. It now ships on.
  • A wifi.txt whose last line had no line break dropped the password and joined the network as open.
  • Chromium no longer offers to translate displays running in a language other than English.
  • An interrupted update could leave the display unable to start; the service now recovers the previous version on boot.
v1.12.1

1.12.1

New

  • Full-Screen Calendar can show event descriptions on the Family grid and Up next views, with a Show Description toggle for each (off by default). Family grid gives each event only the lines its description needs, and Up next trims descriptions first when the board would run past its box.
  • A background wall for every full-screen theme, painted from the theme's own colours, so a regular screen matches a full-screen screen sitting next to it. Ten new gradients (Ocean, Ember, Ink, Moss, Copper, Lavender, Cloud, Sand, Sage, Blush) and four patterns (Dots, Grid, Diagonal, Paper) join the shipped set. The picker groups walls into theme, colour, and pattern sections, lists your display's theme first and marks the one in use, and shows tiles in your display's orientation. Every wall paints correctly on both portrait and landscape displays.

Improved

  • Setting up WiFi from a wifi.txt file on the SD card now retries on every boot until it works, so a mistyped password can be corrected without reflashing. Passwords are saved exactly as typed, including spaces, quotes, and backslashes, and are checked for a valid length before saving. The country defaults to US when not set.
  • When Home Screens needs the device password to update, change the hostname, connect or forget WiFi, or restart, the editor asks for it in place and retries the action. The Pi image grants this up front, and installs from older versions can be repaired from the editor or over SSH.
  • Release images are held for hardware testing before they are attached to a release, so every published image has been booted on a real Pi.

Fixed

  • Adding WiFi from the editor on a Pi that was started over Ethernet failed silently because the image shipped with the WiFi radio off. It now ships on.
  • A wifi.txt whose last line had no line break dropped the password and joined the network as open.
  • Chromium no longer offers to translate displays running in a language other than English.
  • An interrupted update could leave the display unable to start; the service now recovers the previous version on boot.
v1.12.0

1.12.0

New

  • News module rebuilt around multiple feeds, plus a new Full-Screen News module. Add as many RSS, Atom, or JSON feeds as you like, or pick from 98 curated presets in all seven languages. Built-in sources cover local news for your location, topic searches, YouTube channels, and subreddits. Each feed gets a label and colour, and stories can be filtered by age, blocked or required words, and duplicates. The card module adds a Cards photo grid view, a paged list, ticker separators with touch pause, source and age lines, "just in" marks, and tap to open a QR code or summary. Full-Screen News offers Story and Front page views in both orientations. Existing news modules carry their single feed over automatically.
  • OneDrive is a photo source for both photo modules, a community contribution. Sign in with a code from your Microsoft account, browse to a folder in the editor, and the slideshow pulls photos from that folder and every subfolder. Photos are served through Home Screens, so the display never needs its own Microsoft sign-in.
  • Stock ticker tiles can chart today, the past week, or both side by side, with a Classic or Shaded theme and optional range captions. A new Single view dedicates a tile to one symbol with a large price, change, and full-tile chart.
  • Rain map now reads radar from LibreWXR after RainViewer's free service shut down. A Radar server field under Settings > Weather points it at a self-hosted copy; blank means the public server. Every zoom level on the slider is available.
  • Clock module: Hour format (follow the display, 12-hour, or 24-hour; new clocks follow the display), Alignment and Vertical align settings, a Size setting (Fits the box or Fixed), and a Show AM/PM toggle on the Minimal view.
  • Multi-month calendar: today marker styles (filled, square, outline, underline, coloured number, none) with an accent colour, an option to hide the current month's heading, and a Fill the space toggle so a large card is filled with larger type. The multi-week calendar can now show as few as two weeks.
  • Calendar grid views have a Date text size slider that scales day names, day numbers, and week numbers independently of the event text.
  • Text size is one control on every module, read as a percent of the module's normal size. Modules that fit their text to their box can now be made smaller than they fit as well as larger, down to 10 percent. Existing settings render exactly as before.
  • Show Title toggle on every module with a built-in header (traffic, garbage day, history, news, todo, Todoist, weather, chore chart, meal planner, and the full-screen meal planner).
  • Module schedules are drawn as a week strip that shows exactly when the module is on, with the hidden hours outlined when Hide during these hours is set. A schedule can now be one stretch that runs several days, dragged to length on the strip. The Time of day visibility condition uses the same picture.
  • Full-Screen Weather adds a Wide strip view: Panorama's parts laid side by side for a module across the foot of a landscape screen.
  • Full-screen chore chart adds a By person layout with one section per member, a week progress option (chips, strip, grid, or off), and a name under each person's dot when there is room.
  • Display Control adds an Arrows-only layout with just Previous and Next, sizes itself to its box, and targets its own display by default.
  • Editor: screen search with Cmd/Ctrl+K finds screens by name or the modules they hold across every display. A Preview button opens the screen being edited in a new tab with rotation held. Keyboard shortcuts: arrow keys nudge the selected module, Delete removes it, Escape deselects, Cmd+D duplicates. Modules get a right-click menu, alignment guides that snap to neighbours, and Duplicate for modules and screens. Import a layout file straight from the + menu on the screen tabs.
  • Editor workspace: the module list and settings panel collapse to icon rails, eight backgrounds ship with Home Screens, every module has a plain description and search keywords, and the editor asks before adding a full-screen module to a busy screen.
  • Save conflict handling: when someone else has saved since you loaded, the editor offers to load their changes or keep yours instead of silently overwriting, and an idle editor notices outside changes.
  • Settings > On your phone explains the family remote and the kids' chores page side by side with scannable codes and a printable sheet. The phone chips in the chore, meal, and photo settings open a QR dialog.
  • First run explains itself: a display with no content shows a watermark with the editor address, the empty editor offers a template and a first-run checklist, the root URL on a phone opens a launcher for the family remote, display, and kids' chores, and location-bound modules link straight to the Location page.
  • Opt-in credential backup: a backup can now include API keys, calendar passwords, Google and OneDrive sign-ins, and the editor password, sealed with a password of your choosing. Restoring without the password keeps everything else.
  • Calendar links and weather keys are checked before they are saved. A bad calendar link or rejected key stays in the form with the reason and a Save anyway option.
  • System settings show full release notes in a dialog, one row per release, and can roll back to any of the last three versions.
  • Family remote: sleep, wake, next, previous, and brightness confirm from the display or revert with a message naming it. Displays report their brightness, on-screen alerts, and running timer. Restart and reboot ask first and show a reconnecting banner. Send Alert offers Clear alerts with the on-screen count.
  • Kids' chores page: un-check a finished chore with press and hold, a Yesterday/Today toggle, the page remembers which kid was picked per device, and Rewards spend only for that kid.
  • A forgotten editor password can be reset with a script on the Pi, linked from the login page and the Security settings. The login allowance is 10 tries before a pause.
  • Icon picker for calendar event icons, day badges, and the text module prefix, with a curated emoji tab and the full Font Awesome catalog.
  • Displays that run on the same Pi as Home Screens now print the hub's network address on the setup watermark, the empty photo screen, and the chores and meals empty states, instead of localhost.
  • Cross-origin writes to the API are refused, protecting an install with no editor password from a page on another site. Reverse proxies that rewrite the host can set HS_ALLOWED_ORIGINS.
  • Docs rebuilt around the family's tasks: Start here, Set up your content, Customize, More displays, Help, and Reference, with guides for what to buy, your first screen, weather, calendars, chores and rewards, meals, and plugins, plus 36 real screenshots. Docs search answers the questions people type, and the homepage showcase has a landscape view.

Improved

  • Modules size their type to their box again. Weather views had been rendering at the default size in whatever box they had, and the news list could get stuck showing every row clipped. Text is measured again once the real font loads, so a Pi no longer lays out text in a fallback face.
  • Style controls reach every module they are offered to. Sports, standings, the analog clock face, and divider lines follow the text colour; light cards keep their rules, rings, and placeholders; the sticky note hides the colour controls it cannot use; Display Control hides the Style section entirely.
  • The household 12/24-hour setting now reaches sunrise and sunset, moon phase, the full-screen photo clock, Todoist due times, and the weather hourly, combined, and alerts views. Sunrise and moon phase also format in the display's language.
  • The display, family remote, and kids' page render in the app's own font instead of the system fallback, which on a Pi was Liberation Sans with no light weights. Georgia gets a matching bundled substitute so the font picker looks the same on the display.
  • Chore chart card fits its day to its box instead of cutting off rows, and both chore charts say "N more below" when a household is too big for the card. The Board view wraps member columns into balanced rows, Compact collapses per-person columns into one pill when they would crowd out the chore name, and members with no chores this week are left out of every view.
  • Full-screen chore chart rebuilt for big families and small boxes: measured rows, two-column portrait and four-column landscape packing, chore names that follow the typography size, and a rewards store on the same layout. The star chart fits its box and names who is below the fold.
  • Full-screen meal planner Today, Menu board, and Next meal views fill the canvas. Meal week views drop unused slot columns and show quiet empty slots.
  • Alerts are wider with larger titles. Urgent alerts are a full-width bar that wakes a sleeping display and puts it back to sleep when dismissed.
  • Unconfigured modules show the same placeholder everywhere: icon, name, and one plain hint. Module defaults are sized to their content.
  • The wall shows a quiet setup card linking to the right settings page when a key or sign-in is missing, and a "not updating" line when a source fails, instead of raw error text or HTTP codes. Weather says "Getting the forecast" before its first payload.
  • Sports kickoff times show in the display's own timezone as Today, Tomorrow, or a weekday and date.
  • The rotation progress line is centred under the dot row and stays pinned to the dwell clock. Screen pagination collapses past ten screens to a counter with arrows.
  • Google Calendar pages through every event instead of stopping at 250, the Max Events setting is gone in favour of a fixed safety cap, and views that dim past events fetch from the start of today. Calendar feeds with non-standard time zone names like MDT or CST now load, with daylight saving respected.
  • Calendar events stay on the wall through a midnight rollover during an outage, and a rescheduled appointment no longer shows at both its old and new times.
  • Photo slideshows keep a batch until the pass completes, so a periodic reshuffle never swaps the current slide early. Crossfades wait for the incoming photo to load and skip one whose download fails. The screen background holds the previous image while the next loads.
  • Rain map tiles are cached across screens and instances, a cold start plays one forward sweep, and a frame with a failed tile is held out of the loop and retried instead of playing with a hole.
  • Fullscreen weather columns no longer overlap at large typography sizes, the temperature ribbon keeps its hour labels off the curve, and today's high and low are reconciled with the current reading so an evening feed no longer shows the night's low as today's high.
  • Multi-month calendar uses a fixed six-week grid that fits its box, so six months side by side no longer run their columns together.
  • The remote badges a display Offline with its last-seen time from the hub, tells never-connected displays apart from waiting ones, and hides the screen dot strip past 12 screens on a phone. Chores, Meals, and Photos tabs stay in the bar and explain what is missing.
  • Family remote forms on a phone: the chore form leads with name, tickets, and frequency with Save and Delete in a sticky footer; thumb-sized tap targets on reward tabs, ticket buttons, and timer and meal chips; each timer look shows a small drawing of what it puts on the wall; every form asks before discarding unsaved edits; tapping a planned meal opens the picker instead of clearing it.
  • Every settings page has a title, breadcrumb, and one-line purpose, autosaving pages say so, sidebar groups collapse, and each page links to its docs. Security leads with what the password covers. System and Status hide developer details behind Show advanced options. Profiles are named on creation and show their screens and schedule while collapsed.
  • Plain language pass over the display, login, remote, and module strings: hub becomes Home Screens or the main Pi, adopt becomes add, widget becomes module.
  • Weather providers are named the same way on the Weather page, the API keys page, and the wall's setup card. A keyed default provider with no key is called out at the top of the Weather page with a one-click switch to Open-Meteo.
  • The displays fleet grid shows which screen each display is on. Rotation progress and the setup watermark can be overridden per display.
  • The rotation interval sliders go up to 600 seconds, and a short per-screen duration saves as typed with a warning instead of being clamped to 10 seconds.
  • Editor settings sidebar has GitHub and Discord links below Help and docs.
  • Imported layout files are migrated to the current schema before they are merged, so an old export still loads.
  • The Location page leads with the town, then timezone, then a collapsed clock check, with plain-language help for the timezone and detect button.
  • Updated bundled dependencies to clear security advisories.

Fixed

  • The Pi image never started its kiosk: the login console was left disabled and the kiosk user's home directory was owned by root. Both are fixed and checked during the image build.
  • The release download shipped no starting configuration, so the Pi image's first boot could not finish. The image now seeds its own.
  • A fresh install no longer starts on a weather provider that needs an API key.
  • The history module failed to load because the Wikimedia service rate-limited requests. It now sends a proper identifier, stops retrying, and keeps the last good events.
  • Modules lost their selection at the end of a resize drag. Resized or moved modules can no longer be pushed off the canvas.
  • Animated settings sections scrolled under the pointer mid-animation, so a click could land on the wrong row.
  • Undo and redo no longer fire on the canvas while a dialog or context menu is open.
  • Edits typed into a settings form while a save conflict was waiting are kept when you pick Keep mine.
  • The login page, family remote, and kids' page briefly showed raw text keys instead of words while loading.
  • Chore chart Board view collapsed every member into one row of truncated columns on a heavy day.
  • The remote's Photos tab showed a permanent empty state for households using the windowed photo slideshow.
  • The star chart marked future days as missed in the evening, and a chore-free day is no longer counted as missed.
  • Fullscreen calendar week titles that crossed a month or year were wrong.
  • Two-photo slideshows stopped advancing when the same photo loaded twice, and every slide rotation briefly flashed the photo from two advances back.
  • The full-screen photo theme override painted its letterbox bars and clock overlay black regardless of theme.
  • A schedule with equal start and end times saved as an empty window instead of a full day, and an inverted schedule lost its invert on edit.
  • An urgent alert that outlived the overnight sleep window left the display awake afterward.
  • Alerts and timers no longer disappear on a display whose screens are all empty.
  • A calendar showing a rolling window could show can't load at midnight during an outage.
  • Sunrise and sunset labels did not grow with the text size setting.
  • The editor preview of a timer routine no longer shows or drives the live timer session.
  • The remote's profile switcher fell back to the page-load profile after a display reported none.
  • Weather providers reported a missing hourly temperature as 0 degrees.
  • The kids' Manage view was reachable without a grown-up session.
  • The pressure sparkline on the weather almanac claimed most of a short card and clipped the readout row.
  • The Show Title toggle appeared on news views that draw no heading.
  • The "✓" text in the chore Today view is a real check mark.
  • The air quality setup card pointed at the wrong settings page for its key.
  • The on-screen arrows on the kiosk pagination bar are translated.
  • Backup and credential errors on the phone read as a sentence instead of a machine code.
  • A sign-in refresh started before a disconnect could no longer overwrite the newer grant.
  • Deleting the only reward was refused by an empty-list guard.
  • Installing Home Screens on a Pi no longer overwrites household font settings; the font aliases are installed as their own file.
v1.11.0

1.11.0

New

  • Full-Screen Weather module, the fifth full-screen module. Five views: Panorama stacks the current conditions, a next-hour rain strip, a temperature curve, a 7-day outlook with range bars, and a row of stats; Almanac is a grid of instrument cards (sun arc, moon phase, wind, humidity, pressure, UV, visibility, and the next 12 hours); Ambient is a huge read for across the room; Week ahead gives every forecast day its own band; Hour by hour draws the next 24 hours as a timeline. Every view has a portrait and a landscape layout, picked from the display's shape. The background tints itself by the current conditions and the position of the sun, with falling rain and snow that can be switched off for older hardware; it uses the same themes as the other full-screen modules, follows your 12/24-hour setting and the display's time zone, and its text size and density controls work independently so large type never pushes the layout off the screen.
  • Three new full-screen calendar views, taking it to eight. Family grid puts each person on a row and the week across the columns; Up next shows a hero card for the next event with lists of what comes later, what already happened, and tomorrow; Free time draws a busy-and-free track for each person and calls out when everyone is free at once.
  • Calendar views got several new ways to configure what they show: assign each calendar source to a family member under Settings > Calendar, with unassigned sources landing on an Everyone row that counts as busy for the whole family; a rolling hour window for the schedule and day timeline views that slides with the clock instead of a fixed start and end hour, with a footer naming the window and today's earlier events; the full-screen calendar week list can show the day's planned meals and a chore progress row, pulled from the meal planner and chore chart; a schedule start anchor that begins at today, the start of the week, or the weekend; and weather placement in calendar views, in the header, on day headers, or next to individual events, instead of a single on/off switch.
  • Six new full-screen themes, taking the shared list to twelve: Sandstone, Vellum, Bloom, Aurora, Obsidian, and Horizon, each with its own background gradients, accent colors, and event styles; the theme picker now shows a preview tile of each theme's background, accent, and event look instead of a name in a dropdown. Event and day rules for both calendar modules: match events by title, calendar, location, all-day, finished, or type and then hide them or change their color, fade, icon, or displayed title; match days by today, past, future, weekday, or whether they have events and then set a background, fade, outline, or badge; rules run in order, so the list itself is the priority. Birthdays and holidays now look like birthdays and holidays, with their own glyph instead of the usual color dot, "Birthday, turns 12" or "Holiday" instead of the generic all-day label, and bold name-first text with a warm tint in the month grid; works with iCloud contact birthdays, Google's Birthdays calendar, and the public holiday source. Multi-week calendar themes: the original banner look plus three modern grids (clean, minimal, and vivid) with corner day numbers, a today ring, weekend shading, stitched multi-day bars, and overflow chips; the month grid uses the same themes, and the per-cell event cap applies to the week, month, and multi-week grids.
  • Calendar source legend: an optional list of which calendars are feeding the current view, at the top or bottom of either calendar module, showing only the sources that actually have events on screen. Calendar source health: if one calendar stops responding, the display keeps showing its last-good events with a "saved" marker instead of going blank, rings the failing source in the legend, and names it in the header; each source's row on the Calendar settings page says in plain language what went wrong and when it last worked. Calendars can now drive conditional visibility and text: seven new live values (next event title, start, time, minutes away, events today, busy now, and all-day today) are published to the shared state bus, so any module can show or hide itself based on what is on the calendar, even on displays with no calendar module.
  • More calendar display detail: a countdown pill before an event starts and a progress bar while it's running on list rows, with a separate opt-in for all-day countdowns; keyword filters to include or exclude events by matching words in the title, plus a "Hide events you declined" option for Google calendars; a now line and past dimming in the daily view that fades finished events and rings whatever is running right now; a "Show Today's Finished Events" option for both agenda views so events that ended earlier today stay visible for the rest of the day; and multi-day timed events that now read correctly across days, with a real start time on the first day, an end time on the last, and all-day rows in between.
  • Optional title strip on module cards: give any module a centered caption with its own size control, set in the Style panel.
  • Per-module timezone for the Clock and Date modules: pick any timezone per module with a new searchable picker, or leave it blank to follow the display setting. The same picker now powers the Location settings page.
  • Sky color theme for the sunrise and sunset circle view: a gradient ring through sunrise, noon, golden hour, sunset, and darkness, with scattered stars through the astronomical-dark window. Both themes now handle midnight sun and polar night.
  • The homepage at homescreens.dev now walks through 22 real dashboard screenshots with descriptions and module lists, replacing the old rotating frame, and Discord community links were added to the README, the marketing site, and the docs.

Improved

  • Settings > Calendar was reorganized: grouped into where events come from, who is in the household, and what to show, with each calendar source carrying its own health badge on its row instead of a separate status list; calendar module settings are grouped into labelled sections in the same order for both calendar modules (view picker, What shows, the current view's own settings, Event rows, Look, Advanced looks, and Touch) so settings that belong to other views no longer sit interleaved with the ones you're editing; full-screen calendar settings now show only what applies to the current view, like the now-line toggle on time-grid views and weekend shading on the week list and agenda; and when a calendar source fails, the reason now reads in your own language rather than always in English.
  • More detail from your weather source: UV index now comes through from Pirate Weather, Met Office, WeatherAPI, and Open-Meteo; pressure, dew point, and visibility from Pirate Weather; and OpenWeatherMap's hourly forecast now covers five days instead of 24 hours, fetched once per refresh instead of twice.
  • Dark mode now covers scrollbars, dropdowns, and form controls, which previously stayed light against the dark app.
  • The editor canvas zooms on fixed stops from 20% to 400% instead of drifting by a multiplier, and Ctrl+wheel moves exactly one stop per notch. Zoomed-in canvases can now scroll all the way to their left edge.
  • The multi-week calendar grid got a visual pass: every day number sits in a shaded header tinted with the accent color, today keeps the stronger fill, and the gaps between day cells are wider.
  • Custom empty-day wording and week or month separators in the calendar agenda views.
  • Uploading a background image in a format the display cannot show now says so instead of failing quietly, and GIF and AVIF backgrounds are saved under their real file type.
  • The documentation and module reference were brought back in line with the app: corrected accent color defaults, the full twelve-theme palette list, the calendar keyword filter, source legend, and rules, the new birthday and holiday event types, and the current API reference.
  • Updated bundled dependencies to clear security advisories, and the packaged server download is considerably smaller.

Fixed

  • Google Calendar events failed to load on installs upgraded to 1.11.0-rc.1 because part of the Google client was missing from the packaged server. The package now ships intact.
  • OpenWeatherMap users on metric units were seeing wind speeds in meters per second under a km/h label. Wind is now converted to km/h like every other source, so the numbers will look roughly three and a half times larger than before. The new numbers are the correct ones.
  • The clock, date, year progress, multi-month, and text modules could report a mismatch and briefly render the server's time when a display's own clock had drifted; they now settle on the display's time cleanly.
  • Full-screen calendar layout fixes: overlapping events in the Free time view no longer print their titles on top of each other, the first and last hour labels sit inside the schedule and day timeline grids instead of being sliced at the edge, an event crossing a zone boundary no longer paints over the zone label, a standalone event keeps its full column width when a different part of the day is crowded, the family grid fills the screen in portrait, the agenda fades at its edge instead of cutting the last card in half, and large title text no longer overlaps the weather badges in the header and family grid day headers.
  • The Up next view now lists events happening right now under their own "Now" heading instead of filing them under "Earlier today", uses two columns in landscape so tomorrow is no longer cut off the bottom, and can show per-event weather like the other views.
  • The editor's weather source table listed Met Office as having no optional fields; it now shows what Met Office actually provides.
  • The midnight label in the full-screen calendar's hour gutter read "12 PM" instead of "12 AM".
  • Calendar setups using only iCloud calendars did not fetch any events at all, and iCloud calendars were missing from the editor's source filter.
  • The fullscreen calendar placed events using the computer's clock instead of the display's timezone, so events could land on the wrong day or at the wrong position in every one of its five views. Events crossing a daylight-saving change now keep their real duration.
  • Calendar polish across both modules: 24-hour clock labels, weekend shading defaults, holiday glyphs, the "saved" suffix on stale rows, screen-reader labels on event rows, and events needlessly redrawing every minute on displays.
  • The sun glow on the sunrise and sunset circle view stayed lit all night; it now turns off between sunset and sunrise, and the marker dims to match.
  • Opening the Calendar settings tab could crash the editor when no Google calendars were configured.
  • The fullscreen calendar's Density setting showed a raw internal name instead of its label.
  • Multi-week grid fixes: the month abbreviation and day number no longer run together, day numbers and today's badge pick a readable text color against light accent colors, and weekday labels stay lined up with their columns when week numbers are shown.
  • Embedded web pages in the iframe module no longer change appearance based on the app's theme, and the meal planner's time inputs now follow the app theme instead of being locked to dark.
  • The calendar status page could be read without signing in, exposing your calendar names and any error text from your calendar provider. It now requires the same access as the rest of the display.
v1.10.0

1.10.0

New

  • Multi-week calendar view: see the current week plus up to 12 more in one grid, with month labels on month-start days, dimmed past days, and today highlighted
  • Colored calendar events: grid views can now show all-day events as solid pills in their calendar's color and timed events in colored text, with a classic style toggle per module
  • Household time format: pick 12-hour or 24-hour once in settings and calendars, meal times, and event details all follow it
  • 24-hour circle view for the sunrise & sunset module, plus an option to show when full darkness begins and ends each night
  • Automatic software updates for display-only Raspberry Pis: displays check for updates nightly and at startup, apply them safely with rollback, and never restart a display that's being used
  • Module layering controls in the editor: bring a module to the front or send it to the back, and click the same spot repeatedly to select modules hidden underneath
  • Per-module font weight in the Style panel: set any module's text from thin to bold with a slider

Improved

  • Weather modules can show a location name header, using your own label or the place name looked up from coordinates
  • Sleep and dimming settings got a new "stay on" hold: waking or touching a display during a sleep or dim window keeps it on for a configurable number of minutes, and remote navigation now wakes a sleeping display
  • Idle dimming is now its own toggle, so a display can sleep on a schedule while staying at full brightness the rest of the day; the sleep settings page is reorganized with a 24-hour preview of the resulting brightness
  • The fullscreen calendar can start the week on any day, matching the other calendar modules
  • The plugin store now links each plugin to its project page and shows a release notes history for every version
  • Completed the Danish translation and cleaned up leftover English text in the German, Spanish, French, Dutch, and Portuguese translations
  • The setup prompt for a new display stands out more and offers ready-to-copy setup and SSH commands built from the display's own address
  • Editor polish: module name chips and status badges now follow the module's rounded corners
  • The app's fonts now ship with it instead of being downloaded from Google during builds

Fixed

  • Events that cross midnight now appear on every day they cover, with each day showing only its own portion, instead of only the starting day
  • Calendar grid views: week numbers now match their rows for Monday-start weeks, today's highlight follows the display's timezone, and a bad week-count value falls back to the default instead of an empty grid
  • Weather views no longer overflow or squash their content: the current, daily, compact, and combined views measure themselves and pick the largest size that fits
  • Countdown scale now means the same size in every view, so the flip cards no longer jump in size when switching between the Next and All views
v1.9.0

1.9.0

New

  • Visual timers and routines: set quick timers (30 seconds to 15 minutes, or a custom length) and build multi-step routines from your phone, with an emoji and length for each step and "wait for a tap" holds. A running timer takes over the display full-screen with four looks to choose from (Glow ring, Timer face, Color fall, Star path), a nudge when time is almost up, optional soft chimes, and a celebration screen at the end. Pause, resume, skip, add a minute, or stop from the live control card; a running timer survives a restart, and routines are included in backups
  • Google Photos import: bring photos from your Google Photos library into slideshows and fullscreen photo modules. Sign in with Google, pick the photos you want, and they download into your local photo library
  • Swipe to change screens: flick left or right anywhere on a touchscreen display to go to the next or previous screen, with slide and flip transitions that mirror when you go backward. On by default with a per-display override, and a touch that wakes a sleeping display never also changes screens
  • Tap an event on the calendar or fullscreen calendar to see its full details (time, location, description) in a pop-up that dismisses itself, with a choice of sheet or card style. Screen rotation pauses while it's open
  • Voice control with Home Assistant: a new guide with a ready-to-paste setup so you can ask your voice assistant to check off chores, hear today's chore list, read out the grocery list, switch profiles, jump to a screen, or keep a display awake
  • New remote commands for displays: send a display to a specific screen by name, and wake a display and hold it awake for a chosen number of minutes
  • Every release now includes a ready-to-flash SD card image, built automatically alongside the release

Improved

  • Stock and crypto cards now show a small trend line (today's movement for stocks, the last 7 days for crypto), colored to match the change direction, with a toggle to turn it off, and the cards line up in even columns across rows
  • Timers can be scoped to specific displays with a "Show on" picker, defaulting to all displays and remembering your choice as you move between tabs
  • New installs start with a weather provider that needs no API key, so weather works right after setup
  • The chore chart now reads family members and chores from the shared family data everywhere, so displays, the remote, and the kids' page always agree
  • The Google card on the Integrations page now mentions Photos alongside Calendar, and the sign-in fields are labeled Calendar Client ID and Secret so it's clear which service they belong to
  • Installing a plugin that isn't put together correctly now explains exactly what's wrong in plain language, and a failed plugin refresh keeps your current plugins running instead of removing them
  • When saving a chore, reward, or meal change fails, the page now says so and puts things back the way they were instead of quietly losing the change
  • Settings links keep the tab they were meant to open, and switching tabs no longer leaves stale bits in the address bar
  • Documentation refreshed to match current behavior, including the timers, touch navigation, and Google Photos features; the website homepage now lists the layout templates that actually ship, and the changelog keeps older releases on a separate archive page

Fixed

  • Dragging a brightness or volume slider on a touchscreen no longer flips to the next screen
  • Alerts hold a readable size on any display shape, and the dismiss button is always big enough to tap. A display with its own dimensions is no longer rotated by the global default's setting
  • Alerts set to stay on screen until dismissed now stay for every alert type, not just some
  • Homes with more than one display: the remote and the kids' chores page now find chore charts and meal planners on any display, not just the main one, and each display's status shows screen names from its own screen list
  • Wake-up rules can now reliably wake a sleeping display and hold it awake so a sleep schedule doesn't put it right back to sleep moments later
  • A display no longer stops picking up configuration changes when one part of its update check fails; each part now retries on its own
  • Plugin settings updates during an upgrade could be skipped entirely or applied inconsistently depending on which version you were coming from
  • Installs and upgrades could fail on the Raspberry Pi because of a package tool bug; setup now accepts current versions of the tool, and upgrades raise Node alongside it instead of forcing one exact release
  • Setup no longer fails on a Pi that's plugged in by Ethernet with no WiFi connection
  • A brief network hiccup no longer makes the editor forget which API keys you've saved, and the Todoist section no longer gets stuck on "Checking"
  • Deleting a photo from the library now shows an error message when it fails instead of a stuck "Deleting" overlay
  • Downloading layout and backup exports now works in Safari
  • Deleting a display no longer briefly re-selects the display you just removed
  • Naming a display "all" now explains that the name is already taken by the "every display" command instead of showing a generic error
v1.8.0

1.8.0

New

  • Display Rules: set up automations that react to shared state or the time of day, like taking over a screen for an alert, waking a sleeping display, or putting one to sleep. Rules include a visual condition builder, live "met/not met" status on each card, can be copied to another display, and a takeover only fires on a real change so a restart or reboot won't trigger it by accident
  • Plugins can publish live values on demand: referencing a value in a visibility condition or Text token is enough to make it start publishing, with no module needed on screen. Plugins can also offer their own settings, edited right from the plugin manager and applied to running displays without a reload
  • Shared state now has a searchable "Available" tab that browses every value your plugins can provide (grouped by add-on), not just the ones you've already used in a condition or text token
  • Plugin beta channel: opt in to beta versions of plugins from the plugin store, with a toggle in Browse, beta badges throughout, a separate upgrade offer that doesn't require switching your whole install to beta, and a one-step way back to the stable version that keeps your settings and connected accounts

Improved

  • Settings has been reorganized into grouped, tabbed pages (Screen, Content, Automation, Maintenance), the sidebar search now matches individual fields and jumps straight to the setting with a brief highlight, and several pages were renamed to say what they hold, like "System & updates" and "Backups & data"
  • Clock's Elapsed view and the Countdown module can now choose a display format (flip cards, timer style, or spelled-out words) and how much precision to show, with a live preview in the editor
  • Visibility conditions gained "or equal to" checkboxes for numeric comparisons, a friendly search for state keys (readable labels, current values, and known options) when building a condition, and Text module tokens can now format values inline, like rounding a number or supplying a default
  • The editor now shows live status for every visibility condition and rule, using real data reported by your displays, plus a Live values page that shows what's published versus what's actually being used and warns when a plugin's data source stops reporting
  • A misbehaving add-on now fails in place instead of taking everything with it: a plugin that crashes shows an error in its own spot on the screen, leaving the rest of the kiosk running and your unsaved editor changes intact
  • Plugins now declare which app version they require; the plugin store automatically picks the newest compatible version instead of just the first one listed, blocks incompatible installs and updates, and names the exact version you have installed when it differs from the release being shown
  • A plugin dev override now falls back to your installed copy if the dev server becomes unreachable, and picks the dev copy back up automatically once the server returns
  • Background editor tabs pause their plugin data connections after being hidden for a minute, and screen prefetching correctly pauses during rule takeovers
  • Very long Todoist lists now show their count as "4000+" rather than quietly reporting a smaller number as exact, and the Danish task counts are translated
  • Documentation has been refreshed to match the reorganized settings pages and the new Clock and Countdown options

Fixed

  • Plugins with a minimum app version requirement were incorrectly hidden or blocked on release-candidate builds of the exact version they require
  • Todoist task lists longer than one page were being silently cut off; task fetching now pages through all results and tolerates temporary Todoist errors without losing projects, sections, or labels
  • A rule takeover could keep a display lit all night if its condition stayed true; sleep now resumes 5 minutes into a takeover while the takeover keeps its screen pinned
  • A display put to sleep by a rule, the remote, or a touch control could not always be woken by touching the screen, and turning sleep off could leave a screen stuck asleep
  • Clock's Elapsed view in timer format no longer looks like it resets when it crosses an hour or a day; the rightmost number is always seconds
  • Bookmarks to the old Sleep, Rules, and Profiles settings pages now open on the tab they became, settings search no longer lists fields that aren't actually on the page, opening a display's settings shows that display's rules rather than another one's, and switching tabs right after an edit no longer drops it
  • The editor briefly showed condition-based modules as hidden while a plugin restarted; it now matches what the display is really doing and marks a value that has stopped updating
  • Plugin settings could read as empty for fields the settings form showed as filled in
v1.7.1

1.7.1

Fixed

  • Updating Home Screens no longer removes installed plugins, uploaded backgrounds, or local environment settings; updates now only replace the app's own code
  • Plugin sign-in (like Strava or Garmin) now works when you open the editor by hostname or through a proxy; the connection link previously pointed at the wrong address (Fixes Strava Plugin)
v1.7.0

1.7.0

New

  • iCloud calendar sync — connect one or more iCloud accounts with app-specific passwords in Settings > Calendar, pick which calendars to show (Apple calendar colors preserved), and optionally include birthdays from your contacts
  • Video support — new Video module that plays library files, direct URLs, and YouTube links; photo slideshows and the fullscreen photo viewer can mix videos into rotation, and the image library is now a full media library with video thumbnails and uploads up to 200 MB
  • iCloud photos and videos — use iCloud Shared Albums (including the newer photos.icloud.com/shared links) as a slideshow or background source, or import from an iCloud link straight into your media library
  • Tap a meal to open its recipe — meal planner modules can show a QR code or the recipe page itself in a fullscreen overlay; screen rotation pauses while it's open
  • Plugin account connections — plugins can now sign in to services that require an account (OAuth-based APIs and Garmin Connect) through a new Connection panel in the editor; sign-ins are stored securely and survive upgrades
  • Live values for visibility conditions — the editor now shows each shared-state key's current value next to condition inputs and warns about case mismatches, and Text modules can embed live state values with {key} tokens
  • New Health & Fitness module category, ready for fitness plugins like Strava and Garmin

Improved

  • Redesigned upgrade window with step-by-step progress, per-step timing, and a live console you can follow while an upgrade or rollback runs
  • Month and week calendar grids now show the whole grid, with past days dimmed, instead of starting at today — and later weeks no longer run out of events
  • Sleep and dim schedules, moon phase, and sunrise/sunset now follow the display's configured timezone instead of the device's system timezone
  • Modules shown or hidden by shared-state conditions no longer blink when their data source restarts or a plugin reloads
  • Stronger access control: the hub no longer trusts forged network headers for IP allowlists and login rate limits, and error messages no longer reveal server file paths
  • Rain map radar tiles that fail to load are retried instead of staying blank, and the map uses less memory over long sessions
  • Weather modules stop polling when no location is configured instead of failing over and over in the background
  • Anonymous telemetry now includes which marketplace plugins are installed (side-loaded plugins are never identified); the what-we-collect page is updated in all languages

Fixed

  • Saving an invalid Todoist token kicked the editor back to the login page instead of showing the error
  • Server crash when a display skipped or stopped a video mid-download
  • Plugin translations always showed English instead of the configured language
  • Plugin modules set as background providers never started their data loop
  • Editor froze when selecting a Display Control module before any displays were registered
  • The rewards screen could open with no family member selected
  • Layout export and import now use the selected display's profiles in multi-display setups
  • An editor save made while the hub was starting up could be overwritten by the startup migration
  • Fullscreen meal planner and photo clock overlays used browser time instead of the display's timezone
  • Background uploads that were too large now get a friendly "file too big" message instead of a server error, and video uploads over 10 MB are no longer silently cut off
  • Photo grid overflowed its frame in the image browser