هذه الأداة للوحة المفاتيح أفضل من Karabiner (إليك السبب)

BBetter Stack
Computing/SoftwareVideo & Computer GamesConsumer Electronics

Transcript

00:00:00هذا هو “كاناتا”، أداة مفتوحة المصدر تطلق العنان لإمكانيات لوحة مفاتيحك القصوى
00:00:03عن طريق القيام بأمور مثل تعيين وظيفة مختلفة للمفتاح عند النقر السريع مقارنة بالضغط المطول،
00:00:08أو استخدام مفتاح واحد لتنفيذ عدة ضغطات مفاتيح معاً،
00:00:10أو إنشاء طبقات مختلفة لتعيينات مفاتيح مخصصة ومتنوعة.
00:00:12وهو أمر رائع لشخص مثلي يبذل قصارى جهده للاعتماد بشكل أساسي على لوحة المفاتيح.
00:00:16لكن ما قصة صيغة الإعدادات الغريبة هذه؟
00:00:19ولماذا قد أستخدم هذه الأداة بدلاً من Karabiner أو أي أداة أخرى تبدأ بحرف K؟
00:00:24اشترك في القناة ولندخل في التفاصيل.
00:00:27اسم “كاناتا” هو الاسم الأصلي لشعوب الإيروكوا ويعني “القرية”،
00:00:30وهو أمر لا علاقة له بلوحات المفاتيح على الإطلاق.
00:00:33لكن إذا كنت مهتماً بلوحات المفاتيح الميكانيكية مثلي، فربما سمعت عن QMK،
00:00:37وهو برنامج تشغيل (Firmware) شهير ومفتوح المصدر للوحات المفاتيح،
00:00:39يسمح لك بإعادة تعيين المفاتيح داخل لوحة المفاتيح نفسها قبل إرسال الإشارة إلى جهازك.
00:00:42أداة “كاناتا” تشبه QMK ولكنها تعمل على مستوى البرمجيات،
00:00:46لذا فهي تدعم جميع لوحات المفاتيح، حتى تلك الموجودة في حاسوبك المحمول.
00:00:49وبما أنها مكتوبة بلغة Rust، فهذا يعني أنها سريعة جداً
00:00:52ولا يوجد تأخير ملموس تقريباً عند الكتابة.
00:00:55لكن إعدادها ليس بهذه البساطة،
00:00:57لأنه بعد تثبيت “كاناتا” مع Karabiner على الماك،
00:01:00سأتحدث أكثر عن ذلك لاحقاً،
00:01:02سيتعين عليك كتابة ملف إعدادات باستخدام صيغة S-expression المستوحاة من لغة Lisp،
00:01:07وهي أغرب صيغة إعدادات رأيتها في حياتي.
00:01:11فبدلاً من كتابة اسم الدالة خارج الأقواس كما هو متوقع،
00:01:16تكتبها في هذا الملف داخل الأقواس بجانب المعطيات مباشرة.
00:01:21وتزداد الأمور غرابة عندما تبدأ في دمج الدوال داخل بعضها،
00:01:24وهو أمر شائع جداً في هذه الإعدادات،
00:01:26لأن كل شيء يكون داخل الأقواس بدلاً من وجود أسماء الدوال خارجها،
00:01:30مما يجعل فهمها يبدو صعباً في البداية.
00:01:35لكنك ستعتاد عليها بعد فترة.
00:01:36كمثال بسيط لتعيين المفاتيح، لنفترض أنني أريد لمفتاح A أن يعمل كمفتاح X.
00:01:41يمكنني فعل ذلك باستخدام دالة defsource لتحديد مفتاح المصدر بوضع A،
00:01:46واستخدام دالة deflayer واحدة على الأقل لتحديد مفتاح الإخراج،
00:01:50سأسمي هذه الطبقة “base” وأعطيها المعطى X.
00:01:53أي مفتاح غير مدرج في ملف الإعدادات سيعمل بشكل طبيعي.
00:01:57لذا، إضافة مفاتيح أخرى مثل B و C وتعيينها لـ X و Z ستبدو بهذا الشكل.
00:02:02لحسن الحظ، المسافات وعلامات التبويب غير مؤثرة،
00:02:04لذا يمكنك توزيع المفاتيح لجعلها سهلة القراءة كما تحب.
00:02:08هناك المزيد من الأشياء الرائعة التي يمكنك فعلها في هذا الملف.
00:02:10يمكنني إعداد ميزة (النقر والضغط المطول)، بحيث يؤدي النقر السريع عملاً والضغط المطول عملاً آخر،
00:02:15مع تحديد مهلة زمنية للضغط المطول ثم إضافة المفاتيح المراد تعيينها.
00:02:19في هذه الحالة، النقر على A سيسجل X، بينما الضغط المطول عليه سيسجل مفتاح Shift الأيسر.
00:02:24ولتسهيل الأمر، يمكنني إضافة دالة defvar لتسجيل بعض المتغيرات
00:02:28التي أستخدمها بشكل متكرر والإشارة إليها باستخدام علامة الدولار،
00:02:32وهو أمر مثالي لإعداد مفاتيح الصف الأساسي (home row mods) لتعمل كمفاتيح تحكم.
00:02:36بصراحة، يبدو هذا غريباً جداً في البداية،
00:02:39لكنني اعتدت عليه تماماً ولا يمكنني تخيل استخدام لوحة المفاتيح بأي طريقة أخرى.
00:02:42يمكنني أيضاً إنشاء طبقة جديدة باسم مختلف مثل “editor”
00:02:46واستخدامها خصيصاً لتحرير الفيديو عبر تخصيص مجموعة كاملة وجديدة من تعيينات المفاتيح
00:02:51والتبديل إليها باستخدام مفتاح تبديل الطبقات.
00:02:54وإذا كنت تريد القيام بشيء مبهر حقاً عند تبديل الطبقات أو غير ذلك،
00:02:58يمكنك تفعيل خادم TCP الخاص بـ “كاناتا” لتتمكن تطبيقات أخرى من الاستماع إليه.
00:03:03في حالتي، جعلت تطبيق SketchyBar يستمع إلى “كاناتا”
00:03:06ليظهر اسم الطبقة الحالية في الجزء العلوي من سطح المكتب عند تبديلها.
00:03:10نعم، استغرق الأمر الكثير من كتابة الإعدادات للوصول لهذه المرحلة،
00:03:13لكنه ليس أمراً لا يستطيع الذكاء الاصطناعي المساعدة فيه.
00:03:16على أي حال، رغم روعة هذا، لماذا قد يستخدم شخص ما “كاناتا” بدلاً من Karabiner Elements؟
00:03:21بالنظر إلى أن الأخير يمكنه فعل كل ما يفعله “كاناتا” وأكثر،
00:03:24مثل استخدام تعيينات مفاتيح مخصصة لتطبيقات أو لوحات مفاتيح معينة،
00:03:28واختبار المفاتيح عبر مستعرض أحداث بديهي جداً،
00:03:30بالإضافة لامتلاكه واجهة رسومية جميلة لمن لا يحبون تشغيل الأوامر في الطرفية.
00:03:35لكن بالنسبة لي، كانت ميزة (النقر والضغط المطول) في Karabiner ضعيفة جداً.
00:03:40استغرق الأمر الكثير من البحث والإعداد للوصول إلى مرحلة جعلها تعمل.
00:03:45وحتى عندما نجحت في ذلك، لم تكن بديهية مثل “كاناتا”.
00:03:49فكانت تسجل الضغطات المطولة كأنها نقرات سريعة بشكل متكرر.
00:03:51أما “كاناتا”، فقد تعاملت مع هذه الميزة بشكل مثالي منذ البداية دون أي تعديل،
00:03:56ولم أشعر بالحاجة للعودة إلى Karabiner Elements مجدداً.
00:03:59لذا إذا كنت تريد حقاً استخدام home row mods، أنصحك باستخدام “كاناتا”.
00:04:03لكن هذا لا يعني أنها مثالية.
00:04:05ستحتاج لملفات إعدادات متعددة للوحات المفاتيح المختلفة إذا كانت لديك تعيينات متنوعة،
00:04:09وهو أمر مزعج قليلاً إذا فصلت لوحة مفاتيح
00:04:12لأن عليك تشغيل أمر للتبديل إلى تعيين المفاتيح المطلوب.
00:04:15كما لم أجد طريقة لإعادة تعيين زر التشغيل/الإيقاف المؤقت إلى F8 في لوحة مفاتيحي،
00:04:20وهو أمر كنت أستطيع فعله بسهولة مع Karabiner.
00:04:22واستغرق الأمر بعض التعديلات لجعل “كاناتا” تعمل مع فارة MX Master.
00:04:26لحسن الحظ، تمكنت من كتابة حلول برمجية لمعظم هذه المشاكل،
00:04:30والتي قد أجعلها مفتوحة المصدر في المستقبل.
00:04:31لكنني أتمنى حقاً أن يصبح مجتمع “كاناتا” أكبر،
00:04:34وهو ما قد يساعد فيه هذا الفيديو إذا شاركه المزيد من الناس مع أصدقائهم وزملائهم، أليس كذلك؟

Key Takeaway

تعد أداة "كاناتا" بديلاً قوياً وسريعاً لأدوات تخصيص لوحة المفاتيح التقليدية، حيث توفر مرونة فائقة في إدارة الطبقات والوظائف المزدوجة للمفاتيح رغم تعقيد ملفات إعداداتها.

Highlights

أداة "كاناتا" (Kanata) هي برنامج مفتوح المصدر مكتوب بلغة Rust لتحسين قدرات لوحة المفاتيح عبر البرمجيات.

تتميز الأداة بالسرعة العالية وعدم وجود تأخير (Latency) ملحوظ بفضل لغة البرمجة المستخدمة.

تستخدم "كاناتا" صيغة إعدادات فريدة تسمى S-expression المستوحاة من لغة البرمجة Lisp.

تتفوق الأداة على Karabiner في دقة تنفيذ ميزات مثل (النقر والضغط المطول) وتخصيص مفاتيح الصف الأساسي.

يمكن دمج الأداة مع تطبيقات أخرى مثل SketchyBar عبر خادم TCP لإظهار حالة الطبقات الحالية.

تسمح الأداة بإنشاء طبقات مخصصة (Layers) لمهام محددة مثل تحرير الفيديو أو البرمجة.

على الرغم من قوتها، إلا أنها تفتقر لواجهة رسومية وتتطلب ملفات إعدادات يدوية لكل لوحة مفاتيح.

Timeline

مقدمة عن أداة كاناتا وإمكانياتها

يستعرض المتحدث أداة "كاناتا" كحل برمجي مفتوح المصدر يهدف إلى تحويل لوحة المفاتيح العادية إلى أداة احترافية فائقة القوة. تتضمن الوظائف الأساسية القدرة على تعيين مهام مختلفة للمفتاح الواحد بناءً على سرعة النقر أو مدة الضغط، بالإضافة إلى تفعيل ميزة الطبقات المتعددة. يوضح الفيديو أن هذه الأداة مثالية للمستخدمين الذين يفضلون الاعتماد الكلي على لوحة المفاتيح في عملهم اليومي. يثير المتحدث تساؤلاً حول سبب اختيار هذه الأداة تحديداً بدلاً من الخيارات الشهيرة الأخرى مثل Karabiner. تنتهي المقدمة بدعوة المشاهدين للاشتراك تمهيداً للدخول في التفاصيل التقنية العميقة للأداة.

فلسفة التصميم والمقارنة مع QMK

يشرح المتحدث أصل اسم "كاناتا" الذي يعني القرية في لغة شعوب الإيروكوا، مشيراً بسخرية إلى عدم وجود علاقة لهذا المعنى بلوحات المفاتيح. يقارن المتحدث بين "كاناتا" وبرنامج QMK الشهير، موضحاً أن الأخير يعمل كبرنامج تشغيل مدمج (Firmware) بينما تعمل "كاناتا" على مستوى البرمجيات. هذا الاختلاف الجوهري يجعل "كاناتا" متوافقة مع جميع أنواع لوحات المفاتيح، بما في ذلك لوحات مفاتيح الحواسيب المحمولة المدمجة. بفضل كتابتها بلغة البرمجة Rust، توفر الأداة أداءً سريعاً للغاية يضمن عدم وجود تأخير ملموس أثناء الكتابة السريعة. تعتبر هذه السرعة ميزة تنافسية كبرى تجعل تجربة المستخدم سلسة وطبيعية دون أي ثقل في الاستجابة.

تحديات الإعداد وصيغة Lisp الغريبة

ينتقل الفيديو لمناقشة الجانب الأكثر صعوبة في الأداة وهو عملية الإعداد وكتابة ملفات التكوين. يتطلب استخدام "كاناتا" كتابة ملفات بصيغة S-expression، وهي صيغة مستوحاة من لغة Lisp وتعتمد بشكل كثيف على الأقواس. يصف المتحدث هذه الصيغة بأنها "أغرب صيغة إعدادات" رآها، حيث يتم وضع اسم الدالة والمعطيات داخل الأقواس معاً بشكل غير تقليدي. يصبح الأمر أكثر تعقيداً عند دمج الدوال داخل بعضها البعض، مما قد يسبب ارتباكاً للمبتدئين في البداية. ومع ذلك، يؤكد المتحدث أن المستخدم سيعتاد على هذا النمط مع الممارسة حتى يصبح منطقياً وسهلاً لاحقاً.

شرح عملي لتعيين المفاتيح والطبقات

يقدم المتحدث مثالاً تطبيقياً لكيفية تعيين مفتاح A ليعمل كمفتاح X باستخدام دالتي defsource و deflayer البرمجيتين. يوضح كيفية استخدام ميزة (النقر والضغط المطول) لتعيين مهام مزدوجة للمفاتيح، مثل جعل النقر يسجل حرفاً والضغط المطول يسجل مفتاح Shift. يتم استعراض دالة defvar التي تتيح للمستخدمين تعريف متغيرات للاختصارات المتكررة وتسهيل قراءة الكود البرمجي. يركز هذا القسم على ميزة "home row mods" التي تعتبر أساسية للمستخدمين المتقدمين لتقليل حركة اليدين. يؤكد المتحدث أن هذه التعديلات، رغم غرابتها في البداية، تصبح ضرورية ولا يمكن الاستغناء عنها بمجرد التعود عليها.

المميزات المتقدمة والتكامل البرمجي

يستعرض الفيديو إمكانية إنشاء طبقات متخصصة مثل طبقة "editor" المصممة خصيصاً لبرامج تحرير الفيديو مع اختصاراتها الخاصة. يبرز المتحدث ميزة تقنية مبهرة وهي تفعيل خادم TCP الذي يسمح للأداة بالتواصل مع تطبيقات أخرى في نظام التشغيل. على سبيل المثال، تم ربط "كاناتا" بتطبيق SketchyBar لعرض اسم الطبقة المفعلة حالياً في شريط القوائم العلوي تلقائياً. يقر المتحدث أن الوصول لهذه النتائج تطلب الكثير من الجهد البرمجي وكتابة الأكواد المعقدة. لكنه يشير أيضاً إلى أن أدوات الذكاء الاصطناعي الحالية يمكنها المساعدة بشكل كبير في صياغة هذه الإعدادات وتسهيل المهمة.

المقارنة مع Karabiner والعيوب الحالية

في القسم الختامي، يقارن المتحدث بين "كاناتا" و Karabiner Elements، موضحاً أن الأخير يمتلك واجهة رسومية ومميزات أسهل للمبتدئين. ومع ذلك، يفضل المتحدث "كاناتا" لأنها تتعامل مع ميزة الضغط المطول بدقة مثالية مقارنة بـ Karabiner الذي يعاني من أخطاء في التسجيل. لا تخلو "كاناتا" من العيوب، حيث تتطلب ملفات إعدادات يدوية لكل لوحة مفاتيح وقد تواجه صعوبات مع بعض مفاتيح الوسائط أو الفأرة. تم ذكر حلول برمجية لبعض هذه المشاكل، مع الإشارة إلى رغبة المتحدث في جعلها مفتوحة المصدر مستقبلاً. ينتهي الفيديو بتمني المتحدث نمو مجتمع مستخدمي "كاناتا" لتعزيز الدعم وتطوير الأداة بشكل أكبر.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video