macOS companion app
أيقونة شريط القوائم
حالات أيقونة شريط القوائم
المؤلف: steipete · تم التحديث: 2025-12-06 · النطاق: تطبيق macOS (apps/macos)
- خامل: حركة الأيقونة العادية (وميض، اهتزاز عرضي).
- متوقف مؤقتًا: يستخدم عنصر الحالة
appearsDisabled؛ بلا حركة. - مشغّل الصوت (آذان كبيرة): يستدعي كاشف التنبيه الصوتي
AppState.triggerVoiceEars(ttl: nil)عند سماع كلمة التنبيه، مع إبقاءearBoostActive=trueأثناء التقاط العبارة. تكبر الآذان (1.9x)، وتحصل على فتحات أذن دائرية لتحسين الوضوح، ثم تعود عبرstopVoiceEars()بعد ثانية واحدة من الصمت. لا يُفعّل إلا من مسار الصوت داخل التطبيق. - قيد العمل (الوكيل يعمل): تقود
AppState.isWorking=trueحركة دقيقة من نوع "اندفاع الذيل/الساق": اهتزاز أسرع للساق وإزاحة طفيفة أثناء تنفيذ العمل. يُبدّل هذا حاليًا حول تشغيلات وكيل WebChat؛ أضف التبديل نفسه حول المهام الطويلة الأخرى عند توصيلها.
نقاط التوصيل
- التنبيه الصوتي: يستدعي وقت التشغيل/المختبِر
AppState.triggerVoiceEars(ttl: nil)عند التشغيل وstopVoiceEars()بعد ثانية واحدة من الصمت لمطابقة نافذة الالتقاط. - نشاط الوكيل: اضبط
AppStateStore.shared.setWorking(true/false)حول مدد العمل (تم ذلك بالفعل في استدعاء وكيل WebChat). أبقِ المدد قصيرة وأعد الضبط في كتلdeferلتجنب بقاء الحركات عالقة.
الأشكال والأحجام
- تُرسم الأيقونة الأساسية في
CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:). - القيمة الافتراضية لمقياس الأذن هي
1.0؛ يضبط تعزيز الصوتearScale=1.9ويبدّلearHoles=trueمن دون تغيير الإطار العام (صورة قالب 18×18 pt تُعرض في مخزن Retina خلفي بحجم 36×36 px). - يستخدم الاندفاع اهتزاز ساق يصل إلى نحو ~1.0 مع اهتزاز أفقي صغير؛ ويُضاف إلى أي اهتزاز خمول موجود.
ملاحظات سلوكية
- لا يوجد تبديل CLI/وسيط خارجي للآذان/العمل؛ أبقه داخليًا لإشارات التطبيق نفسها لتجنب التذبذب العرضي.
- أبقِ مدد TTL قصيرة (<10s) حتى تعود الأيقونة إلى الحالة الأساسية بسرعة إذا تعطلت مهمة.