Skip to content

Add Legend watch face#2450

Open
DavisNT wants to merge 1 commit into
InfiniTimeOrg:mainfrom
DavisNT:legend
Open

Add Legend watch face#2450
DavisNT wants to merge 1 commit into
InfiniTimeOrg:mainfrom
DavisNT:legend

Conversation

@DavisNT

@DavisNT DavisNT commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

An elegant and very practical digital watch face.

Uses only fonts already in InfiniTime and no external resources. Has the standard functionality:

  • shows time, date (without year) and day of week
  • supports 24 and 12 hour time formats
  • BLE, new notification and alarm clock icons
  • battery percentage (green when charging)
  • steps and heart rate
  • temperature and weather icon

Additionally:

  • visual indication (amber dot) for any notification(s)
  • visual indication (red or blue line) when notifications are muted
  • battery percentage turns red when 20% or less
  • stopwatch and timer icons (when active)
  • colorful sun, snow and thunderstorm weather icons
  • generally uses brighter colors for more urgent things
InfiniSim_2026-07-18_223549 InfiniSim_2026-07-18_215528 InfiniSim_2026-07-18_215818

An elegant and very practical digital watch face.

Uses only fonts already in InfiniTime and no external resources.
Has the standard functionality:
* shows time, date (without year) and day of week
* supports 24 and 12 hour time formats
* BLE, new notification and alarm clock icons
* battery percentage (green when charging)
* steps and heart rate
* temperature and weather icon

Additionally:
* visual indication (amber dot) for any notification(s)
* visual indication (red or blue line) when notifications are muted
* battery percentage turns red when 20% or less
* stopwatch and timer icons (when active)
* colorful sun, snow and thunderstorm weather icons
* generally uses brighter colors for more urgent things
@github-actions

Copy link
Copy Markdown

Build size and comparison to main:

Section Size Difference
text 388400B 3168B
data 944B 0B
bss 22640B 0B

Run in InfiniEmu

@mark9064 mark9064 added the new watchface This thread is about a new watchface label Jul 18, 2026

@mark9064 mark9064 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great overall :)

A few comments, but nothing big

I am curioous, how much did you use LLMs (if at all) during development of this watchface?

Comment on lines +81 to +83
lv_obj_t* label_date;
lv_obj_t* label_time;
lv_obj_t* label_ampm;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know some of the other faces don't, but could these be camelCase as well?


// Tracks the calendar day so the date line is re-rendered at most
// once per day (or after a time sync).
using days = std::chrono::duration<int32_t, std::ratio<86400>>;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like there is std::chrono::days?

lv_obj_align(weatherIcon, weatherValue, LV_ALIGN_OUT_LEFT_BOTTOM, -5, 12);
lv_obj_set_auto_realign(weatherIcon, true);

// Piggyback on the standard periodic refresh task: no extra timers.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting phrasing, it's not really piggybacking since the refresh task is being used here for exactly its intended purpose :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new watchface This thread is about a new watchface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants