macOS companion app

選單列圖示

選單列圖示狀態

作者:steipete · 更新日期:2025-12-06 · 範圍:macOS 應用程式 (apps/macos)

  • 閒置: 一般圖示動畫(眨眼、偶爾擺動)。
  • 已暫停: 狀態項目使用 appearsDisabled;沒有動作。
  • 語音觸發(大耳朵): 語音喚醒偵測器在聽到喚醒詞時呼叫 AppState.triggerVoiceEars(ttl: nil),在擷取語句期間保持 earBoostActive=true。耳朵會放大(1.9x),加入圓形耳孔以提升可讀性,接著在靜音 1 秒後透過 stopVoiceEars() 收回。只會從應用程式內的語音管線觸發。
  • 工作中(代理正在執行): AppState.isWorking=true 會驅動「尾巴/腿部快跑」微動作:工作進行中時腿部擺動更快,並有輕微偏移。目前會在 WebChat 代理執行前後切換;當你接線其他長時間任務時,也請在其前後加入相同切換。

接線點

  • 語音喚醒:執行階段/測試器在觸發時呼叫 AppState.triggerVoiceEars(ttl: nil),並在靜音 1 秒後呼叫 stopVoiceEars(),以符合擷取視窗。
  • 代理活動:在工作區段前後設定 AppStateStore.shared.setWorking(true/false)(WebChat 代理呼叫中已完成)。保持區段簡短,並在 defer 區塊中重設,以避免動畫卡住。

形狀與大小

  • 基本圖示繪製於 CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:)
  • 耳朵縮放預設為 1.0;語音增強會設定 earScale=1.9 並切換 earHoles=true,且不改變整體框架(18×18 pt 範本影像會算繪到 36×36 px Retina 背板儲存區)。
  • 快跑會使用最高約 ~1.0 的腿部擺動,並加入小幅水平抖動;它會加到任何既有閒置擺動上。

行為備註

  • 耳朵/工作中沒有外部 CLI/broker 切換;請讓它維持在應用程式自身訊號的內部範圍,以避免意外反覆切換。
  • 保持 TTL 簡短(<10 秒),如此當工作停住時,圖示能快速回到基準狀態。

相關