docs: 文档对齐 M2.65(0.7.60) — 通知中心 ⑧⑨ + 版本/过时修正(agent-134/135)
- README §2.6 通知中心: ⑤⑥⑦⑧⑨ 全部(5chip含电源菜单/勿扰notify.dnd/行左滑/一键清除保留活动+转储/面板跟手下拉); 版本 0.7.60/M2.65 - SPEC_REF §5.3: 补 ⑧(一键清除, 红线保留ongoing/媒体/进度条, 先转储再清显示) ⑨(跟手下拉半程可回, 与行左滑/滚动/左缘互斥) - APPS §4.6: 版本单点=/etc/meowos_version(M2.47起), MEOWOS_VERSION 宏仅占位兜底
This commit is contained in:
1 parent
dafe31784d
commit
7ab6c0015a
3 files changed
+11
-4
No files matched your search
@@ -288,7 +288,7 @@ meow_launcherd --sim-exit N # 菜单打开 N 毫秒后模拟退出
|
||||
- **纯黑背景为默认**(`menu_bg = 0x000000`)
|
||||
- **可配置**:TF 卡 `MeowAPPs/meow.conf` 支持 `bg_color=RRGGBB`(如 `bg_color=10284f`),菜单打开时重新加载
|
||||
- **40px 状态栏**(v6.8 由 20px 翻倍;v6.9 时钟加秒):第 1 行 = 左侧时钟(**HH:MM:SS,每秒刷新**,v6.9;用 `draw_clock()` 只刷时钟数字,不弹 amixer、不碰应用列表——见 §4.3 重绘纪律)、右侧 `电量% WIFI BT`(电量读 `/sys/class/power_supply/battery/capacity`、WIFI 读 `/sys/class/net/wlan0/operstate`、蓝牙读 `/sys/class/bluetooth/hci0` 存在性);第 2 行 = 左侧 `VOL nn%`(音量读 CS43198 / amixer numid=1,值 0-255);下方 1px 分隔线(移至 y=40)。⚠️ 音量 amixer control 实测为**死镜像**(§18.13:播放器走 sa_hgl_dma 硬件直通,ALSA control 读回恒 0),故展示值可能恒为 0%,为已知设备限制。
|
||||
- **开发版本号**(v6.9):右下角绘制 `MeowOS v<ver> dev`(字体无小写,实际渲染为大写 `MEOWOS V0.6.9 DEV`)。单一来源 = `meow_launcherd.c` 的 `MEOWOS_VERSION` 宏;`build_fw_apps.sh` 打包时用 `sed` 从该宏抓取写入 rootfs 的 `etc/meowos_version`,屏显与固件文件**同源,不会两处不一致**(版本号改一处即可)。
|
||||
- **开发版本号**(v6.9 起,现行来自 `/etc/meowos_version`):右下角绘制 `MeowOS v<ver> dev`(字体无小写,实际渲染为大写 `MEOWOS V<VER> DEV`)。版本号**单点 = 板上 `/etc/meowos_version`**(M2.47 起;launcher/bootmenu 运行时 `load_meowos_version` 读;`MEOWOS_VERSION` 宏仅作文件缺失时 dev 占位兜底,不再当实际版本),屏显与固件文件同源,不会两处不一致。
|
||||
- 示例应用 hello 同样黑底 + 40px 状态栏(应用内左上角 48×48 返回键由 watchdog 绘制,允许盖住状态栏左侧)
|
||||
|
||||
### 4.7 应用退出后的菜单触摸守卫 + 启动失败检测(v6.8,Bug 2/3/4)
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
> 把 HiBy R3 Pro II 便携播放器(君正 X1600,MIPS32r2 / mipsel / musl 静态软浮点,480×720,无 GPU 软渲染)变成一个可扩展的「第二系统 + 应用框架」。
|
||||
> MeowOS 与官方 HibyOS 共存于同一台设备:开机由引导选单二选一;启动后 MeowOS 作为主控层,提供自己的桌面 UI、应用框架、服务管理与系统组件。
|
||||
>
|
||||
> 版本:**M2.65(0.7.60)**(版本号单点 = 板上 `/etc/meowos_version`,见「构建」)。
|
||||
>
|
||||
> 许可证:Apache-2.0(见 [`LICENSE`](LICENSE))。本仓库为非官方第三方项目。
|
||||
|
||||
---
|
||||
@@ -63,7 +65,7 @@ init (rcS)
|
||||
`/usr/bin/meow_launcherd`(源码 `patch_v2/meow_launcherd/`)是 MeowOS 的核心进程,负责渲染**系统级 UI**:
|
||||
|
||||
- 状态栏(28px:时钟 / 电量 / WiFi / 蓝牙 / 音量);
|
||||
- 通知中心(顶部下滑打开);
|
||||
- 通知中心(顶部下滑展开,launcher 渲染,功能见 §2.6);
|
||||
- 电源菜单、全局左缘返回手势、全屏提示线;
|
||||
- 主界面(应用列表)、设置页。
|
||||
|
||||
@@ -108,7 +110,8 @@ init (rcS)
|
||||
- **来源**:MeowAPP(原生 IPC `MSG_NOTIFY`)+ 系统事件(抽象为 `app_id=system`,走同一配额)+ 外部桌面 App(D-Bus 桥 `meow_notify_dbus`,规划)。
|
||||
- **配额**:每 App 最多 **4 个**通知类型(category);每类型活跃 **≤4**;媒体通知单例(每 App 仅 1 条,可多 App)。系统事件同配额。
|
||||
- **TTL / 转储**:通知创建 **10s** 后追加写入 TF `MeowOS/notifications/`(CSV 行,滚动保留**最新 10MB**,不被电源事件清);正常关机先转储再清板载;开机清板载残留 + 清内存表;**无 TF 卡可运行**(仅内存态)。`urgency`(0-3)、`icon`、`progress`(实时进度仅改内存活跃槽,里程碑落盘,不每帧写卡)。
|
||||
- 通知数据模型补全(SDK→IPC→存储→dump 全链路):`meow_notify_send` 返回 id、`meow_notify_update_progress`、`urgency`/`icon` 字段。通知中心 UI 由系统进程(launcher)渲染,数据经 IPC 从存储读取(该部分/阶段 B/D,部分为规划)。
|
||||
- 通知数据模型补全(SDK→IPC→存储→dump 全链路):`meow_notify_send` 返回 id、`meow_notify_update_progress`、`urgency`/`icon` 字段。通知中心 UI 由系统进程(launcher)渲染,数据经 IPC 从存储读取。
|
||||
- **通知中心 UI(系统进程 launcher 渲染,M2.65 已实现)**:顶部下滑展开。含**快捷行 5 chip**〔WiFi / 蓝牙 / 主题 / 亮度 / **电源菜单**——电源菜单 chip 点击唤起**真电源菜单**〕、**勿扰开关**(面板内小 toggle,开=只显示高优先级 `urgency>=2`,设置键 `notify.dnd`)、**通知列表滚动**、**单条通知左滑删除**(跟手、半程可回、过阈值滑出删除)、**一键清除**(与勿扰对称的清除按钮,仅清**非活动**通知,先转储留档再清显示;ongoing / 媒体 / 进度条进行中一律保留)、**面板跟手下拉 / 半程可回**(1:1 跟手、松手 40% 锚定,与行左滑 / 列表滚动 / 左缘返回互斥)、面板/开关带**滑条平移动画**(复用设置页方案)。交互细节见 `NOTIFICATION_SYSTEM.md §9`。
|
||||
|
||||
### 2.7 字体系统
|
||||
|
||||
|
||||
@@ -184,6 +184,10 @@
|
||||
- **里程碑落盘**:TF 快照只在**创建时 + 结束(100% 或 dismiss)** 触发(沿用 `meow_notif_dump_tf`,progress 写当时值);实时进度**不每帧落盘**。
|
||||
- **CSV 列**(`meow_notif_dump_tf`/`tf_line`):`timestamp,id,app_id,app_icon,category,urgency,progress,title,body,target_activity,ongoing,media,dismissed`。
|
||||
- 说明:旧调用(无 urgency/progress/icon)兼容——urgency 缺省 NORMAL、progress=-1、icon=NULL→app 图标。`[源:用户 2026-08-30]`
|
||||
- **⑥ 通知中心快捷 chip + 勿扰面板内开关(launcher 侧,M2.64)**:快捷行 **5 chip**(WiFi/蓝牙/主题/亮度/**电源菜单**——第 5 个 chip 点击唤起既有系统电源菜单 `show_power_menu`,真弹对话框);**勿扰不做 chip**,改**面板内开关**(列表上方小 toggle),开=只显示 `urgency>=2`(HIGH/CRITICAL),键 `notify.dnd`(SYSTEM_SETTINGS §1),面板内读写 `meow_settings_*` 零旁路。`[NOTIFICATION_SYSTEM §9]`
|
||||
- **⑦ 单条通知左滑删除(launcher 侧,M2.64)**:通知行**从右往左横向滑动删除**,跟手;未过阈值/反向滑回 → **回弹复原(半程可回)**;松手过阈值 → `meow_notif_dismiss` + 行移除/重排。竖向=列表滚动(方向随 `input.swipe_invert`)、`meow_edge_back`(左缘)优先不变。`[NOTIFICATION_SYSTEM §9]`
|
||||
- **⑧ 一键清除通知(launcher 侧,M2.65)**:勿扰开关**对称处(右半段)**加「一键清除」按钮;点击先**转储留档**(走既有 dump 链 `meow_notif_dismiss → meow_notif_dump_tf`,一行 CSV 追加 `MeowOS/notifications/notifications.log` + 10MB 滚动),再**清空显示**。**红线:绝不清「活动」通知**——① ongoing 常驻、② 媒体通知(媒体会话单例)、③ 带进度条进行中(`progress>=0`)一律保留;只清「非 ongoing / 非 media / 无进行中进度(`progress<0`)」的普通通知。`[NOTIFICATION_SYSTEM §9]`
|
||||
- **⑨ 面板「跟手下拉、半程可回」(launcher 侧,M2.65)**:面板打开/关闭由触发式 180ms 过渡升级为**手指拖动实时跟手**——顶部热区下拉 `progress = 手指位移映射`(复用 `mnp_anim_off`,∈[0,1024],1:1 跟手);松手 `progress≥40%×1024≈410` → 时间轴补到 1024(展开);`<阈值 或 反向拖回` → 回弹到 0 收回(半程取消);关闭同理可跟手。与行左滑(⑦ 横向主导)/列表滚动(竖向溢出)/`meow_edge_back`(左缘)互斥分流。`[NOTIFICATION_SYSTEM §9]`
|
||||
|
||||
### 5.4 配置版本单点 / 刷新率 / 息屏
|
||||
- /etc/meowos_version 版本单点(见 §1.1)`[DEV_NOTES #4]`
|
||||
@@ -340,7 +344,7 @@
|
||||
- **A-7 app 日志路径**:APP_LOG_MANAGER §4 写 `apps/<app_id>.log`(单文件);meow_ui.h §9 / DEV_NOTES #9 为 **`apps/<包名>/logs/<启动时间>_<pid>.log`**(每次启动新文件)——用户已纠正,勿用单文件。→ 以 meow_ui.h/DEV_NOTES(M2.51)为准,APP_LOG_MANAGER 目录小节过时。
|
||||
- **A-8 状态栏高**:MEOW_APP_SDK §3.1「slim ~20-40px」;实际定案 **40px**([D6] MIGRATION_AC §11.1),后被用户改为 **28px**(MUI_SBAR_H=28,字号 20,图标 ink 16/中线 14,见 M2.x 状态栏压缩)。→ 现取 28。
|
||||
- **A-9 SDK 通知转储**:NOTIFICATION_SYSTEM §8「创建 10s 后自动转储到 TF」;meow_ui.h 现仅「活动表+meow_log 打日志,真实投递 UI/D-Bus 为后续」。→ **10s 转储/TF 已实现(M2.5x,#6)**:launcher 侧带 TTL 10s 转储钩子,dump 到 `MeowOS/notifications/notifications.log`(appended CSV + 10MB 滚动 + 开机清板载/内存表);meow_ui.h 注释「真实投递 UI/D-Bus 为后续」仍指**通知中心 UI / D-Bus 桥**未做。
|
||||
- **A-10 版本来源细解**:DEV_NOTES #4「/etc/meowos_version 唯一来源;MEOWOS_VERSION 宏仅 dev 占位永不动」;APPS.md §4.6「MEOWOS_VERSION 宏=单一来源,build 时 sed 写入 etc/meowos_version」。→ 两者都强调"写入同源",但"谁是源头"措辞矛盾;实践上 build 脚本 echo 生成 /etc/meowos_version,宏作屏显 dev 占位。
|
||||
- **A-10 版本来源细解**:DEV_NOTES #4「/etc/meowos_version 唯一来源;MEOWOS_VERSION 宏仅 dev 占位永不动」;APPS.md §4.6「MEOWOS_VERSION 宏=单一来源,build 时 sed 写入 etc/meowos_version」。→ 两者都强调"写入同源",但"谁是源头"措辞矛盾;实践上 build 脚本 echo 生成 /etc/meowos_version,宏作屏显 dev 占位。→ **M2.64:APPS.md §4.6 已修正为「`/etc/meowos_version` 单点、`MEOWOS_VERSION` 宏仅 dev 占位」,方使矛盾消除**。
|
||||
- **A-11 `MeowOS/opt/` vs `MeowOpt/`(已归并)**:曾有顶层 `MeowOpt/`(板载外部工具/二进制,如 mdnsd)与 `MeowOS/opt/{bin,nyai,sources.list},lib/,tools/`(nyai 包管 + 工具)并存、命名仅大小写之差。→ **已归并**:`MeowOpt` 废弃并入 `MeowOS/opt/`;mDNS 由完整 mdnsd(TF MeowOS/opt/mdnsd)改为**自研 `meow_mdns`(固件 `/usr/bin`,IPv4-only)**,不再放卡。全仓库统一用 `MeowOS/opt/`。
|
||||
- **A-12 `fullscreen` 字段(已定 → 已实现,M2.5x)**:§5.5 与 MEOW_APP_SDK §9 将 `fullscreen` 列为 app.json 字段,但 `meow_parse_app_json()` **此前并未读取该键**(实现只解析 name/exec/icon/package/framework/immersive/route./awake./service.),属"已定未做"。→ **已实现**:launcher 启动 app/切 activity 据 `app.json fullscreen`/`route.<id>.fullscreen` 预设 SDK 全屏(env `MEOW_FULLSCREEN`),见 §5.1/§3.1。全屏语义由「隐藏状态栏+隐藏返回键」细化为「状态栏收合至提示线 + 保留左缘返回+顶部提示线+下滑通知中心(热区缩小)」(见 A-13)。
|
||||
- **A-13 全屏语义细化(状态栏「隐藏」→「收合至提示线」)**:既有 §3.1/§5.1 描述全屏=隐藏状态栏(`meow_ui_statusbar_height()`=0、隐藏返回键=沉浸);本次定案细化为**进入/退出全屏:状态栏向上收出屏顶、只留一条提示线高度**,**全屏下保留**左缘返回手势 + 顶部动态伸缩提示线,且**顶部下滑仍可开通知中心(顶部热区缩小)**。→ **已实现(M2.5x)**:SDK 端明确「收合(collapsed)=状态栏缩为提示线(4px)」vs「隐藏=高度0」;全屏下保留左缘返回+顶部伸缩滑条+顶部下滑通知中心(热区缩小)。⚠️ **全屏顶部动态伸缩滑条仍有已知问题在跟进(agent-112)**。
|
||||
|
||||
Reference in new issue
Block a user