You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Round screens: the shell's Home button and Home's own layout fall outside the circle #50
On a 240x240 round panel (Waveshare RP2040-Touch-LCD-1.28, GC9A01), two parts of the app screens are cut off by the edge of the circle.
The shell's Home button.appkit.Shell puts its Home button on lv.layer_top(), aligned to the top right at (-8, 8). On a round screen that corner is outside the circle, so about half the button, the "Home" label included, can't be seen, and the part that can is hard to hit. Every app shows it, so the fix belongs in the shell, not in each app. One way is to put it at the top centre, or inset it to the circle's chord at its height, whenever the driver reports a round panel. System decides that from a round attribute on the driver, or from a driver class name starting with GC9A01.
Home at 240 px round. The header's "Home" title loses its first letter at the left edge, and the settings gear is cut at the right. The app tile's corners fall outside the circle, and the header is light while the rest is dark, because appkit.run() doesn't apply the dark theme. The tile shows only the app's icon, at about a quarter of the tile's width.
To reproduce, boot appkit.run() with the Home and System apps on a round 240x240 board, and look at Home, then at any app with the Home button showing.
System lays itself out inside the circle in apps#48. These two are what's still outside it.
On a round panel, appkit.shell.is_round() is true when the board's driver says the panel is round, or when it's a GC9A01. There the shell's Home button is a 40 px round button on the top-right diagonal, inside the circle. Home now puts its pages and tabs in the square inside the circle, two apps by two, with the gear as a pill centred above them. The title is dropped there.
Checked on the Waveshare RP2040-Touch-LCD-1.28 with images rebuilt from the frames sent to the panel, plus a walk of every object's coordinates: everything on Home and System lies inside the circle. The Home button reaches 115 px from the centre, and the corners of the tab bar 115 px. Headless renders of Home at 720x720 and 800x480 match main pixel for pixel.
Activity
bdbarnett commentedon Nov 10, 2026
Fixed in #51.
On a round panel,
appkit.shell.is_round()is true when the board's driver says the panel is round, or when it's a GC9A01. There the shell's Home button is a 40 px round button on the top-right diagonal, inside the circle. Home now puts its pages and tabs in the square inside the circle, two apps by two, with the gear as a pill centred above them. The title is dropped there.Checked on the Waveshare RP2040-Touch-LCD-1.28 with images rebuilt from the frames sent to the panel, plus a walk of every object's coordinates: everything on Home and System lies inside the circle. The Home button reaches 115 px from the centre, and the corners of the tab bar 115 px. Headless renders of Home at 720x720 and 800x480 match main pixel for pixel.