Icono de la barra de menú
Estados del icono de la barra de menú
Sección titulada «Estados del 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, manteniendoearBoostActive=truemientras se captura la expresión. Las orejas se agrandan (1.9x), adquieren orificios circulares para mayor legibilidad y luego caen mediantestopVoiceEars()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=trueimpulsa 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 ystopVoiceEars()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 bloquesdeferpara 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 estableceearScale=1.9y alternaearHoles=truesin 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.