Rewrites the README to match the navigation redesign in the last
commit:
- Status section reflects the touch-bar/scroll-section layout,
replacing the outdated tab-based description
- New Design Notes explain *why* navigation changed — untested
touch-swipe fidelity on this hardware, and accessibility reasoning
for the intended client base (small factories; many users may not
have a full set of fingers/thumbs on either hand). Resistive touch
and oversized, forgiving touch zones are framed as a deliberate
choice, not a workaround, so the reasoning doesn't have to be
reconstructed from memory later.
- Known Issues trimmed to what's actually still open — the fixed items
from the v0.0.1 review (unused import, dead sparkline, missing
threshold colouring, stale class name) are removed; the Screen vs.
Container note is reframed as intentional design, not a leftover
- Roadmap updated with the touch-controller HID check
(lsusb/dmesg/evtest) flagged during hardware research — some earlier
Waveshare display revisions need a non-standard driver
Navigation redesign, driven by testing against the actual target
hardware (Waveshare 5" resistive touchscreen) and the intended client
base (small factories — many users will not have a full set of
fingers/thumbs on either hand):
- Replace TabbedContent/TabPane with a VerticalScroll containing three
min-height:100vh sections (Dashboard, Request Assistance, Switch to
X), navigated via a fixed-width touch-bar sidebar rather than raw
swipe, since touch-swipe fidelity on this hardware was never verified
and button-triggered navigation removes the dependency entirely.
- Touch-bar zones are deliberately oversized (roughly thumb-width,
half-screen-height) with a forgiving click margin that extends past
the visible coloured bar — a touch landing near, but not precisely
on, the visible target still registers. Verified in testing that
this margin works correctly in the fully assembled app, not just in
isolation.
- Drop Screen subclassing for Dashboard/Request Assistance/Switch to X;
they're now plain Containers composed directly into the scroll stack.
Screen is reserved for BlankScreen, which is the only one that
actually uses the app's real push/pop screen stack.
- Navigation index is tracked explicitly rather than inferred from
scroll pixel offset — the offset-inference approach proved fragile
in testing.
Fixes from the v0.0.1 review:
- Remove unused `time` import (flake8 F401)
- Rename app class away from the BigBoy-specific name
- Apply UTIL_THRESHOLDS consistently to the GPU util bar, per-core CPU
bars, and memory bar (previously only the GPU temp digits were
colour-coded)
- Wire up the GPU-util sparkline (previously tracked but dead/unused)
Still a prototype: no test gates or cleanup trap yet (not CE OS
scripting style guide-compliant), and Request Assistance / Switch to X
remain stubs pending the outbound-email and VT-switch wrapper work.