{"id":16913869,"url":"https://github.com/warmsound/crystal-face","last_synced_at":"2025-12-22T11:30:15.502Z","repository":{"id":29621075,"uuid":"120428437","full_name":"warmsound/crystal-face","owner":"warmsound","description":"Garmin Connect IQ watch face","archived":false,"fork":false,"pushed_at":"2024-08-02T12:55:20.000Z","size":90479,"stargazers_count":384,"open_issues_count":89,"forks_count":124,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-10-14T19:15:44.096Z","etag":null,"topics":["ciq","garmin","monkeyc"],"latest_commit_sha":null,"homepage":"https://apps.garmin.com/en-GB/apps/9fd04d09-8c80-4c81-9257-17cfa0f0081b","language":"Monkey C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/warmsound.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-02-06T09:02:33.000Z","updated_at":"2024-10-08T08:30:42.000Z","dependencies_parsed_at":"2023-01-14T15:30:17.948Z","dependency_job_id":"a16b55cf-2002-448f-b1b6-e19bd5c0e761","html_url":"https://github.com/warmsound/crystal-face","commit_stats":null,"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warmsound%2Fcrystal-face","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warmsound%2Fcrystal-face/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warmsound%2Fcrystal-face/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warmsound%2Fcrystal-face/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/warmsound","download_url":"https://codeload.github.com/warmsound/crystal-face/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239703668,"owners_count":19683312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ciq","garmin","monkeyc"],"created_at":"2024-10-13T19:15:24.857Z","updated_at":"2025-12-22T11:30:15.423Z","avatar_url":"https://github.com/warmsound.png","language":"Monkey C","funding_links":[],"categories":["Watch faces"],"sub_categories":[],"readme":"# Crystal\nA Garmin Connect IQ watch face.\n\n## Description\n**If you enjoy using Crystal, you can support my work with a small donation:**\nhttps://goo.gl/vFCE4T\n\n**FAQs, including how to change watch face settings:**\nhttps://github.com/warmsound/crystal-face/wiki/FAQ\n\nA crystal clear watch face, with LCD-like goal meter segments, written while snow crystals were falling during an unusually cold spell of weather here in England.\n\nFeatures (depending on watch support):\n- Big time digits right in the middle, with hours in bold. Leading zero and seconds can be hidden. Hours and minutes colours can be set independently.\n- Up to 3 customisable data fields: HR (historical/live), battery, notifications, calories, distance, alarms, altitude, thermometer, sunrise/sunset, weather (OpenWeatherMap).\n- Up to 3 customisable indicators: Bluetooth, alarms, notifications, Bluetooth/notifications, battery.\n- 2 customisable meters: steps, floors climbed, active minutes (weekly), battery, calories (custom goal). The meters have auto-scaling segments and current/target value display.\n- Move bar.\n- 12 colour themes.\n\nThe techie bit: to save your watch battery, the goal meters and move bar are drawn from a palette-restricted back buffer, for improved drawing performance, with minimal memory penalty.\n\nThis is my first ever Connect IQ watch face (please be kind!), so I look forward to your feedback, improving the watch face, and bringing it to more devices.\n\nReviews:\n- Video review in Spanish, by Sergio: https://www.youtube.com/watch?v=TZFhnm_y1MM.\n\n## What's New\n\n### 2.6.1\n- Fix \"night scattered clouds\" weather icon on round-454x454 watches.\n\n### 2.6.0\n- Add support for latest watches, including vívoactive® 5 and Venu® 3.\n- Fix gap in battery meter on AMOLED screens.\n- Technical update to CIQ 6.4.1. Use Properties/Storage instead of Object Store for supporting watches. Fix most compiler warnings.\n\n### 2.5.0\n- Add support for Venu® 2 and Venu® 2S (thanks to fallingrock for testing help). Thank you for your patience!\n- Technical update to CIQ 4.0.3.\n\n### 2.4.7\n- Improve German translation (thanks to 2b2bff).\n- Translate Dutch settings (thanks to DRG-developer).\n- Allow override of built-in OpenWeatherMap key, in case that key is blocked.\n- Technical update to CIQ 3.2.5 SDK.\n\n### 2.4.6\n- Cycle OpenWeatherMap key to circumvent key abuse that led to blocked account.\n\n### 2.4.5\n- Add support for Korean language (thanks to nanbean).\n- 2nd attempt at settings-related crash fix.\n\n### 2.4.4\n- Add support for Approach® S62, D2 Air, Descent™ Mk2, Garmin Swim™ 2, Rey™, MARQ® Golfer, Venu® Mercedes-Benz Collection, Venu® Sq, Venu® Sq – Music Edition.\n- Fix several settings-related crashes.\n- Update Russian translation (thanks to ya_kazachkov).\n- Correct German translation (thanks to axcro7).\n- Technical update to CIQ 3.2.2 SDK.\n\n### 2.4.3\n- Putative fix for Venu™ crash on 2.80 firmware.\n\n### 2.4.2\n- 2nd attempt at fēnix® 5X crash. Bug in 15.10 firmware (requiresBurnInProtection incorrectly set to true) identified with invaluable help from jeriveraf.\n\n### 2.4.1\n- Putative fix for fēnix® 5X series crash. Thank you everyone for your patience.\n\n### 2.4.0\n- Add support for Venu™, with new always-on layout.\n- Add support for MARQ™ Adventurer and Commander.\n- Technical update to CIQ 3.1.5 SDK.\n\n### 2.3.7\n- Add bespoke fonts and layout for fēnix® 6X.\n- Improve readability of small font for all watches.\n\n### 2.3.6\n- Technical update to CIQ 3.1.4 SDK. Add support for fēnix® 6 series (except fēnix® 6X), Captain Marvel, First Avenger and vívoactive® 4 series.\n\n### 2.3.5\n- Add support for Forerunner® 45.\n\n### 2.3.4\n- Fix crash when changing numeric settings (e.g. \"Calories Goal\") using Connect IQ Store app.\n\n### 2.3.3\n- New Meter Style options, and new Meter Digits Style setting.\n- Fix issue when setting field or indicator count to 0.\n- Fix display of weather icon on Forerunner® 735XT.\n- Fix German translation typo.\n- Technical update to CIQ 3.0.11 SDK. Add support for Forerunner® 245/245 Music/945 and vívolife.\n\n### 2.3.2\n- Fix issues with weather and humidity not updating.\n- Technical update to CIQ 3.0.10 SDK. Add support for MARQ™ series and vívoactive® 3 Mercedes-Benz.\n\n### 2.3.1\n- Putative fix for intermittent storage-related crashes on fēnix® 5 series, vívoactive® 3 series and Approach® S60.\n- Update Swedish translation (thanks to fredrikaverpil).\n- Technical update to CIQ 3.0.9 SDK. Add support for vívoactive® 3 Music LTE.\n\n### 2.3.0\n- Increase time font size and revise layouts for all watches.\n- Single line time for vívoactive® HR.\n\n### 2.2.6\n- Add \"Humidity\" data field (uses OpenWeatherMap). Many thanks to jrmcsoftware for implementing this.\n- Technical update to CIQ 3.0.8 SDK.\n\n### 2.2.5\n- \"Pressure\" data field should use historical data, to respect manual pressure calibration on fēnix® 5 watches (thanks to Allalin72 for help with this).\n\n### 2.2.4\n- Fix issue with move bar not clearing in \"Show Filled Segments\" mode (thanks to BrettL for reproduction steps).\n- Add \"Corn Yellow (Dark)\" and \"Dayglo Orange (Light)\" themes.\n- Add \"Pressure\" data field.\n- Technical update to CIQ 3.0.7 SDK.\n\n### 2.2.3\n- Remove need to enter OpenWeatherMap key.\n- Technical update to CIQ 3.0.6 SDK.\n\n### 2.2.2\n- Fix issue with stuck \"key!\" if weather key is used before it has been activated.\n\n### 2.2.1\n- Fix intermittent crash after receiving weather data.\n\n### 2.2.0\n- Add \"Weather\" data field: CIQ 2.x devices only, requires free OpenWeatherMap API key (https://openweathermap.org/).\n\n### 2.1.0\n- Add \"Sunrise/Sunset\" data field.\n- Read altitude from more up-to-date source, and enable for all watches.\n- Add Croatian date translation (thanks to Kristijan).\n- Russian translation updates, and string fixes (thanks to xgsa).\n- German translation for settings screen (thanks to dragonito).\n- Technical update to CIQ 3.0.4 SDK.\n\n### 2.0.1\n- Fix crash when changing settings.\n\n### 2.0.0\n- Russian translation for watch face and settings screen (thanks to xgsa).\n- Display of additional time zone: specify city in settings (CIQ 2.x devices only, in beta). See FAQ.\n- Re-enable support for Approach® S60.\n- Technical update to CIQ 3.0.3 SDK.\n\n### 1.8.1\n- Added \"Heart Rate (Live 5s)\" data field.\n- Read HR from more up-to-date source.\n- Improved clarity of battery indicator.\n- \"Hide Hours Leading Zero\" now setting applies to both 12- and 24-hour modes.\n- Technical update to CIQ 2.4.9 SDK, to add support for D2™ Delta, D2™ Delta PX, D2™ Delta S.\n\n### 1.8.0\n- Added setting to control number of data fields (0-3).\n- Added setting to control number of indicators (0-3): Bluetooth, alarms, notifications, bluetooth/notifications.\n- Improved memory efficiency.\n- Layout adjustments.\n- Technical update to CIQ 2.4.8 SDK.\n\n### 1.7.4\n- Polish translation for settings screen (thanks to Flugcojt).\n- Swedish translation for settings screen (thanks to hasselrot).\n\n### 1.7.3\n- Update to CIQ 2.4.7 SDK, to add support for fēnix® 5 Plus, fēnix® 5S Plus, fēnix® 5X Plus, vívoactive® 3 Music.\n- Fixed issue with \"ft\" altitude units displaying incorrectly (thanks to Matt Reiser).\n\n### 1.7.2\n- Altitude units now obey statue/metric setting (thanks to Rick Gorham).\n- Added \"Battery (Hide Percentage)\" data field (thanks to Paolo Avezzano).\n- Corrected number of move bar segments to 5 (thanks to Viorel).\n- Technical update to CIQ 2.4.6 SDK.\n\n### 1.7.1\n- Re-enabled Forerunner® 920XT, following non-anti-aliased custom font workaround provided by Coleman at Garmin.\n- Corrected French translation (thanks to Ju Neusch).\n\n### 1.7.0\n- Added temperature data field option.\n- Added vivid yellow dark theme.\n- Added meter style setting.\n- Added move bar style setting.\n- Corrected German translations (thanks to Christoph Heymann for help with this).\n- Temporarily removed support for Approach® S60 and Forerunner® 920XT, pending fixes from Garmin - many thanks for your patience.\n- Technical update to CIQ 2.4.5 SDK.\n\n### 1.6.1\n- Added barometric altitude for supported CIQ 2.x devices.\n- Show midnight as \"12\" instead of \"00\" in 12-hour mode.\n- Fixed incorrect default settings for vívoactive®.\n\n### 1.6.0\n- Added blue, red and green light themes.\n- Allow colour of hours and minutes to be overridden independently.\n- Allow hiding of hours leading zero in 12 hr mode.\n- Prevent overlapping goal numbers on semi-round watches (thanks to G_stijn for reporting this).\n\n### 1.5.3\n- Fix crash if floors or active minutes goal is set to 0: show disabled meter instead.\n\n### 1.5.2\n- Technical update to CIQ 2.4.4 SDK.\n\n### 1.5.1\n- Added alarms data field option.\n- Rollout to CIQ 1.x devices, part 2: Forerunner® 230, Forerunner® 235, Forerunner® 630, Forerunner® 920XT, vívoactive®.\n\n### 1.5.0\n- Rollout to CIQ 1.x devices, part 1: D2™ Bravo, D2™ Bravo Titanium, fēnix® 3, fēnix® 3 HR.\n\n### 1.4.3\n- Meters can now show a custom calories goal, specified in settings.\n- Fixed issue with wrong strings or crash when changing settings via Garmin Express in non-English locales (thanks to Ezio Pillan for reporting this bug).\n- Added app version to settings page.\n\n### 1.4.2\n- Allow hiding of seconds.\n\n### 1.4.1\n- Reduce battery drain, part 2: optimise per-minute updates (cache drawable references).\n- Allow meters to display battery level.\n\n### 1.4.0\n- Reduce battery drain, part 1: reduce per-second update time from ~13ms to ~5ms (measured on Approach® S60, simulator).\n- Added Red (Dark) and Mono (Dark) themes.\n- Added support for vívoactive® HR.\n\n### 1.3.0\n- Added support for fēnix® 5S, fēnix® Chronos, Forerunner® 735XT.\n- Added Dayglo Orange theme.\n\n### 1.2.1 \n- Fixed issue with distance value being too low (thanks to catana.remulus for reporting and assisting with this bug). \n\n### 1.2.0\n- Added support for Approach® S60, D2™ Charlie, Descent™ Mk1, Forerunner® 645, Forerunner® 645 Music, Forerunner® 935, fēnix® 5, fēnix® 5X.\n- Added Cornflower Blue and Lemon Cream themes for better visibility.\n\n**N.B. Due to a vívoactive® 3 firmware bug, this watch face will be stuck on the language that was active at the time of the 3.30-3.40 firmware upgrade. Hopefully Garmin will fix this in a future firmware.**\n\n### 1.1.0\n- Internationalisation: added support for Chinese (Simplified/Traditional), Czech, Danish, Dutch, Finnish, French, German, Hungarian, Italian, Norwegian, Polish, Portugese, Slovak, Slovenian, Spanish, Swedish.\n- Force language to English for unsupported locales, to prevent garbled characters.\n- Fixed issue with battery meter not showing low/critical warning colours soon enough.\n\n### 1.0.1\n- Fixed issue with showing noon as AM, rather than PM (with thanks to JACalvo for reporting this bug).\n- Fixed issue with move bar not updating correctly.\n\n### 1.0.0\n- Initial public release for vívoactive® 3 only.\n\n## Credits\nIcons:\n- \"[Distance](https://thenounproject.com/term/distance/1514833/)\" icon by Becris from [the Noun Project](https://thenounproject.com).\n- \"[Fire](https://thenounproject.com/term/fire/24187/)\" icon by Jenny Amer from [the Noun Project](https://thenounproject.com).\n- \"[Steps](https://thenounproject.com/term/steps/87667/)\" icon by Eugen Belyakoff from [the Noun Project](https://thenounproject.com).\n- \"[Upstairs](https://thenounproject.com/term/upstairs/304907/)\" icon by Arthur Shlain from [the Noun Project](https://thenounproject.com).\n- \"[Stopwatch](https://thenounproject.com/term/stopwatch/319102/)\" icon by Rohith M S from [the Noun Project](https://thenounproject.com).\n- \"[Mountains](https://thenounproject.com/term/mountains/1468194/)\" icon by Deemak Daksina from [the Noun Project](https://thenounproject.com).\n- \"[Humidity](https://thenounproject.com/term/humidity/1554816/)\" icon by Akriti Bhusal from [the Noun Project](https://thenounproject.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarmsound%2Fcrystal-face","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwarmsound%2Fcrystal-face","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarmsound%2Fcrystal-face/lists"}