Stany ikony paska menu
Autor: steipete · Aktualizacja: 2025-12-06 · Zakres: aplikacja macOS (apps/macos)
- Bezczynny: Normalna animacja ikony (mruganie, okazjonalne poruszenie).
- Wstrzymany: Element statusu używa
appearsDisabled; brak ruchu. - Wyzwalacz głosowy (duże uszy): Detektor wybudzania głosem wywołuje
AppState.triggerVoiceEars(ttl: nil)po usłyszeniu słowa wybudzającego, utrzymującearBoostActive=truepodczas przechwytywania wypowiedzi. Uszy skalują się (1,9×), otrzymują okrągłe otwory dla lepszej czytelności, a następnie opadają przezstopVoiceEars()po 1 s ciszy. Uruchamiane wyłącznie z wewnątrzaplikacyjnego potoku głosowego. - Praca (agent uruchomiony):
AppState.isWorking=truesteruje mikroruchem „szuranie ogona/nóg”: szybsze poruszanie nogami i niewielkie przesunięcie, gdy praca jest w toku. Obecnie przełączane wokół uruchomień agenta WebChat; dodaj to samo przełączanie wokół innych długich zadań po ich podłączeniu.
- Wybudzanie głosem: wywołaj
AppState.triggerVoiceEars(ttl: nil)przy wyzwoleniu orazstopVoiceEars()po 1 s ciszy, aby dopasować okno przechwytywania. - Aktywność agenta: ustaw
AppStateStore.shared.setWorking(true/false)wokół odcinków pracy (już zrobione w wywołaniu agenta WebChat). Utrzymuj krótkie odcinki i resetuj w blokachdefer, aby uniknąć zablokowanych animacji.
- Ikona bazowa rysowana w
CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:). - Skala uszu domyślnie wynosi
1.0; wzmocnienie głosowe ustawiaearScale=1.9i przełączaearHoles=truebez zmiany całkowitej ramki (szablon obrazu 18×18 pt renderowany do magazynu Retina 36×36 px). - Scurry używa przełącznika nogi do ~1.0 z niewielkim gwiazdką poziomą; jest to dodatek do dowolnego istniejącego przełącznika bezczynności.
- Brak zewnętrznego przełącznika CLI/brokera dla uszu/pracy; pozostaw to wewnętrznym sygnałom aplikacji, aby uniknąć przypadkowego „trzepotania”.
- Utrzymuj krótkie TTL (<10 s), aby ikona szybko wracała do stanu bazowego, jeśli zadanie się zawiesi.