Status Ikon Bilah Menu
Cakupan: aplikasi macOS (apps/macos). Rendering: CritterIconRenderer.makeIcon(...). Pengaitan animasi/status: CritterStatusLabel + CritterStatusLabel+Behavior.swift.
Status
Lencana aktivitas alat (kepingan SF Symbol, misalnya
chevron.left.slash.chevron.right untuk eksekusi) dapat dirender di atas ikon makhluk yang sama ketika suatu sesi memiliki pekerjaan atau alat aktif. Lencana tersebut berasal dari IconState/ActivityKind; lihat Bilah menu untuk model status lengkap.
Telinga bangun suara
- Pemicu:
AppStateStore.shared.triggerVoiceEars(ttl: nil), dipanggil dari alur pengambilan bangun suara (VoiceWakeRuntime) dan dari perangkat debug/pengujian bangun suara (VoiceWakeTester,VoiceWakeOverlayController). - Berhenti:
stopVoiceEars(), dipanggil saat pengambilan diselesaikan. - Jendela hening sebelum penyelesaian: biasanya
2.0s, atau5.0sjika hanya kata pemicu yang terdengar dan tidak ada ucapan lanjutan (VoiceWakeRuntime.silenceWindow/triggerOnlySilenceWindow). - Saat ditingkatkan, pengatur waktu kedip/goyang/kaki/telinga saat diam ditangguhkan (
earBoostActivemengatur tugas animasi diCritterStatusLabel+Behavior).
Bentuk dan ukuran
- Kanvas: gambar templat 18x18pt, dirender ke penyimpanan pendukung bitmap 36x36px (2x) agar ikon tetap tajam di Retina.
- Skala telinga secara bawaan adalah
1.0; peningkatan suara menetapkanearScale=1.9tanpa mengubah bingkai keseluruhan. antennaDroop(0-1) melipat antena ke bawah untuk pose dijeda dan tidur.- Gerakan cepat kaki menggunakan
legWigglehingga1.0dengan sedikit goyangan horizontal.
Catatan perilaku
- Tidak ada pengalih CLI/broker eksternal untuk telinga atau status bekerja; keduanya dikendalikan secara internal oleh sinyal aplikasi (
AppState.setWorking,AppState.triggerVoiceEars) guna menghindari gerakan naik-turun yang tidak disengaja. - Pertahankan TTL baru tetap singkat (jauh di bawah 10s) agar ikon cepat kembali ke kondisi dasar jika suatu pekerjaan macet.