Companion app for PineTime smartwatches running InfiniTime. Built with GTK4/libadwaita and Rust, aimed at mobile Linux devices such as the PinePhone.
- BLE connection with automatic reconnection and exponential backoff
- Live battery, heart rate, and step count display
- Step history chart with daily persistence (7d / 30d / all time)
- Desktop notification forwarding to watch
- Background mode (keeps connection alive when window is closed)
- Said background mode can also be started manually by running flatpak run io.github.nico359.pinepal --gapplication-service
- Autostart via Background Portal - might not work in e.g. Phosh because the Portal is not implemented there yet)
- Firmware Update of the watch
- Maybe also heart rate history with the new feature of InfiniTime 1.16
- Music controls
- Accepting or declining calls (if that is even possible)
- Synchronising time of the watch on connect
Based on the work of Watchmate by Andrii Zymohliad.
This application was built with the assistance of AI (GitHub Copilot CLI, Claude).
The easiest way to build the app is by using GNOME Builder IDE or flatpak-builder.
Example using flatpak-builder as a flatpak:
- Install flatpak-builder
flatpak install org.flatpak.Builder
- Compile the project into a local repo
flatpak run org.flatpak.Builder --repo=repo --force-clean --user build io.github.nico359.pinepal.json
- Then create a bundle which you can install
flatpak build-bundle repo pinepal.flatpak io.github.nico359.pinepal