Skip to content

feat(fonts): cover the azerbaijani schwa in montserrat fonts - #393

Open
jamalkamaladdin wants to merge 1 commit into
meshtastic:masterfrom
jamalkamaladdin:feat/az-schwa-glyphs
Open

jamalkamaladdin wants to merge 1 commit into
meshtastic:masterfrom
jamalkamaladdin:feat/az-schwa-glyphs

Conversation

@jamalkamaladdin

@jamalkamaladdin jamalkamaladdin commented Sep 8, 2026 •

Copy link
Copy Markdown

The four generated Montserrat fonts map no codepoint between 383 and 880, so
U+018F (Ə) and U+0259 (ə) render as missing glyph boxes. Both letters are
needed for Azerbaijani, and ə is one of the most frequent letters in the
language.

What changed

  • generated/ui_320x240 and generated/ui_240x320, sizes 12, 14, 16 and 20:
    2 glyphs added per font. glyph_dsc goes from 1541 to 1543 at 12 and 14 px,
    and from 747 to 749 at 16 and 20 px. Glyph bitmap data grows by 458 bytes per
    generated directory (12 px +70, 14 px +87, 16 px +123, 20 px +178). The rest
    of the diff is the bitmap_index shift that follows the two new glyphs.
  • studio/320x240/TFT320x240.eez-project and
    studio/240x320/TFTView_240x320.eez-project: the two codepoints added to
    lvglRanges and to lvglGlyphs.encodings for the same four fonts, so a
    regeneration from EEZ Studio keeps them.

How it was generated

lv_font_conv 1.5.3, with the command line recorded in each font file's own
header and the MontserratZ-Medium.ttf embedded in the eez-project. Only the
hunks carrying the new glyphs were applied to the committed files, so the EEZ
include header and the existing emoji glyph data are unchanged.

Checked locally

All four font files compile against lvgl v9.3.0, the version pinned in
library.json, with the repository include/lv_conf.h. U+018F and U+0259
resolve through the cmap in every size, for example at 16 px with adv_w 209 in
a 13x12 box and adv_w 157 in a 10x9 box. The full CMake build was not run here,
the toolchain is not installed on this machine.

Summary by CodeRabbit

  • New Features
    • Expanded font character coverage in the 240×320 and 320×240 display layouts.
    • Added support for two additional Unicode characters across four fonts in each layout.
    • Text using these characters can now render correctly in the interface.

@coderabbitai

coderabbitai Bot commented Sep 8, 2026 •

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 9a53deb5-3554-434f-ae46-abd3e311c06e

📥 Commits

Reviewing files that changed from the base of the PR and between 7bdde1f and 4645da6.

⛔ Files ignored due to path filters (8)
  • generated/ui_240x320/ui_font_montserrat_12.c is excluded by !**/generated/**
  • generated/ui_240x320/ui_font_montserrat_14.c is excluded by !**/generated/**
  • generated/ui_240x320/ui_font_montserrat_16.c is excluded by !**/generated/**
  • generated/ui_240x320/ui_font_montserrat_20.c is excluded by !**/generated/**
  • generated/ui_320x240/ui_font_montserrat_12.c is excluded by !**/generated/**
  • generated/ui_320x240/ui_font_montserrat_14.c is excluded by !**/generated/**
  • generated/ui_320x240/ui_font_montserrat_16.c is excluded by !**/generated/**
  • generated/ui_320x240/ui_font_montserrat_20.c is excluded by !**/generated/**
📒 Files selected for processing (2)
  • studio/240x320/TFTView_240x320.eez-project
  • studio/320x240/TFT320x240.eez-project

Included review availability: Your plan provides up to 2 included reviews per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The two EEZ Studio project files update four LVGL font configurations each. Every configuration adds code points 399 and 601 to its range string and glyph definitions.

Changes

LVGL font coverage

Layer / File(s) Summary
Add glyph ranges
studio/240x320/TFTView_240x320.eez-project, studio/320x240/TFT320x240.eez-project
All eight font configurations now include LVGL glyph ranges for code points 399 and 601.

Priority: ⬇️ Low — Defer this narrow font update because it adds two Azerbaijani glyphs across eight generated configurations without broader product-impact evidence.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 4645d

This change adds Azerbaijani schwa glyph coverage across the supported Montserrat font configurations, enabling the characters to render in both display layouts. The configured ranges and glyph metadata are consistent, with no current merge-blocking risk identified.

Suggested reviewers: mverch67

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: adding Azerbaijani schwa glyph coverage to the Montserrat fonts.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit checks each glyph with care
New marks now hop into the air
Three-nine-nine joins six-oh-one
Eight fonts now show everyone
The Studio pages shine bright
With letters ready, crisp and right

Comment @coderabbitai help to get the list of available commands.

@mverch67

mverch67 commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

If you generated this by AI as stated in the description I guess (haven't checked yet) the fonts are now missing the emojis. Can you confirm?

@jamalkamaladdin

Copy link
Copy Markdown
Author

No emojis were removed. compared all four generated fonts in both directories against master. i used ai only for pr description text

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants