يُعدّ Karabiner-Elements السكين السويسرية لتخصيص لوحة المفاتيح على Mac: فهو يعيد تعيين المفاتيح، وينشئ طبقات، وينفّذ قواعد تكتبها بصيغة JSON. ويمكن لإحدى هذه القواعد أن تحدد مصدر إدخال عندما يأتي المفتاح من لوحة مفاتيح معيّنة. أما Keyameleon فيؤدي هذه المهمة وحدها، بلا قواعد. وأيهما أفضل يعتمد على ما إذا كنت تستخدم Karabiner-Elements أصلًا لغرض آخر.
نظرة سريعة
| Keyameleon | Karabiner-Elements | |
|---|---|---|
| ما هو | مبدّل لمصدر الإدخال لكل لوحة مفاتيح | أداة عامة لتخصيص لوحة المفاتيح |
| مصدر إدخال لكل لوحة مفاتيح | تختار مصدر إدخال لكل لوحة مفاتيح من قائمة | تكتب تعديلًا معقّدًا (complex modification) بشرط للجهاز وإجراء select_input_source |
| كيف يقرأ ما تكتبه | يراقب لوحات المفاتيح في وضع الاستماع فقط؛ ولا يمكنه تغيير الإدخال أو حقن مدخلات | يتولى لوحات المفاتيح التي يعدّلها ويرسل مدخلاتها عبر برنامج تشغيل لوحة مفاتيح افتراضية خاص به |
| التثبيت | تطبيق وإذن مراقبة الإدخال | تطبيق، وامتداد برنامج تشغيل تلزم الموافقة عليه، ومراقبة الإدخال |
| السعر والترخيص | مجاني، MIT | مجاني، ملكية عامة (Unlicense) |
التبديل لكل لوحة مفاتيح في Karabiner-Elements
يمكن قصر قواعد Karabiner-Elements (التعديلات المعقّدة) على أجهزة معيّنة بشرط device_if، الذي يطابق معرّفَي المورّد والمنتج للوحة المفاتيح أو لوحة المفاتيح المدمجة. ويمكن للقاعدة أيضًا تنفيذ إجراء select_input_source، الذي يختار مصدر إدخال حسب اللغة أو المعرّف. اجمع بينهما، وستتمكن ضغطة مفتاح على لوحة مفاتيح ما من تحديد مصدر الإدخال الخاص بها.
الطريقة تعمل، لكنك تكتب تلك القاعدة وتصونها بنفسك، مرة لكل لوحة مفاتيح، وتتحقق من أنها لا تبتلع المفاتيح التي تطابقها أو تغيّرها. كما تحذّر وثائق Karabiner-Elements نفسها من أن تحديد مصادر الإدخال التي تستخدم وضع إدخال (الصينية، اليابانية، الكورية، الفيتنامية) قد يفشل بسبب مشكلة في macOS، وتقترح إرسال اختصار مصدر الإدخال بدلًا من ذلك.
المهمة نفسها بلا قواعد: Keyameleon
يعرض Keyameleon كل لوحة مفاتيح يعثر عليها. تختار مصدر إدخال لكل منها، بما في ذلك طرق الإدخال مثل الكانا اليابانية أو بينيين، فيبدّل حين تبدأ الكتابة على تلك اللوحة. لا يثبّت أي برنامج تشغيل ولا يقف أبدًا بين لوحة المفاتيح وتطبيقاتك: فهو يراقب لوحات المفاتيح عبر إطار عمل CoreHID من Apple في وضع الاستماع فقط، ويغيّر التخطيطات عبر نظام إدخال النص في macOS.
كما يخبرك عندما يكون هناك خلل. تعرض قائمة شريط القوائم تنبيهًا عندما يكون إذن مراقبة الإدخال متوقفًا، أو عندما يكون التبديل موقوفًا مؤقتًا، أو عندما يُزال مصدر إدخال معيّن من macOS.
استخدامهما معًا
كثيرون يستخدمون Karabiner-Elements لإعادة تعيين المفاتيح ويريدون فوق ذلك تخطيطًا لكل لوحة مفاتيح. ضع في اعتبارك أن Karabiner-Elements يعيد إرسال مدخلات لوحات المفاتيح التي يعدّلها من لوحة مفاتيحه الافتراضية، فقد لا تعود التطبيقات الأخرى قادرة على معرفة لوحة المفاتيح الفعلية التي جاء منها المفتاح. إذا لم يبدّل Keyameleon للوحة مفاتيح ما أثناء تشغيل Karabiner-Elements، فأوقف Modify events لتلك اللوحة في إعدادات Devices في Karabiner-Elements.
أيهما تستخدم؟
- إذا كنت تصون قواعد Karabiner-Elements بالفعل وتتعامل مع JSON بارتياح: أضف قاعدة للجهاز هناك.
- إذا كنت تريد فقط أن تكتب كل لوحة مفاتيح بتخطيطها، بلا برنامج تشغيل وبلا قواعد تصونها: Keyameleon.
للاطلاع على القائمة الكاملة للخيارات، بما فيها المدمجة في النظام، اقرأ كيف تغيّر تخطيط لوحة المفاتيح تلقائيًا على Mac.