Skip to content

메뉴 바 아이콘 상태

작성자: steipete · 업데이트: 2025-12-06 · 범위: macOS 앱 (apps/macos)

  • 유휴: 일반 아이콘 애니메이션 (깜빡임, 가끔 흔들림).
  • 일시 중지: 상태 항목이 appearsDisabled를 사용합니다. 움직임 없음.
  • 음성 트리거 (큰 귀): 음성 wake 감지기가 wake 단어를 감지하면 AppState.triggerVoiceEars(ttl: nil)을 호출하여 발화가 캡처되는 동안 earBoostActive=true를 유지합니다. 귀가 확대 (1.9x)되고 가독성을 위해 원형 귀 구멍이 생기며, 1초 침묵 후 stopVoiceEars()를 통해 축소됩니다. 앱 내 음성 파이프라인에서만 실행됩니다.
  • 작업 중 (에이전트 실행 중): AppState.isWorking=true가 "tail/leg scurry" 마이크로 모션을 구동합니다. 작업이 진행 중인 동안 더 빠른 다리 흔들림과 약간의 오프셋. 현재 WebChat 에이전트 실행 시 토글됩니다. 다른 긴 작업을 연결할 때 동일한 토글을 추가하십시오.

연결 포인트

  • 음성 wake: 런타임/테스터는 트리거 시 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/브로커 토글 없음. 우발적인 변동을 방지하기 위해 앱 자체 신호에 내부적으로 유지하십시오.
  • 작업이 중단된 경우 아이콘이 기준선으로 빠르게 돌아오도록 TTL을 짧게 유지하십시오 (<10s).