Skip to content

Rework the watchface script for ceres deployment and transparent previews - #261

Open
moWerk wants to merge 4 commits into
AsteroidOS:masterfrom
moWerk:watchface-script-xdg-previews
Open

Rework the watchface script for ceres deployment and transparent previews#261
moWerk wants to merge 4 commits into
AsteroidOS:masterfrom
moWerk:watchface-script-xdg-previews

Conversation

@moWerk

@moWerk moWerk commented Aug 5, 2026

Copy link
Copy Markdown
Member

This reworks the watchface developer script and its loader.qml harness.

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.

moWerk added 3 commits August 7, 2026 03:26
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.
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
moWerk force-pushed the watchface-script-xdg-previews branch from 8376140 to ef57166 Compare August 8, 2026 20:34
@moWerk
moWerk marked this pull request as ready for review August 8, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant