Mos لديه فقط وضع قائمة السماح (Allowlist)، ولا يوجد لديه وضع قائمة الحظر (Blacklist). في برامج مثل Parallels Desktop والآلات الافتراضية أو سطح المكتب البعيد، عادةً أريد أن يُمرَّر التمرير والضغطات مباشرةً إلى البيئة الهدف لتتعامل معها، ولا أريد لتنعيم Mos أو عكسه أو إعادة تعيين الأزرار أن يتدخل؛ لكن مع وجود قائمة سماح فقط، سأضطر إلى صيانة قائمة بجميع التطبيقات المسموح بتطبيق الإعدادات عليها بالعكس، وتكلفة ذلك عالية جدًا.
هذه المرة أضفت محليًا إلى Mos «وضع قائمة التطبيقات»:
- Normal: إبقاء المنطق الأصلي؛ التطبيقات الموجودة في القائمة تستخدم إعدادات منفصلة، وغير المدرجة تستخدم الإعدادات العامة.
- Allowlist: الإبقاء على وضع القائمة البيضاء الأصلي؛ لا يسري إلا على التطبيقات الموجودة في القائمة.
- Blacklist: التطبيقات الموجودة في القائمة تُمرَّر بالكامل دون تدخل، فلا تمر عبر معالجة Mos للتمرير أو الأزرار أو اختصارات التمرير HID++؛ أما التطبيقات غير المدرجة فستستمر باستخدام الإعدادات العامة.
لقد بنيت Mos باستخدام Xcode الرسمي واستبدلت النسخة التي تعمل على جهازي. حاليًا النسخة الموجودة على جهازي ~/Downloads/Mos.app تعمل بهذا الإصدار. كما فتحت issue وقدّمت PR إلى المنبع:
- Issue: Add blacklist mode for the application list · Issue #937 · Caldis/Mos · GitHub
- PR: Add application blacklist mode by constansino · Pull Request #938 · Caldis/Mos · GitHub
تحققت من الاختبارات ذات الصلة، وعمليات البناء Debug/Release، وتحليل Swift، وStoryboard/XML، وملفات xcstrings بصيغة JSON. وبما أن جهازي لا يملك شهادة فريق التطوير الخاصة بالمنبع، فإن الاختبارات وحزمة الاستبدال المحلية تستخدم توقيع ad-hoc؛ ولم يتم تعديل توقيع النشر.