Files
openclaw/docs/zh-CN/platforms/mac/icon.md
2026-02-02 16:38:25 +01:00

39 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
read_when:
- 更改菜单栏图标行为
summary: macOS 上 OpenClaw 菜单栏图标的状态和动画
title: 菜单栏图标
x-i18n:
generated_at: "2026-02-01T21:32:49Z"
model: claude-opus-4-5
provider: pi
source_hash: a67a6e6bbdc2b611ba365d3be3dd83f9e24025d02366bc35ffcce9f0b121872b
source_path: platforms/mac/icon.md
workflow: 15
---
# 菜单栏图标状态
作者steipete · 更新时间2025-12-06 · 范围macOS 应用(`apps/macos`
- **空闲:** 正常图标动画(眨眼、偶尔摆动)。
- **暂停:** 状态项使用 `appearsDisabled`;无动画。
- **语音触发(大耳朵):** 语音唤醒检测器在听到唤醒词时调用 `AppState.triggerVoiceEars(ttl: nil)`,在捕获语音期间保持 `earBoostActive=true`。耳朵放大1.9 倍),显示圆形耳孔以提高可读性,然后在 1 秒静音后通过 `stopVoiceEars()` 恢复。仅由应用内语音管道触发。
- **工作中(智能体运行中):** `AppState.isWorking=true` 驱动"尾巴/腿部快速摆动"微动画:工作进行中腿部摆动加快并略有偏移。目前在 WebChat 智能体运行时切换;在接入其他长时间任务时请添加相同的切换逻辑。
接入点
- 语音唤醒:运行时/测试器在触发时调用 `AppState.triggerVoiceEars(ttl: nil)`,在 1 秒静音后调用 `stopVoiceEars()` 以匹配捕获窗口。
- 智能体活动:在工作区间前后设置 `AppStateStore.shared.setWorking(true/false)`(已在 WebChat 智能体调用中完成)。保持区间简短,并在 `defer` 块中重置以避免动画卡住。
形状与尺寸
- 基础图标在 `CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:)` 中绘制。
- 耳朵缩放默认为 `1.0`;语音增强时设置 `earScale=1.9` 并切换 `earHoles=true`不改变整体框架18×18 pt 模板图像渲染到 36×36 px Retina 后备存储)。
- 快速摆动使用最高约 1.0 的腿部摆幅并带有轻微的水平抖动;它与现有的空闲摆动叠加。
行为说明
- 耳朵/工作状态没有外部 CLI/代理切换;保持仅由应用自身信号控制,以避免意外的状态抖动。
- 保持 TTL 较短(<10 秒),以便在任务挂起时图标能快速恢复到基准状态。