Battery details on the Label floor (visual language task 2.2)
Change
paint_battery_details in nix/rust-shell-client/src/render.rs:
- Grid labels. “CURRENT”, “POWER” and the others were tracked capitals at
about 14 px. They are now sentence case, regular weight, at the 26 px
Label floor (
BATTERY_TEXT_FLOOR). Each label sits on one line with its bold value (26 × 1.15 px), two cells to a row. - Rows. Current, Power, Voltage, Temp, Health and Cycles, in up to three rows, as many as the space holds. The two-column “Charge 2872 / 2872 mAh” cell was dropped: at this size it does not fit beside a label.
- Graph captions and input line. “12 h ago”, “now”, “Recording charge” and the charger/input line are also on the 26 px floor. The input line is drawn only when it fits under the rows. The graph area grows enough to keep a plot under the larger captions.
- Text step. The step enlarges the grid only as far as the widest label and value pair still fits its cell, and two rows still fit. In a 4x2 Home cell the 26 px floor already fills the width, so the grid stays the same size at every step. Nothing is cut off.
- Picker preview. The floor scales down in proportion for widgets narrower than 400 px, such as the picker’s preview.
Host evidence (2026-10-16)
cargo test --offline --manifest-path nix/rust-shell-client/Cargo.toml: every target passed, including--lib(569 passed, 2 ignored) andresponsive_pixel_identity(4 passed, baselines unchanged).- Renders were made with
render_accessibility_scale_evidenceand the default/large/larger/largest generations described indocs/evidence/coherent-shell/accessibility-scale/README.md, then cropped to the widget.
| File | Content |
|---|---|
host-landscape-steps.png | 1232x568, widget crop, in a 2x2 grid: 100%, 130% (top), 160%, 200% (bottom). |
host-portrait-steps.png | 568x1232, widget crop, left to right: 100%, 130%, 160%, 200%. |
The host fixture has fewer than two charge samples, so the plot shows “Recording charge”.
Limits
- The board capture is a single grim frame at 160%; the other steps are host renders.
- The battery ring’s percentage (Display role, fitted inside the ring) is unchanged.
- The input line (“USB power - limit … @ …”) is still ellipsized at the 26 px floor in a 4x2 Home cell. It is dropped when there is no room for it, and is cut off when there is room for part of it.
Board evidence (2026-10-16)
The fix was deployed live to the board with deploy-live.sh (commit
96844d6e, sway restarted). The text step was larger (160%). The
capture was taken with grim on the HDMI output, after the terminal was
moved to the scratchpad.
| File | Content |
|---|---|
board-hdmi-home-160.png | 1280x800 grim capture of Home at 160%. The battery widget shows Current, Power, Voltage, Temp, Health and Cycles as label/value pairs in two columns, and every value is whole. |
An earlier deploy of 42849460 showed “Current +53 m…” ellipsized. The
value’s room is now the full column, and the value shrinks toward the
label size before it is cut off. That deploy’s frame was not kept. The
volume overlay, raised by the sway restart, covers the graph’s right-hand
“now” caption in this frame. The overlay is not part of the widget.