However... When I was doing all this, TTGO used LVGLv6. LVGL had just released 7, changed everything on their site and all their support. Documentation were pointing to a mix of v6 and v7 items, and there are breaking changes.
When I say breaking changes I mean the entire freaking toolkit is different in the way styles and widgets are handled. I have to rewrite everything by hand to go from 6 to 7.
Lilygo updated to v7 recently but I haven't had a chance to update the AWatch code for it, nor am I inclined to. For a do-over. I get that LVGL is good for say, Arm project size stuff but on ESP32 in the Arduino IDE it's no fun, a sentiment well expressed here in the current docs[2].
One other pitfall I found was that I wanted to be able to dynamically draw items on the screen so I could create a decent Protracker VU-meter for AWatch and possibly a little finger note thing. I ended up falling down a Canvas[3] rabbit hole. Do not touch Canvas if you can avoid it, especially on a low memory platform like ESP32. I had massive memory problems with it. Again, this was 6, not 7 so YMMV but it's put me off for life.
I'm looking for something simpler with limited inheritence. I don't forsee a need for something as complex as LVGL on a simpler watch like the TTGO T-Watch series.
[1] - https://github.com/stevelord/AWatch
[2] - https://docs.lvgl.io/latest/en/html/get-started/espressif.ht...
[3] - https://docs.lvgl.io/latest/en/html/widgets/canvas.html