Ir al contenido

Icono de la barra de menú

Autor: steipete · Actualizado: 2025-12-06 · Ámbito: aplicación de macOS (apps/macos)

  • Inactivo: Animación de icono normal (parpadeo, movimiento ocasional).
  • Pausado: El elemento de estado usa appearsDisabled; sin movimiento.
  • Activador por voz (orejas grandes): El detector de activación por voz llama a AppState.triggerVoiceEars(ttl: nil) cuando se escucha la palabra de activación, manteniendo earBoostActive=true mientras se captura la expresión. Las orejas se agrandan (1.9x), adquieren orificios circulares para mayor legibilidad y luego caen mediante stopVoiceEars() después de 1 s de silencio. Solo se activa desde la canalización de voz de la aplicación.
  • En funcionamiento (agente en ejecución): AppState.isWorking=true impulsa un micromovimiento de “carrera de cola/patas”: movimiento de patas más rápido y un ligero desplazamiento mientras el trabajo está en curso. Actualmente se alterna durante las ejecuciones del agente WebChat; agregue la misma alternancia para otras tareas largas cuando las conecte.

Puntos de conexión

  • Activación por voz: runtime/tester llama a AppState.triggerVoiceEars(ttl: nil) al activar y stopVoiceEars() después de 1 s de silencio para coincidir con la ventana de captura.
  • Actividad del agente: establezca AppStateStore.shared.setWorking(true/false) alrededor de los intervalos de trabajo (ya hecho en la llamada al agente WebChat). Mantenga los intervalos cortos y restablézcalos en bloques defer para evitar animaciones bloqueadas.

Formas y tamaños

  • Icono base dibujado en CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:).
  • La escala de las orejas predeterminada es 1.0; el impulso de voz establece earScale=1.9 y alterna earHoles=true sin cambiar el marco general (imagen de plantilla de 18×18 pt renderizada en un almacén de respaldo Retina de 36×36 px).
  • El movimiento rápido utiliza el movimiento de patas de hasta ~1.0 con una pequeña vibración horizontal; es aditivo a cualquier movimiento inactivo existente.

Notas de comportamiento

  • Sin alternancia externa de CLI/broker para orejas/en funcionamiento; manténgalo interno a las señales de la propia aplicación para evitar aleteos accidentales.
  • Mantenga los TTL cortos (<10 s) para que el icono vuelva a la línea de base rápidamente si un trabajo se bloquea.