Architecture
esp_brookesia::system::super::System derives from esp_brookesia::system::core::System and provides a Super-style system shell on top of the core.
Initialization
super::System::init() eventually calls init(Config{}), and init(Config config):
Sets
config.core_config.system_typetoBROOKESIA_SYSTEM_SUPER_SYSTEM_TYPE.Checks that the caller provides a GUI backend through
config.core_config.gui_backend.Calls
core::System::init().
Super does not depend on a specific GUI backend directly; the product project selects the backend (for example the LVGL backend) and passes it via core_config.gui_backend.
System Type
Super uses BROOKESIA_SYSTEM_SUPER_SYSTEM_TYPE, currently "super". on_init() also calls set_system_type("super") again to ensure service queries return the Super type.
Extension Points
The core extension points Super overrides:
Function |
Super Behavior |
|---|---|
|
Set the system type and install the built-in shell app |
|
Start the Shell app; the core starts background/content/overlay flows per the Shell manifest |
|
Mark stopping and stop the Shell-managed UI |
|
Clean up the shell app id |
|
Log that a launcher app is available |
|
Log the foreground app and switch Shell background / app background by the active app |
|
Restore the shell after a regular app stops |
Source Modules
The implementation of system_super is split by responsibility:
File |
Responsibility |
|---|---|
|
The thin |
|
Core extension points and Shell app install/restore |
|
The overlay binding, status, Wi-Fi, clock, and bottom swipe-up exit of |
|
Shell page restore and active app close |
|
|
|
Internal path, action, and animation constants |
|
Internal |
Built-In Components
Super currently has three built-in GUI parts:
Shell app: a native
IAppwith manifest idbrookesia.system.super.shell, hosting the Home, App Launcher, and Notifications content pages.background: the desktop background screen inside the Shell main document, mounted by the
backgroundflow toSystemBottom.overlay: the system overlay screen inside the Shell main document, mounted by the
overlayflow toAppTop + Stack + z_order 101, responsible for the top status bar, gesture indicator, and floating layers such as the app modal.