Skip to main content

Zustände des Menüleistensymbols

Geltungsbereich: macOS-App (apps/macos). Rendering: CritterIconRenderer.makeIcon(...). Verknüpfung von Animation und Zustand: CritterStatusLabel + CritterStatusLabel+Behavior.swift.

Zustände

Ein Werkzeugaktivitäts-Badge (SF-Symbol-Plakette, z. B. chevron.left.slash.chevron.right für die Ausführung) kann über demselben Tierchensymbol dargestellt werden, wenn eine Sitzung einen aktiven Auftrag oder ein aktives Werkzeug aufweist. Dieses Badge stammt aus IconState/ActivityKind; das vollständige Zustandsmodell finden Sie unter Menüleiste.

Ohren bei Sprachaktivierung

  • Auslöser: AppStateStore.shared.triggerVoiceEars(ttl: nil), aufgerufen aus der Aufzeichnungspipeline für die Sprachaktivierung (VoiceWakeRuntime) sowie aus den Debug-/Testwerkzeugen für die Sprachaktivierung (VoiceWakeTester, VoiceWakeOverlayController).
  • Beenden: stopVoiceEars(), wird beim Abschluss der Aufzeichnung aufgerufen.
  • Stillefenster vor dem Abschluss: normalerweise 2.0s, 5.0s, wenn nur das Aktivierungswort erkannt wurde und keine weitere Sprache folgte (VoiceWakeRuntime.silenceWindow / triggerOnlySilenceWindow).
  • Während der Verstärkung werden die Zeitgeber für Blinzeln, Wackeln, Beine und Ohren im inaktiven Zustand ausgesetzt (earBoostActive steuert die Animationsaufgabe in CritterStatusLabel+Behavior).

Formen und Größen

  • Zeichenfläche: 18x18pt-Vorlagenbild, gerendert in einen 36x36px-Bitmap-Zwischenspeicher (2x), damit das Symbol auf Retina-Displays scharf bleibt.
  • Die Ohrskalierung ist standardmäßig auf 1.0 festgelegt; die Sprachverstärkung setzt earScale=1.9, ohne den Gesamtrahmen zu verändern.
  • antennaDroop (0-1) klappt die Antennen für die pausierte und schlafende Haltung nach unten.
  • Das schnelle Trippeln der Beine verwendet legWiggle bis 1.0 mit einem kleinen horizontalen Wackeln.

Hinweise zum Verhalten

  • Es gibt keinen externen CLI-/Broker-Schalter für die Ohren oder den Arbeitszustand; beide werden intern durch App-Signale (AppState.setWorking, AppState.triggerVoiceEars) gesteuert, um unbeabsichtigtes Flattern zu vermeiden.
  • Halten Sie jede neue TTL kurz (deutlich unter 10s), damit das Symbol schnell in den Ausgangszustand zurückkehrt, falls ein Auftrag hängen bleibt.

Verwandte Themen