macOS companion app
मेनू बार आइकन
मेनू बार आइकन की अवस्थाएँ
दायरा: macOS ऐप (apps/macos)। रेंडरिंग: CritterIconRenderer.makeIcon(...)। ऐनिमेशन/अवस्था वायरिंग: CritterStatusLabel + CritterStatusLabel+Behavior.swift।
अवस्थाएँ
| अवस्था | ट्रिगर | दृश्य |
|---|---|---|
| निष्क्रिय | डिफ़ॉल्ट | सामान्य पलक झपकाने/हिलने का ऐनिमेशन; खुली आँखों में चमकदार झलक बनी रहती है |
| विरामित | isPaused=true |
खुली आँखों के साथ एंटेना झुक जाते हैं ("ड्यूटी पर नहीं"); कोई गति नहीं |
| सो रहा है | Gateway डिस्कनेक्टेड/कॉन्फ़िगर नहीं है | एंटेना झुक जाते हैं और आँखें बंद होकर ⌣ ⌣ पलकों में बदल जाती हैं; कोई गति नहीं |
| उत्सव | संदेश भेजा गया (sendCelebrationTick) |
आँखें लगभग 0.9s तक प्रसन्न ∩ ∩ चापों के रूप में चमकती हैं, साथ ही पैर से किक होती है |
| वॉइस वेक (बड़े कान) | वेक शब्द सुना गया | एंटेना सीधे और अधिक ऊँचे होकर तन जाते हैं (earScale=1.9); मौन के बाद नीचे हो जाते हैं |
| कार्यरत | isWorking=true या कोई सक्रिय IconState |
पैर अधिक तेज़ी से हिलते हैं (legWiggle से 1.0 तक), साथ ही थोड़ा क्षैतिज विस्थापन होता है; निष्क्रिय अवस्था के हिलने में अतिरिक्त रूप से जुड़ता है |
जब किसी सत्र में कोई सक्रिय कार्य या टूल हो, तो उसी जीव-जंतु आइकन के ऊपर टूल-गतिविधि बैज (SF Symbol पक, जैसे exec के लिए chevron.left.slash.chevron.right) रेंडर किया जा सकता है। यह बैज IconState/ActivityKind से आता है; पूर्ण अवस्था मॉडल के लिए मेनू बार देखें।
वॉइस वेक कान
- ट्रिगर:
AppStateStore.shared.triggerVoiceEars(ttl: nil), जिसे वॉइस-वेक कैप्चर पाइपलाइन (VoiceWakeRuntime) और वॉइस-वेक डीबग/परीक्षण टूलिंग (VoiceWakeTester,VoiceWakeOverlayController) से कॉल किया जाता है। - रोकना:
stopVoiceEars(), जिसे कैप्चर पूरा होने पर कॉल किया जाता है। - पूरा करने से पहले मौन अवधि: सामान्यतः
2.0s, और यदि केवल ट्रिगर शब्द सुना गया हो तथा उसके बाद कोई और वाणी न हो, तो5.0s(VoiceWakeRuntime.silenceWindow/triggerOnlySilenceWindow)। - बूस्ट के दौरान निष्क्रिय पलक-झपकने/हिलने/पैर/कान के टाइमर निलंबित रहते हैं (
earBoostActive,CritterStatusLabel+Behaviorमें ऐनिमेशन कार्य को नियंत्रित करता है)।
आकृतियाँ और आकार
- कैनवास: 18x18pt टेम्पलेट छवि, जिसे 36x36px बिटमैप बैकिंग स्टोर (2x) में रेंडर किया जाता है, ताकि Retina पर आइकन स्पष्ट बना रहे।
- कान का स्केल डिफ़ॉल्ट रूप से
1.0है; वॉइस बूस्ट समग्र फ़्रेम को बदले बिनाearScale=1.9सेट करता है। antennaDroop(0-1), विरामित और सोने की मुद्राओं के लिए एंटेना को नीचे मोड़ता है।- पैरों की तेज़ गति
legWiggleसे1.0तक होती है, साथ ही थोड़ा क्षैतिज कंपन होता है।
व्यवहार संबंधी टिप्पणियाँ
- कानों या कार्यरत अवस्था के लिए कोई बाहरी CLI/ब्रोकर टॉगल नहीं है; आकस्मिक फड़फड़ाहट से बचने के लिए दोनों ऐप संकेतों (
AppState.setWorking,AppState.triggerVoiceEars) द्वारा आंतरिक रूप से संचालित होते हैं। - हर नए TTL को छोटा (10s से काफी कम) रखें, ताकि यदि कोई कार्य अटक जाए तो आइकन शीघ्रता से आधारभूत अवस्था में लौट आए।
संबंधित
Was this useful?