跳轉到主要內容

選單列圖示狀態

範圍:macOS 應用程式(apps/macos)。渲染:CritterIconRenderer.makeIcon(...)。動畫/狀態接線:CritterStatusLabel + CritterStatusLabel+Behavior.swift

狀態

狀態觸發條件視覺效果
閒置預設一般眨眼/擺動動畫
已暫停isPaused=true狀態項目使用 appearsDisabled;沒有動作
語音喚醒(大耳朵)聽到喚醒詞耳朵縮放至 1.9x,並啟用 earHoles=true(圓形孔洞以提高可讀性);靜音後恢復
工作中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;如果只聽到觸發詞且後續沒有語音,則為 5.0sVoiceWakeRuntime.silenceWindow / triggerOnlySilenceWindow)。
  • 加強期間,閒置眨眼/擺動/腿部/耳朵計時器會暫停(earBoostActive 會閘控 CritterStatusLabel+Behavior 中的動畫任務)。

形狀與尺寸

  • 畫布:18x18pt 樣板影像,渲染到 36x36px 點陣圖後備儲存區(2x),讓圖示在 Retina 上保持清晰。
  • 耳朵縮放預設為 1.0;語音加強會設定 earScale=1.9earHoles=true,且不改變整體框架。
  • 腿部小跑使用最高到 1.0legWiggle,並帶有小幅水平抖動。

行為備註

  • 耳朵或工作中狀態沒有外部命令列介面/broker 切換;兩者都由應用程式訊號(AppState.setWorkingAppState.triggerVoiceEars)在內部驅動,以避免意外反覆切換。
  • 任何新的 TTL 都應保持短暫(遠低於 10s),讓圖示在工作卡住時能快速回到基準狀態。

相關