هل يكتشف LockDown Browser شاشة ثانية على Mac؟ (نعم - وإليك كيف)

نعم، يكتشف LockDown Browser كل شاشة مسجَّلة في macOS عبر Core Graphics. يشمل ذلك الشاشات المدمجة، والخارجية المتصلة بـ HDMI/DisplayPort/USB-C، وأجهزة iPad في Sidecar، وأجهزة TV عبر AirPlay، وحتى بعض الشاشات الافتراضية للـ dock. أدناه: منطق الكشف الدقيق، وما يُحسَب، وما يفلت منه.

آلية الكشف

يُجري LDB استدعاءين عند الإطلاق:

uint32_t count;
CGDisplayActiveDisplayCount(&count);
// count is the number of currently-active displays
// LDB blocks if count >= 2 (default Dashboard config)

هذا مطابق لما تعرضه معلومات النظام ← الرسومات/الشاشات. لا توجد واجهة مخفية؛ الكشف بسيط.

ما يُحسَب «شاشات نشطة»

مصدر الشاشةمحسوب؟ملاحظات
شاشة MacBook المدمجة (الغطاء مفتوح)تُحسَب دائماً رقم 1
HDMI خارجيةقياسية
DisplayPort خارجيةقياسية
USB-C إلى شاشة مباشرةقياسية
Thunderbolt 4 خارجيةقياسية
USB-C dock مع منفذ خرج HDMI/DisplayPortكل منفذ خرج يُحسَب على حدة
iPad في Sidecarمسجَّل CGDisplay افتراضي
AirPlay إلى Apple TV / Vizio / Roku TVعكس أو توسيع - كلاهما يُحسَب
iPhone Mirroring (Sequoia 15+)يُحسَب على جانب Mac
iPad مَعروض عبر Continuity كمصدر إدخال✓ عند تفعيل SidecarSidecar هو ما يجعله يُحسَب

أشياء لا تُحسَب

الإعدادلماذا لا يُحسَب
وضع الغطاء المغلق مع شاشة خارجية فقطالشاشة المدمجة تنام؛ عدد CGDisplay = 1
iPad بجانب الحاسوب المحمول، وليس في Sidecarجهاز منفصل، غير مسجَّل في نظام شاشات macOS
شاشة خارجية موصولة لكن مُعطَّلة عبر إعدادات النظامغير نشطة في macOS، فلا تُحسَب
Universal Control (المؤشِّر على iPad)Universal Control ≠ Sidecar؛ iPad ليس CGDisplay
هاتف بجوار الحاسوب المحمول، حتى مع Continuity Cameraكاميرا ≠ شاشة
TV ذكي في الغرفة نفسها، غير موصول عبر AirPlay/HDMIلا اتصال بنظام شاشات Mac

حالات استثنائية

USB-C dock يُضيف شاشة «افتراضية» عندما لا شيء موصول

لبعض وصلات USB-C dock (CalDigit، OWC) خصوصية تعلن فيها الـ dock عن منفذ شاشة حتى عندما لا تكون شاشة موصولة. يُسجِّل macOS أحياناً هذا شاشة نشطة دون شاشة فعلية. الأعراض: يحظر LDB بخطأ تعدُّد الشاشات لكنك لا ترى شيئاً موصولاً.

الحل: افصل الـ dock كلياً (مؤقتاً للامتحان). تختفي الشاشة الوهمية من قائمة CGDisplay.

الشاشة اللاسلكية (Miracast، طرف ثالث)

تُسجَّل بروتوكولات الشاشة اللاسلكية من طرف ثالث في CGDisplay كما يفعل AirPlay. عطِّلها.

الحواسيب المحمولة بشاشتين توأمين (نادر)

لبعض حواسيب Asus / Acer التي تعمل بـ Windows شاشة ثانوية فوق لوحة المفاتيح. ليس لدى Mac هذا العتاد. ليس ذا صلة.

كيف تتحقَّق من عدد CGDisplay لديك

افتح Terminal وشغِّل:

system_profiler SPDisplaysDataType | grep -i "Resolution"

كل سطر هو شاشة مكتشَفة. عُدَّها. إذا كانت >1، فسيحظر LDB.

أو استخدم AppleScript:

osascript -e 'tell application "System Events" to get count of displays of (get display preferences)'

ماذا يحدث إن حاولت تجاوز الفحص والإطلاق

لا يمكنك التجاوز؛ يحدث الفحص عند الإطلاق، قبل تحميل أي امتحان. الحظر متَّسق وقابل للاستنساخ. افصل الشاشة الثانية أو عطِّلها، ثم أعد تشغيل LDB.

Frequently asked questions

إن غطَّيت شاشتي الخارجية بقطعة كرتون، هل يكتشفها LDB رغم ذلك؟

نعم؛ تغطية الشاشة مادياً لا تغيِّر حالة الشاشة في macOS. الشاشة «نشطة» بسبب الاتصال، لا لأن البكسلات مرئية. افصلها أو عطِّلها.

هل يمكنني التحويل إلى شاشة واحدة بتغيير ترتيب macOS؟

لا؛ إعدادات النظام ← الشاشات ← الترتيب تغيِّر التخطيط فقط، لا عدد الشاشات النشطة. عطِّل شاشة عبر أيقونة الترس الخاصة بكل شاشة، أو افصلها.

غطاء MacBook لديَّ مغلق وأستخدم شاشة خارجية فقط. لماذا يحظر LDB رغم ذلك؟

ينبغي ألا يحظر في تلك التهيئة إذا كان وضع الغطاء المغلق نشطاً بشكل سليم. إن حظر LDB: افتح الغطاء ← أغلقه تماماً ← انتظر 10 ثوانٍ ← تصبح الخارجية الشاشة الوحيدة ← أطلق LDB. إن استمر الحظر، فقد لا تكون المدمجة نائمة (الشاحن مفصول، الغطاء غير مغلق تماماً).