Status Ikon Bilah Menu
Penulis: steipete · Diperbarui: 2025-12-06 · Cakupan: aplikasi macOS (apps/macos)
- Idle: Animasi ikon normal (berkedip, sesekali bergoyang).
- Paused: Item status menggunakan
appearsDisabled; tidak ada gerakan. - Pemicu suara (telinga besar): Detektor voice wake memanggil
AppState.triggerVoiceEars(ttl: nil)saat wake word terdengar, menjagaearBoostActive=trueselama ujaran ditangkap. Telinga membesar (1.9x), mendapatkan lubang telinga melingkar agar mudah dibaca, lalu turun melaluistopVoiceEars()setelah 1 detik hening. Hanya dipicu dari pipeline suara dalam aplikasi. - Working (agent berjalan):
AppState.isWorking=truemenggerakkan gerakan mikro “ekor/kaki berlarian”: goyangan kaki lebih cepat dan sedikit offset selama pekerjaan masih berlangsung. Saat ini diaktifkan di sekitar proses agent WebChat; tambahkan toggle yang sama di sekitar tugas panjang lainnya saat Anda menghubungkannya.
- Voice wake: runtime/tester memanggil
AppState.triggerVoiceEars(ttl: nil)saat terpicu danstopVoiceEars()setelah 1 detik hening agar sesuai dengan jendela penangkapan. - Aktivitas agent: setel
AppStateStore.shared.setWorking(true/false)di sekitar rentang kerja (sudah dilakukan di pemanggilan agent WebChat). Jaga rentangnya tetap singkat dan reset di blokdeferagar animasi tidak macet.
- Ikon dasar digambar di
CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:). - Skala telinga default adalah
1.0; boost suara menetapkanearScale=1.9dan mengaktifkanearHoles=truetanpa mengubah frame keseluruhan (gambar template 18×18 pt yang dirender ke backing store Retina 36×36 px). - Scurry menggunakan goyangan kaki hingga ~1.0 dengan sedikit goyangan horizontal; ini bersifat aditif terhadap goyangan idle yang sudah ada.
- Tidak ada toggle CLI/broker eksternal untuk telinga/working; pertahankan ini tetap internal pada sinyal milik aplikasi sendiri untuk menghindari perubahan yang tidak disengaja.
- Jaga TTL tetap singkat (<10 detik) agar ikon cepat kembali ke kondisi dasar jika suatu pekerjaan macet.