> ## Documentation Index
> Fetch the complete documentation index at: https://claw-tw.jackle.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# Menu Bar Icon（選單列圖示狀態）

# 選單列圖示狀態

作者: 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 秒），以便在工作卡住時圖示能快速恢復基準線。
