Rework the watchface script for ceres deployment and transparent previews - #261
Open
moWerk wants to merge 4 commits into
Open
Rework the watchface script for ceres deployment and transparent previews#261moWerk wants to merge 4 commits into
moWerk wants to merge 4 commits into
Conversation
This was referenced Aug 5, 2026
moWerk
force-pushed
the
watchface-script-xdg-previews
branch
from
August 5, 2026 10:04
4529935 to
d4a18a1
Compare
moWerk
marked this pull request as draft
August 6, 2026 19:35
The watchface store downloads a single preview and the launcher regenerates a device sized image from the live face, so the five per resolution PNGs under watchfaces-preview are no longer used. convertPreviews now writes the transparent master as watchfaces-preview/<name>-full.webp and drops the PNG set. The web thumbnails used by the README are unchanged.
The watchface store installs community watchfaces into the ceres XDG data folder. Deploying there instead of the read only system folder matches the on device layout and no longer needs root to place a watchface. The asteroid-launcher content goes to the user data folder and bundled fonts to the user font folder, activation points dconf at the user path, and the wallpaper is written to the user wallpaper folder. In ADB mode the push runs as root so ownership is corrected to ceres afterwards. With the launcher picking up new watchfaces and fonts live via the store font and reload support, the session restart after every deploy is removed, the biggest speed up for the deploy workflow.
The harness gains a capture mode gated by WatchfaceConfig.captureMode that renders the transparent master on a square frame at a fixed time and 96 percent battery then quits, so previews can be generated in batch without operating the window. It also gains a reference overlay toggled from the controls that shows the upstream gallery thumbnail semi transparent over the live face, so element positions can be tuned against the shipped look. convertPreviews now writes the shipped preview at 192 pixels.
moWerk
force-pushed
the
watchface-script-xdg-previews
branch
from
August 8, 2026 19:22
d4a18a1 to
8376140
Compare
Add Label and BluetoothStatus to the org.asteroid stubs, a StepsDataLoader stub for org.asteroid.sensorlogd, add a StepCounterSensor stub for QtSensors, and make ConfigurationValue return its defaultValue so faces that key off a config index render their default.
moWerk
force-pushed
the
watchface-script-xdg-previews
branch
from
August 8, 2026 20:34
8376140 to
ef57166
Compare
moWerk
marked this pull request as ready for review
August 8, 2026 20:51
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.
This reworks the
watchfacedeveloper script and itsloader.qmlharness.Deployment now targets the ceres user folder, using the XDG launcher, font and wallpaper paths, and drops the session restart. This matches how the on-device store installs a face, so a deployed face activates live without restarting ceres.
Preview generation ships a single transparent webp per face in place of the five fixed size opaque PNGs. The store scales that one master to the device and composites it over the live wallpaper, so one asset covers every screen size and the tile shows the face on its real background.
The harness gains a headless capture mode, used to batch generate the transparent previews, and a gallery reference overlay that aligns a face against its upstream thumbnail while nudging positions. The bundled fake-components are completed so every community face resolves its org.asteroid imports and renders in the harness.
The round wallpaper carousel for the harness background is intentionally left out and scoped to a later change.
This was executed by an LLM under my direction. I have fully understood and take authorship of the changes.