docs: stage I3 -- documentation rewritten under docs/solo

Short pages by feature (getting started, messages, contacts, navigation,
tools, settings, lock, hardware) instead of one page per OLED screen, with
Wio Tracker L2 differences as notes; facts checked against the code
(keyboard scripts vs. hold-for-accents, {batt}/{dist}, L2 limits and
settings layout). Developer guides and build flags under docs/solo/developer.
Old docs/solo_features and its ~50 screenshots removed; a hero banner and
three simulator screenshots added; links updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-09-29 08:41:10 +02:00
co-authored by Claude Opus 5.5
parent 3adf0b0436
commit e822242660
78 changed files with 768 additions and 1406 deletions
@@ -4,7 +4,7 @@
// and always read back clamped to what the ring still holds for that contact --
// the same self-healing shape as MessageHistory::chUnread() for channels.
//
// Header-only UI Core model (see docs/developer/ui-core.md); no drawing, no
// Header-only UI Core model (see docs/solo/developer/ui-core.md); no drawing, no
// screen state.
class DmUnreadTable {
@@ -1,5 +1,5 @@
#pragma once
// Declarative settings (docs/developer/ui-core.md, step 4): one table of
// Declarative settings (docs/solo/developer/ui-core.md, step 4): one table of
// NodePrefs options with their labels, value lists and side effects, so every
// frontend renders the same settings without its own per-item code. ui-lvgl
// draws it as switches and dropdowns, one page per Page below; ui-new still has
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
// UI Core: hardware-independent UI state and logic shared by every frontend
// (ui-new today, ui-lvgl later). See docs/developer/ui-core.md.
// (ui-new today, ui-lvgl later). See docs/solo/developer/ui-core.md.
//
// The Core is MyMesh's Listener: it files incoming/outgoing messages into the
// history, keeps the unread counters, runs the engines, and tells the frontend
@@ -4,7 +4,7 @@
// does, and reports to the frontend through UiEventQueue. This interface is the
// remainder -- calls that must stay synchronous with mesh processing, or whose
// logic still lives in the frontend until its extraction step
// (docs/developer/ui-core.md). None of these may draw or block.
// (docs/solo/developer/ui-core.md). None of these may draw or block.
class UiCoreHost {
public:
+1 -1
View File
@@ -2,7 +2,7 @@
// Core → frontend events. Engines never call into the frontend (no drawing, no
// sound, no display power); they push a tagged event here and the frontend
// drains the queue from its own loop() and reacts in its own way (ui-new:
// alert overlay + buzzer; ui-lvgl: a dialog). See docs/developer/ui-core.md.
// alert overlay + buzzer; ui-lvgl: a dialog). See docs/solo/developer/ui-core.md.
//
// Fixed-size ring, no heap. When full the oldest event is dropped -- events are
// hints for the view; the authoritative state stays queryable on the engines.
+1 -1
View File
@@ -95,7 +95,7 @@ static const char* waypointsFull() {
return t;
}
// ui-lvgl skeleton (docs/developer/ui-core.md, step 5): status bar, home,
// ui-lvgl skeleton (docs/solo/developer/ui-core.md, step 5): status bar, home,
// conversation list, contact picker, conversation view with compose. Every
// piece of state it shows comes from the UI Core; this file only draws it.
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
// ui-lvgl: the rich (colour + touch) frontend of the UI Core. Wio Tracker L2
// first. All application state lives in the Core (../ui-core); this class owns
// only LVGL screens, display power and input. See docs/developer/ui-core.md.
// only LVGL screens, display power and input. See docs/solo/developer/ui-core.md.
#include <MeshCore.h>
#include <Arduino.h>