I have an experimental fork that adds an optional LVGL codegen mode for projects with repeated UI blocks, such as dashboard tiles.
Fork/branch:
https://github.com/Mep007/EEZ_Studio/tree/mesp-lvgl-codegen
What it addresses:
- Current LVGL output uses one flat global
objects namespace, so every referenced widget needs a globally unique identifier.
- Repeated containers with the same internal structure become awkward, because child widgets cannot reuse local names like
icon, lbl, value, bar.
- The fork adds a build option:
Nested object structs (experimental).
- When enabled, generated object references are grouped into nested C structs per screen/object hierarchy.
- Named widgets with children become struct nodes; the widget pointer is available as
.obj.
- Default flat output remains unchanged unless the option is enabled.
Example intended access pattern:
objects.page_1.widg_3.icon
objects.page_1.widg_3.lbl
objects.page_1.widg_3.value
objects.page_1.widg_3.bar
objects.page_1.widg_3.scale
objects.page_1.widg_4.icon
objects.page_1.widg_4.lbl
objects.page_1.widg_4.value
objects.page_1.widg_4.bar
objects.page_1.widg_4.scale
I have an experimental fork that adds an optional LVGL codegen mode for projects with repeated UI blocks, such as dashboard tiles.
Fork/branch:
https://github.com/Mep007/EEZ_Studio/tree/mesp-lvgl-codegen
What it addresses:
objectsnamespace, so every referenced widget needs a globally unique identifier.icon,lbl,value,bar.Nested object structs (experimental)..obj.Example intended access pattern: