Skip to main content

菜单栏图标状态

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

状态

当会话中有活动的任务或工具时,同一个小动物图标上可叠加显示工具活动徽章(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 秒),以便任务挂起时图标能快速恢复到基准状态。

相关内容