MCPcopy Index your code
hub / github.com/azymohliad/watchmate

github.com/azymohliad/watchmate @v0.5.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.3 ↗ · + Follow
179 symbols 303 edges 26 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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.

Extension points exported contracts — how you extend this code

Response (Interface)
(no doc) [6 implementers]
infinitime/src/bluetooth/device/fs/msg.rs

Core symbols most depended-on inside this repo

chr
called by 27
infinitime/src/bluetooth/device.rs
report_msg
called by 11
infinitime/src/bluetooth/device.rs
selected_release_info
called by 8
watchmate/src/ui/dashboard_page/fwupd.rs
is_some
called by 6
watchmate/src/ui/dashboard_page/fwupd.rs
device
called by 6
infinitime/src/bluetooth/device.rs
response_data_check
called by 6
infinitime/src/bluetooth/device/fs/msg.rs
report_num
called by 4
infinitime/src/bluetooth/device.rs
stop_control_task
called by 3
watchmate/src/ui/dashboard_page/media_player.rs

Shape

Method 95
Function 29
Class 28
Enum 26
Interface 1

Languages

Rust100%

Modules by API surface

infinitime/src/bluetooth/device.rs22 symbols
infinitime/src/bluetooth/device/fs/msg.rs21 symbols
watchmate/src/ui/devices_page.rs17 symbols
watchmate/src/ui/dashboard_page/fwupd.rs15 symbols
infinitime/src/bluetooth/device/fs.rs13 symbols
infinitime/src/bluetooth/device/media_player.rs12 symbols
watchmate/src/ui/fwupd_page.rs11 symbols
infinitime/src/github.rs10 symbols
watchmate/src/ui/dashboard_page/media_player.rs8 symbols
watchmate/src/ui/dashboard_page.rs8 symbols
watchmate/src/ui/dashboard_page/notifications.rs6 symbols
watchmate/src/ui.rs6 symbols

For agents

$ claude mcp add watchmate \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact