Skip to content

azymohliad/watchmate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Watchmate

Companion app for InfiniTime-powered PineTime smart watch.

Visually optimized for GNOME, adaptive for phone and desktop, Linux only.

watchmate_v0.4.0

Features

  • Current time service.
  • Data reading: battery level, heart rate, steps count, firmware version.
  • OTA firmware and external resources updates. Both, from manually specified DFU/resources files, or automatically downloaded from InfiniTime releases for selected version.
  • Media-player control.
  • Notifications forwarding.

Install

Watchmate is available on Flathub:

flatpak install io.gitlab.azymohliad.WatchMate

Or via the following community-maintained distro packages:

Packaging status

Build

Native

Prerequisites
Add glib schema for persistent settings

Settings schema can be installed locally as follows:

mkdir -p $HOME/.local/share/glib-2.0/schemas/
cp assets/io.gitlab.azymohliad.WatchMate.gschema.xml $HOME/.local/share/glib-2.0/schemas/
glib-compile-schemas $HOME/.local/share/glib-2.0/schemas/
Build and Run

To compile and run the project, execute the following command from repo directory:

cargo run --release

Flatpak

Prerequisites
Install Dependencies
flatpak install org.gnome.Platform//45 org.gnome.Sdk//45 org.freedesktop.Sdk.Extension.rust-stable//23.08
Build
flatpak-builder --user target/flatpak flatpak/io.gitlab.azymohliad.WatchMate.yml
Run
flatpak-builder --run target/flatpak flatpak/io.gitlab.azymohliad.WatchMate.yml watchmate
Install
flatpak-builder --install target/flatpak flatpak/io.gitlab.azymohliad.WatchMate.yml

Here and above, target/flatpak is the build directory. It's a convenient default for Rust project (target is already in .gitignore), but can be anything else.

Tech Stack and Thanks

Watchmate stands on the shoulders of the following giants:

I'm deeply grateful to all people behind these technologies. Watchmate wouldn't be possible without them: first, it would be technically unliftable; second, even with the alternatives, I probably wouldn't enjoy it so much, and joy is vitally important for hobby projects like this one.