選單列圖示狀態
作者: steipete · 更新: 2025-12-06 · 範圍: macOS 應用程式 (apps/macos)
- 閒置 (Idle): 正常圖示動畫(眨眼、偶爾擺動)。
- 暫停 (Paused): 狀態項目使用
appearsDisabled;無動作。 - 語音觸發 (Voice trigger - big ears): 當聽到喚醒詞時,語音喚醒偵測器呼叫
AppState.triggerVoiceEars(ttl: nil),在擷取語句期間保持earBoostActive=true。耳朵放大 (1.9x),出現圓形耳洞以增加識別度,靜默 1 秒後透過stopVoiceEars()恢復。僅由應用程式內的語音管道觸發。 - 工作中 (Working - Agent running):
AppState.isWorking=true驅動「尾巴/腿部快速移動」微動畫:更快的腿部擺動與些微位移,表示工作正在進行中。目前在 WebChat Agent 運行期間切換;當您連接其他長時間任務時,請加入相同的切換。
接線點 (Wiring points)
- 語音喚醒:runtime/tester 在觸發時呼叫
AppState.triggerVoiceEars(ttl: nil),並在靜默 1 秒後呼叫stopVoiceEars()以配合擷取視窗。 - Agent 活動:在工作期間設定
AppStateStore.shared.setWorking(true/false)(WebChat Agent 呼叫已完成)。保持跨度簡短並在defer區塊中重置,以避免動畫卡住。
形狀與尺寸
- 基礎圖示繪製於
CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:)。 - 耳朵縮放預設為
1.0;語音增強設定earScale=1.9並切換earHoles=true,不改變整體框架(18×18 pt 模板影像渲染至 36×36 px Retina backing store)。 - 快速移動使用高達 ~1.0 的腿部擺動與些微水平抖動;這是對現有閒置擺動的疊加。
行為注意事項
- 耳朵/工作中狀態無外部 CLI/Broker 切換;請保持在應用程式內部訊號以避免意外閃爍。
- 保持 TTL 簡短(小於 10 秒),以便在工作卡住時圖示能快速恢復基準線。