macOS 配套应用

菜单栏图标

菜单栏图标状态

范围:macOS 应用(apps/macos)。渲染:CritterIconRenderer.makeIcon(...)。动画/状态连接:CritterStatusLabel + CritterStatusLabel+Behavior.swift

状态

状态 触发条件 视觉效果
空闲 默认 正常的眨眼/摆动动画;睁开的眼睛保持光泽亮点
已暂停 isPaused=true 触角下垂(“休班”)且眼睛睁开;无动作
睡眠 Gateway 网关断开连接/未配置 触角下垂,眼睛闭合成 ⌣ ⌣ 眼睑;无动作
庆祝 消息已发送(sendCelebrationTick 眼睛闪现欢快的 ∩ ∩ 弧线约 0.9 秒,同时踢腿
语音唤醒(大耳朵) 听到唤醒词 触角竖直挺起并变得更高(earScale=1.9);静默后恢复
工作中 isWorking=true 或活动的 IconState 腿部摆动得更快(legWiggle 最高至 1.0),并有轻微的水平偏移;叠加在空闲摆动之上

当会话中有活动的任务或工具时,同一个小动物图标上可叠加显示工具活动徽章(SF Symbol 圆形徽标,例如用于 exec 的 chevron.left.slash.chevron.right)。该徽章来自 IconState/ActivityKind;完整状态模型请参阅菜单栏

语音唤醒耳朵

  • 触发:AppStateStore.shared.triggerVoiceEars(ttl: nil),由语音唤醒捕获流水线(VoiceWakeRuntime)以及语音唤醒调试/测试工具(VoiceWakeTesterVoiceWakeOverlayController)调用。
  • 停止:stopVoiceEars(),在捕获结束时调用。
  • 结束前的静默窗口:通常为 2.0s;如果只听到触发词,之后没有其他语音(VoiceWakeRuntime.silenceWindow / triggerOnlySilenceWindow),则为 5.0s
  • 增强期间,空闲状态的眨眼/摆动/腿部/耳朵计时器会暂停(earBoostActive 控制 CritterStatusLabel+Behavior 中的动画任务)。

形状和尺寸

  • 画布:18x18pt 模板图像,渲染到 36x36px 位图后备存储(2x),使图标在 Retina 屏幕上保持清晰。
  • 耳朵缩放比例默认为 1.0;语音增强将其设为 earScale=1.9,但不改变整体边框。
  • antennaDroop(0-1)会将触角向下折叠,形成暂停和睡眠姿态。
  • 腿部快速移动使用 legWiggle,最高至 1.0,并伴随轻微的水平抖动。

行为说明

  • 没有用于控制耳朵或工作状态的外部 CLI/broker 开关;两者均由应用信号(AppState.setWorkingAppState.triggerVoiceEars)在内部驱动,以避免意外反复切换。
  • 任何新的 TTL 都应保持较短(远低于 10 秒),以便任务挂起时图标能快速恢复到基准状态。

相关内容

Was this useful?
On this page

On this page