扩展

[English]

本文说明当前实现下定制 system super 的边界。

替换资源目录

最小定制方式是替换资源目录,例如 shell 资源目录 BROOKESIA_SYSTEM_SUPER_SHELL_RESOURCE_DIR。资源仍需保留源码依赖的 screen path、template id 和 action 字符串,或同步修改 src/private/system_constants.hpp 中对应常量。

扩展 launcher

当前 launcher 逻辑写在内置 ShellApp 中:app 来源是 owner_.list_apps(),只显示 manifest.visible = true 的 app,button 由 launcher_app_button 模板动态创建,点击 action 为 super.launch.app。如果只是调整视觉样式,优先改 resource/shell/constantsresource/shell/screens;如果要调整筛选、排序、分组或图标逻辑,需要修改 ShellApp::populate_launcher()

调整 overlay

overlay 是 Shell root 内的 /overlay screen,由 Shell manifest 的 overlay flow 挂到 AppTop + Stack + z_order 101。如果要增加系统级按钮或手势,可以扩展 resource/shell/screens/overlay.jsonShellApp::mount_overlay() 的 action 订阅。普通 app 不应该通过 runtime service 修改 overlay。

派生 System

如需产品级系统壳,可以继续派生 super::System 或直接派生 core::System

  • 仅想保留 Super 的 Shell 和 Overlay:派生 super::System

  • 想完全替换 shell、navigation 或 app flow:派生 core::System 更直接。

无论哪种方式,应用自有 GUI 和运行时应用权限仍建议遵循 System Core 文档中的规则。