Description
WeatherFlow is a clean, data-driven watchface for the Garmin Forerunner 255, designed to harmonize your environment with your watch display.
Key Feature: Dynamic Weather Background
The background of this watchface automatically adapts to your current local weather conditions using the Toybox.Weather module. This provides an intuitive visual cue of the outdoors at a glance:
Clear/Sunny: A bright, high-contrast layout optimized for direct sunlight.
Rainy: A specialized "Rain" theme with stylized precipiation elements.
Cloudy: A muted, overcast-inspired background for better visual comfort.
Snowy: A winter-themed display with high-visibility accents.
Functional Data Display
The layout prioritizes legibility and essential daily metrics:
Time & Date: Large, clear digital time with full date information.
Health Metrics: Real-time Heart Rate (BPM) monitoring.
Activity Tracking: Daily Step count and Battery percentage.
Status Icons: Bluetooth connection and Notification alerts.
Optimized for MIP Displays
Specifically engineered for Memory-In-Pixel (MIP) screens, the design uses a zero-gradient color palette to ensure maximum crispness and prevent the "washed-out" look often found in complex designs.
Battery Efficient
Built with performance in mind, the onUpdate logic is optimized to minimize CPU cycles, ensuring that your background transitions do not compromise your Forerunner 255's battery life.
What is new
# Changelog
All notable changes from `v0.0.23` through `v0.0.101`, full changelog available at: https://github.com/WangYihang/garmin-watch-face-weather-flow/blob/main/CHANGELOG.md
## v0.0.101 — 2026-05-21
### Features
- feat(trial): bouncing motion + per-char rainbow gradient label
- feat(trial): replace pill bg with 2-px white outline halo
- feat(metrics): add 'Clock Only' layout preset (no metrics)
- feat(metrics): implement Humidity/Wind/Sunrise/Sunset metrics
- feat(metrics): default new installs to 'Clock Only' layout preset
### Fixes
- fix(view): always full-draw in calm weather — disable PR #39 dirty-skip
- fix(boot): guard _registerSettingsObservers behind foreground sentinel
- fix(trial): guard against System.getTimer() Int32 overflow
- fix(boot): move _registerSettingsObservers to getInitialView (background-safe)
- fix(makefile): improve platform-specific configurations and simulator launch command
- fix(trial): drop trial-banner animation rate FAST → MEDIUM (OOM)
- fix(makefile): update simulator launch command for macOS and Linux
- fix(compat): support CIQ 3.x devices (9-arg limit, missing Activity fields)
- fix(metrics): use ASCII '/' instead of ↑↓ in HighLowTempMetric
### Other
- chore: update version to 0.0.100 in manifest and uv.lock
- chore(build): strip (:test) bytecode from production builds
- perf(layout): drop precomputed Y.width cache (~5 KB heap on fr255)
- perf(metrics-row): make PRESET_TOP/BOTTOM static const
- Bump version: 0.0.100 → 0.0.101
- Merge pull request #84 from WangYihang/claude/hotfix-disable-dirty-skip-blackscreen
- Merge pull request #85 from WangYihang/claude/fix-background-context-settings
- Merge pull request #86 from WangYihang/claude/fix-trialindicator-negative-timer-oob
- Merge pull request #87 from WangYihang/claude/fix-bg-settings-move-to-getinitialview
- Merge pull request #88 from WangYihang/claude/fix-trial-anim-medium-tier
- Merge pull request #89 from WangYihang/claude/memory-squeeze-phase-a
- Merge pull request #90 from WangYihang/claude/trial-bouncing-animation
- Merge pull request #91 from WangYihang/claude/fix-highlowtemp-ascii
- Merge pull request #92 from WangYihang/claude/trial-bouncing-animation
- Merge pull request #93 from WangYihang/claude/add-clock-only-preset
- Merge pull request #94 from WangYihang/claude/add-weather-metrics
- Merge pull request #95 from WangYihang/claude/set-clockonly-as-default
Screenshots
Supported language (1)
Compatible devices (105)
Approach® S50
Approach® S70 (42mm)
Approach® S70 (47mm)
Captain Marvel
Captain Marvel
D2™ Air
D2™ Air X10
D2™ Air X15
D2™ Mach 1
D2™ Mach 1 Pro
D2™ Mach 2
D2™ Mach 2 Pro
Darth Vader™
Darth Vader™
Descent™ G2
Descent™ MK3 - 43mm
Descent™ MK3i - 51mm
Enduro™ 2
Enduro™ 3
epix™ (Gen 2)
epix™ (Gen 2)
epix™ Pro (42mm)
epix™ Pro (47mm)
epix™ Pro (51mm)
fēnix® 7
fēnix® 7
fēnix® 7 Pro
fēnix® 7 Pro – Solar Edition (No Wi-Fi®)
fēnix® 7S
fēnix® 7S
fēnix® 7S Pro
fēnix® 7X
fēnix® 7X
fēnix® 7X Pro
fēnix® 7X Pro No Wi-Fi
fēnix® 8 AMOLED (43mm)
fēnix® 8 AMOLED (47mm/51mm)
fēnix® 8 Pro
fēnix® 8 Solar (47mm)
fēnix® 8 Solar (51mm)
fenix® 9 - 43 mm
fenix® 9 – 47 mm
fēnix® E
First Avenger
First Avenger
Forerunner® 165
Forerunner® 165 Music
Forerunner® 170
Forerunner® 170 Music
Forerunner® 255
Forerunner® 255 Music
Forerunner® 255S
Forerunner® 255S Music
Forerunner® 265
Forerunner® 265S
Forerunner® 570 - 42mm
Forerunner® 570 - 47mm
Forerunner® 70
Forerunner® 70
Forerunner® 955 Dual Power
Forerunner® 965
Forerunner® 970
Instinct® 3 – 45 mm, AMOLED
Instinct® 3 – 50 mm, AMOLED
Instinct® Crossover AMOLED
MARQ® (Gen 2)
MARQ® Commander (Gen 2) – Carbon Edition
MARQ™ Aviator (Gen 2)
Mercedes-Benz Venu®
Mercedes-Benz Venu®
Mercedes-Benz Venu® 2
Mercedes-Benz Venu® 2
Mercedes-Benz Venu® 2S
Mercedes-Benz Venu® 2S
Rey™
Rey™
tactix® 7
tactix® 7 – AMOLED Edition
tactix® 8 – 47 mm, AMOLED
tactix® 8 – 51 mm, Solar
Venu®
Venu®
Venu® 2
Venu® 2
Venu® 2 Plus
Venu® 2 Plus
Venu® 2S
Venu® 2S
Venu® 3
Venu® 3S
Venu® 4 – 41 mm
Venu® 4 – 45 mm
Venu® Sq. 2
Venu® Sq. 2 Music
Venu® Sq. Music
Venu® Sq. Music
Venu® Sq. Music
Venu® Sq. Music
Venu® X1
vívoactive® 4
vívoactive® 4
vívoactive® 4S
vívoactive® 4S
vívoactive® 5
vívoactive® 6