Conversation
Move the night hatch helpers out of forecast_layer.c into appendix/draw, the battery gauge out of battery_layer.c into appendix/battery_indicator, and the quiet-time/bluetooth icons out of calendar_status_layer.c into appendix/status_icons, so another top-band view can draw them too. The connection service subscription moves from calendar_status_layer to main_window, keeping the disconnect vibration independent of which layer is visible. Rendering is unchanged: calendar-mode fixture screenshots are pixel-identical on aplite, basalt, diorite, emery and flint. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6abcjuotEL5NKg6nVavm2
Add a "top band" setting that swaps the calendar and its status row for a grid of configurable stat tiles (3x2 on emery, 2x2 on 144px watches): steps, distance, active calories, activity vs. typical, heart rate, UV index, battery, current temperature, sunrise, sunset, date and weekday. Calories, activity, UV and battery draw an indicator bar. aplite has no health API and keeps the calendar only. - The watch reports which metrics it can supply, so the settings page only offers real options (e.g. heart rate only with a sensor). - Bluetooth/quiet-time icons and the battery gauge sit in the grid's top row, aligned with the tile titles; titles stay centred on their tile and only move aside as far as an icon (or the charging bolt) requires. - Distance follows the unit picked in the Pebble app's Health settings, falling back to the temperature unit when none was picked. - The UV index comes from the already-fetched weather response. - Fixtures gain watch.health and weather.uvIndex for emulator screenshots, plus a new fixtures/stats.json. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6abcjuotEL5NKg6nVavm2
Draw the last hour of heart rate as a thin dark-red line behind the HEART tile's title and value on emery, like dataload2 does. The history comes from health_service_get_minute_history, i.e. only what the firmware already logs: no sample-period request, no health event subscription. The 60 minute records are read at most every 5 minutes, only while the grid is drawn with a heart rate tile, folded into 30 averaged points and cached; the raw records live on the heap for that call only. Gaps between readings are bridged, and the vertical scale spans at least 20 bpm so a steady resting pulse stays a calm line. Fixtures gain an optional watch.health.heart_rate_history. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6abcjuotEL5NKg6nVavm2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Really enjoying this watchface on my PT2. Personally, I don't get much use out of the calendar, but I'd love to see some health metrics in its place. Inspired by dataload, this PR adds an option to replace the calendar with a metrics grid, with a configurable choice of data points (steps, heart rate, distance, etc.).
Not sure if there is interest in such bigger change, as it adds quite a bit that wasn't there before: new settings, infrastructure to retrieve the data points, and the grid itself. It also extracts a few existing pieces, like the battery indicator and the status icons, so the grid can reuse them. The calendar keeps using the same code and looks unchanged.
Summary
Screenshots
Features
Steps, Sunrise, Sunset, Temperature, UV index, Weekday, Empty
temperature unit
--Implementation
and grid (calendar renders pixel-identical)
healthcapability: the Pebble app asks users for health permissionstatsfixture for emulator screenshots