kbd-tst.py هو برنامج بسيط لاختبار لوحة المفاتيح. إنه يختبر وظائف جميع المفاتيح التي توفر تعليقات رسومية (حسنًا، فقط ASCII شبه الرسومية في محطة النص) للمستخدم مثل:
اختبار لوحة مفاتيح بسيط وسهل الاستخدام دون تبعيات خارجية () باستخدام أدوات النظام القياسية فقط) ...
هناك طريقة لاختبار لوحة المفاتيح بدون أي أداة مساعدة مثل هذه فقط باستخدام محرر النصوص على سبيل المثال. في هذه الحالة عليك أن تتذكر المفاتيح التي تم اختبارها ولا تفوت أي مفاتيح لم يتم اختبارها. وكل شيء أصبح أسهل مع عرض الملاحظات المرئية مباشرة على الشاشة باستخدام اختبار kbd.
وهنا عدد قليل منها نموذجية:
على الرغم من التنفيذ البسيط، هناك المتطلبات التالية:
ملحوظة: نظرًا لتبعية xinput، يمكن تشغيل kbd-tst فقط على الأنظمة المشابهة لنظام Linux مع Xorg
يتمحور تطبيق kbd-tst بالكامل حول "اختبار xinput". يتم تنفيذ Xinput كعملية فرعية ويتم تحليل أحداث الإخراج وتصورها على أنها تخطيط لوحة المفاتيح على الشاشة مع معلومات وإحصائيات إضافية. يتم تنفيذ الجزء المرئي باستخدام تسلسلات هروب ANSI للتحكم في موضع ولون مؤشر طرفية النص. يتم توفير تخطيط لوحة المفاتيح من ملفات تخطيط ASCII الخارجية (*.lay) مثل "apple.lay" أو "at101.lay".
لكي يعمل kbd-tst علينا تحديد ما يلي بطريقة أو بأخرى:
لعرض تعليمات الاستخدام، يمكننا توفير معلمة "-h" أو "-help" القياسية
= Keyboard Test Program version 2017.7.28 = (c) 2017 by Robert P =
Usage: kbd-tst.py [id] [layout] [-h|--help]
kbd-tst.py [-h|--help] [layout] [id]
-h ... shows this usage help and quits
--help ... shows this usage help and quits
id ... optional keyboard device id as shown in 'xinput list' output (default user assisted autodetection)
layout ... optional keyboard ASCII layout file [*.lay] (default the first file in kbd-tst dir)
Notes:
* parameters are optional
* not providing device id will initiate a user assisted autodetection sequence requiring physical disconneting
and reconecting the keyboard under test (KUT)
* not providing the layout file is usefull if there is only single layout file in kbd-tst directory
* all unrecognized keys from layout file are shown as errors and counted as [ missing_keycodes ]
* all parameters can be supplied in arbitrary order
* in case of multiple specification the last one wins,
for example in sequence of parameters 'id1 layout1 layout2 id2' id2/layout2 pair wins
* test ends when all successfully recognized keys from layout file are tested [ to_go = 0 ]
* to end test prematurely just type phrase 'quit' (without the quotes)
Known issues:
- keys ike apple keyb VOL+/VOL-/MUTE/EJECT do not generate xinput events and therefore cannot be tested right now
- if more than one device id is found by autodetection sequence only the first one is used, which is some cases
might be incorrect. In this case provide the correct device id as a parameter (id can be found by trial and error
from 'xinput list' and verified by 'xinput test id' to show 'key press xx' and 'key release xx' events)
[ xinput double entries related bug: https://bugs.launchpad.net/ubuntu/+source/hal/+bug/277946 ]
يتكون إجراء الاختبار ببساطة من الخطوات التالية:
نظرًا للطبيعة الديناميكية ودعم التوصيل السريع لمعرفات xinput، يتعين علينا العثور على معرف الجهاز الصحيح لـ KUT (القارب قيد الاختبار) وهذا هو الجزء الأكثر أهمية وفي بعض الحالات أيضًا الجزء الأكثر صعوبة في إجراء الاختبار.
لحسن الحظ، هناك طريقة مدمجة للكشف التلقائي بمساعدة المستخدم. يتطلب ذلك توصيل KUT (لوحة المفاتيح قيد الاختبار) إذا لم يتم توصيل KUT بعد. إذا كان KUT متصلاً بالفعل، فيجب إعادة الاتصال. تقوم وظيفة الكشف التلقائي بمراقبة النظام أثناء اتصال KUT ومن ثم يمكنها التعرف على معرف xinput تلقائيًا. ومع ذلك، في بعض الحالات، يتم إنشاء جهازين بواسطة HAL، مما يجعل من المستحيل على الاكتشاف التلقائي الاختيار. ثم يتم تحديد الأول عن طريق الكشف التلقائي. إذا لم يكن هذا هو الصحيح، فيجب عليك تقديم معرف xinput يدويًا كمعلمة لسطر الأوامر:
> kbd-tst.py 12
ملف التخطيط هو تمثيل مرئي بسيط لفن ASCII لتخطيط لوحة المفاتيح الفعلية. يتم تمثيل كل مفتاح بأقواس مربعة مع تسمية مفتاح بداخلها ملفوفة بمسافات، على سبيل المثال: يتم تمثيل المفتاح الذي يحمل الرقم واحد على أنه [ 1 ] والذي يبدو بصريًا وكأنه غطاء مفتاح. يتم تحميل ملف التخطيط هذا وتحليله (تظهر أخطاء التحليل إن وجدت) ثم يتم استخدامه أيضًا للتعليقات المرئية على الشاشة. تحقق من ملفات التخطيط المتوفرة للحصول على التفاصيل (apple.lay، at101.lay)
يجب تحديد اسم ملف التخطيط المطلوب تحميله كمعلمة:
> kbd-tst.py at101.lay
إذا لم يتم توفير معلمة ملف تخطيط، فسيتم أخذ ملف التخطيط الأول في الدليل. وهذا مفيد إذا كان هناك ملف واحد فقط في الدليل.
يجب أن تكون وسيلة إيضاح الزر في ملف التخطيط قابلة للترجمة بواسطة قاموس rev_xmodmap في فئة Layout. يتيح ذلك استخدام تسميات أزرار أقصر لتصميم تخطيط لوحة المفاتيح ASCII بشكل صحيح. إذا لم يكن لتسمية الزر من ملف التخطيط أي إدخال في قاموس rev_xmodmap، فستظهر رسالة الخطأ. سيستمر الاختبار، ولكن لن تكون هناك طريقة لاختبار جميع المفاتيح. ولذلك سينتهي هذا التنفيذ بتحذير (أصفر/برتقالي) (انظر لقطات الشاشة أدناه مع التحذيرات حول تحميل التخطيط وتقرير الاختبار).
لا تتردد في المساهمة بملفات التخطيط المحددة الخاصة بك في دليل التخطيطات ...
في نهاية الاختبار، يتم إنشاء تقرير ذو سطر واحد مع ملخص:
الملفات التالية:
آمل أن يساعد ...
الإصدار 2017.07.27 - إصدار GitHub الأولي في عام 2017
الكلمات الرئيسية : لوحة المفاتيح، الاختبار، kbdtst، التخطيط، kbd-tst، python، xinput، xmodmap