OpenClawSkills
GitHub
平台 • 5 分钟阅读

菜单栏图标

OpenClaw 在 macOS 上的菜单栏图标状态和动画

作者:steipete · 更新时间:2025-12-06 · 范围:macOS 应用(''apps/macos'')

Tutorial.step

图标状态

- 空闲: 正常图标动画(闪烁、偶尔摆动)。

- ''暂停:'' 状态项使用 ''appearsDisabled'';无动画。

- ''语音触发(大耳朵):'' 语音唤醒检测器在听到唤醒词时调用 ''AppState.triggerVoiceEars(ttl: nil)'',在捕获语音时保持 ''earBoostActive=true''。耳朵放大(1.9 倍),获得圆形耳孔以提高可读性,然后在 1 秒静音后通过 ''stopVoiceEars()'' 放下。仅从应用内语音管道触发。

- ''工作中(代理运行中):'' ''AppState.isWorking=true'' 驱动 "尾巴/腿急跑" 微动作:工作时腿部摆动更快并略有偏移。目前围绕 WebChat 代理运行切换;连接其他长任务时添加相同的切换。

Tutorial.step

连接点

- 语音唤醒:运行时/测试器在触发时调用 ''AppState.triggerVoiceEars(ttl: nil)'',在 1 秒静音后调用 ''stopVoiceEars()'' 以匹配捕获窗口。

- 代理活动:在工作跨度周围设置 ''AppStateStore.shared.setWorking(true/false)''(已在 WebChat 代理调用中完成)。保持跨度短并在 ''defer'' 块中重置以避免动画卡住。

Tutorial.step

形状和大小

- 基础图标在 ''CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:)'' 中绘制。

- 耳朵缩放默认为 ''1.0'';语音增强将 ''earScale=1.9'' 设置为 1.9 并切换 ''earHoles=true'' 而不更改整体框架(18×18 pt 模板图像渲染到 36×36 px Retina 后备存储)。

- 急跑使用腿部摆动高达 ~1.0 并带有小的水平抖动;它是添加到任何现有空闲摆动上的。

Tutorial.step

行为说明

- 没有用于耳朵/工作的外部 CLI/broker 切换;将其保留在应用程序自己的信号内部以避免意外抖动。

- 保持 TTL 短(<10s),以便在作业挂起时图标快速返回基线。