# Wide reflow of Wi-Fi and the theme chooser (landscape 7.2), host renders
Operator design answer, 2026-10-14: "Real wide reflow" for the Wi-Fi pages
and the theme chooser on wide screens.
Host renders only, 2026-10-15, from
```
cd nix/rust-shell-client
cargo run --example render_landscape_surfaces --
```
They prove paint and layout at each size, not the board, a monitor or touch.
- **Wi-Fi** (`wifi_ui::layout_for`): the two columns come from the surface's
own size. The left column keeps 520/1184 of the content width, the list
column takes the rest, and the list runs to the bottom margin. Refresh,
the saved-network buttons and Cancel/Connect follow the real right and
bottom edges. At the landscape panel's 1232x568 every rect is the panel's
old literal: the seven Wi-Fi renders at 1232x568 are byte-identical to
`docs/evidence/panel-landscape/host/wifi-*-1232x568.png`.
- **Themes** (`theme_ui::chooser_layout_for`, `render::paint_grid`): every
wide surface, the landscape panel included, shows all themes and all of the
active theme's backgrounds at once as two side-by-side grids of cards, each
with its name below. The theme in use and the background on Home are
outlined; a tap on a card applies it (`ThemeIntent::Theme`/`Background`,
the carousel's existing apply path); a drag applies nothing; a finger down
washes the card and an applying card spins. Cards take the largest size
that fits the column (themes at most 240 px wide, backgrounds 360 px).
Portrait keeps the carousels.
Files: `theme-chooser-{1232x568,1280x800,1920x1080}.png`,
`wifi-list-{1232x568,1280x800,1920x1080}.png`,
`wifi-entry-password-{1280x800,1920x1080}.png`,
`wifi-entry-saved-1280x800.png`, `wifi-forget-1920x1080.png`. The fixtures
load no thumbnails, so cards show their loading spinner.
Tests: `wifi_ui::tests::the_wide_wifi_layout_keeps_the_panel_literals_and_fills_a_monitor`
(1280x800, 1920x1080, 1280x720: list to the right and bottom margins, every
control on the surface, the last network, Connect, Cancel and the eye
reachable) and
`theme_ui::tests::wide_choosers_show_every_theme_and_background_as_a_tappable_grid`
(1232x568, 1280x720, 1280x800, 1920x1080 with 1, 7 and 12 themes: cards at
least 80 px wide, inside their column, not overlapping, labels above the
message line, each card's centre applying that card, a drag applying
nothing, Back and Close still working). `cargo test`: 513 + 22 + 14 + 8 + 4 +
11 + 1 + 6 pass.
## On the board (2026-10-15)
Evidence class: **operator report** on the HDMI monitor (1280x800), test
system `7n025h1fvw5nxkmja2y0j5zk4adazf50` (this change plus a kernel test).
The operator: "it works and it feels pretty good", and reported a dark band
over the dock on Home. That band was the HDMI render timing, not this change;
it is fixed separately (`docs/evidence/card-shell/bottom-band-flicker/hdmi.md`).
The shell does not log chooser taps, so no record shows which card was
tapped or what it applied.
Limits: no frame capture on the board. The grid has no scrolling: with
many user themes its cards shrink (the test holds 12 at 80 px or more), and a
much longer list would need a scrolling grid.
## Operator, 2026-10-16
After using the theme chooser on the HDMI monitor, the operator said: "themes
worked in landscape hdmi fine". Evidence class: operator report (real glass).
This closes task 7.2's open tap item. No shell log records the card that was
tapped.