How to Implement Watch Face Settings Without Using "Customize"

Hello everyone,
I started developing for Garmin this year. Nice to meet you all!

I have two questions:

  1. I’m looking for a way to implement Watch Face settings without using the "Customize" option.

    When implementing settings via Menu2, only "Apply," "Customize," and "Delete" are displayed, as shown in the attached image.


    However, official Garmin Watch Faces display additional options beyond "Customize" and provide a richer settings screen (e.g., Data, Data Color). In the Analog Sample, I was only able to add "Customize." I also researched settings.xml and properties.xml extensively but couldn’t find a way to achieve this. Does anyone know how this is implemented? Even just a hint would be greatly appreciated. I also want to develop high-quality Watch Faces!

  2. If it's possible to implement settings without using "Customize," how can I test and interact with them in the Connect IQ Simulator? [Settings > Trigger App Settings] only displays the implementation of the "Customize" menu.

I truly appreciate any help or advice you can share. Thank you very much!

  • The native WFs aren't done with Monkey C/CIQ and can do things you can't do with CIQ.

    You're seeing a difference between how to do things in the sim vs a real device when it comes to on device settings.

    Understand there are two different types on settings for watch faces - "on device" where you see the apply and customize. and what's commonly called just "app settings" where you can set up things using the Connect Mobile app on your phone or Garmin Express on your pc/mac.

  • Native watch faces don't use Monkey C/CIQ, so I now understand there are things that simply can't be done by developers. This is very helpful—I was about to keep searching for a solution. Thank you very much!

  • However, official Garmin Watch Faces display additional options beyond "Customize" and provide a richer settings screen (e.g., Data, Data Color).

    You could hypothetically implement a similar settings UI in your own CIQ watch face (except the user would still select Customize from the top-level action menu to open your settings UI.)

    However, it would be a lot of work as you would be reinventing the wheel.

    You would have to implement:

    - a live preview of the watch face. (You could reuse the code which already displays the watch face during normal usage)

    - an action menu (i.e. popover menu that covers the right 2/3 of the screen) with the settings you want, such as Data and Data Color. (This wouldn't be so bad since CIQ provides the ActionMenu class for you.)

    - the actual UI for the settings you want (e.g. Data and Data Color). For example, if the user selects Data, you would have to implement a UI with a cursor that allows you to select and change data fields in the live preview. This is probably the toughest part

    I don't know if any developer (including Garmin) has bothered to implement something like this in Connect IQ.

  • Interaction with native watch editor will be possible as of sdk8.1 for watches supporting Connect iq 5.1.0 

    Docs developer.garmin.com/.../

  • Interaction with native watch editor will be possible as of sdk8.1 for watches supporting Connect iq 5.1.0 

    Great find! And props to Garmin for implementing this.

    Unfortunately, it looks like the availability of this feature will be limited:

    The fēnix 8 and newer wearables have an on-device watch face editor.

    Many or all currently supported CIQ 4+ devices (released in the past 2-3 years and still receiving firmware updates with new features) are now on CIQ 5.1.0 (or will be getting it), but it seems they won't get this feature. It's a shame tbh. I think this is part of Garmin's new-ish strategy to leave old devices by the wayside and push users onto newer devices.

    The online API doc seems to confirm this:

    [https://developer.garmin.com/connect-iq/api-docs/Toybox/WatchUi/WatchFaceDelegate.html#getComplicationDrawable-instance_function]

    It's interesting that the same API docs in the 8.0.0 beta SDK do *not* have a list of supported devices, as if it was a recent decision to limit this to Fenix 8 and newer devices. The 8.0.0 beta SDK core topics docs do not have a section for watch face configuration, either (it seems that this entire section is newer than that beta SDK).

    Maybe it's possible support for older CIQ 5.1.0 devices (like fr955) will be added in the future, or that both the developer core topics docs and the API docs have the exact same error, but I doubt it.

    EDIT: yes this was obviously in the System 8 / SDK 8.1.0 announcement, and yes, the announcement specifically calls out Fenix 8 and Tactix 8 as supported watches for this feature.

  • It's also interesting that the new CIQ watch face editor allows either built-in complications or CIQ complications to be selected. That fact in itself isn't surprising, but I wonder if it also means that native watchfaces will be allowed to select CIQ complications (whether now or in the future, at least for the newer devices which will support the CIQ watch face editor.)

    (As we know, native watchfaces have not been able to use CIQ complications in the past.)

  • I downloaded the latest devices and I can confirm that getComplicationDrawable (one of the functions related to the watch face editor) is only available for Enduro 3, Fenix E and Fenix 8 watches.

  • I plan to try various things! Thank you, everyone!

  • It seems that my posts are verified through moderation before being published, so there's quite a lag—about one to two days. My thanks might be delayed... but thank you all so much!