| KEYMAPS(5) | File Formats Manual | KEYMAPS(5) |
الاسم¶
keymaps - أوصاف جداول لوحة المفاتيح لـ loadkeys و dumpkeys
الوصف¶
تُستخدم هذه الملفات بواسطة loadkeys(1) لتعديل جداول الترجمة التي يستخدمها مشغل لوحة المفاتيح في النواة والتي يُنشئها dumpkeys(1) من تلك الجداول.
تنسيق هذه الملفات مشابه بشكل غامض للتنسيق الذي يقبله xmodmap(1). يتكون الملف من أسطر تعريف مجموعة المحارف أو المفتاح أو السلسلة متخللة بتعليقات.
تُقدم التعليقات بحرفي ! أو # وتستمر حتى نهاية السطر. يُتجاهل أي شيء يتبع أحد هذه الأحرف في ذلك السطر. لاحظ أن التعليقات لا تحتاج إلى البدء من العمود الأول كما في xmodmap(1).
بناء جملة ملفات keymap موجه نحو السطر؛ يجب أن يتسع تعريف كامل في سطر منطقي واحد. يمكن، مع ذلك، تقسيم الأسطر المنطقية إلى أسطر فيزيائية متعددة بإنهاء كل سطر فرعي بحرف الشرطة المائلة للخلف (\).
تضمين الملفات¶
يمكن لـ keymap تضمين keymaps أخرى باستخدام البناء
تعريفات مجموعة المحارف¶
سطر تعريف مجموعة المحارف يكون بالشكل:
charset "iso-8859-x"
يحدد كيفية تفسير رموز المفاتيح التالية. على سبيل المثال، في iso-8859-1، الرمز mu (أو micro) له الكود 0265، بينما في iso-8859-7، الحرف mu له الكود 0354.
تعريفات كاملة لرموز المفاتيح¶
كل سطر تعريف مفتاح كامل يكون بالشكل التالي:
keycode keynumber = keysym keysym keysym...
keynumber هو رقم التعريف الداخلي للمفتاح، وهو مكافئ تقريبًا لرمز المسح الخاص به. يمكن إعطاء keynumber بالتدوين العشري أو الثماني أو السداسي عشري. يُشار إلى الثماني بصفر بادئ والسداسي عشري بالبادئة 0x.
كل من keysyms يمثل إجراءات لوحة المفاتيح، والتي يمكن ربط ما يصل إلى 256 منها بمفتاح واحد. تتضمن الإجراءات المتاحة إخراج رموز الأحرف أو تسلسلات الأحرف، تبديل وحدات التحكم أو خرائط المفاتيح، تشغيل الجهاز، إلخ. (يمكن الحصول على القائمة الكاملة من dumpkeys(1) بقول dumpkeys -l .)
يمكن أن يسبق كل keysym بعلامة '+' (علامة زائد)، وفي هذه الحالة يُعامل هذا الرمز كـ"حرف" وبالتالي يتأثر بـ"CapsLock" بنفس طريقة "Shift" (لكي نكون دقيقين، CapsLock يعكس حالة Shift). الأحرف ASCII ('a'-'z' و 'A'-'Z') تُجعل قابلة لـCapsLock بشكل مبدئي. إذا كان Shift+CapsLock لا ينبغي أن ينتج رمزًا صغيرًا، ضع سطورًا مثل
keycode 30 = +a A
في ملف الخريطة.
أي من الإجراءات المرتبطة بمفتاح معين يُتخذ عند الضغط عليه يعتمد على المعدلات النشطة في تلك اللحظة. يدعم برنامج تشغيل لوحة المفاتيح 9 معدلات. تُسمى هذه المعدلات (بشكل تعسفي تمامًا) Shift، AltGr، Control، Alt، ShiftL، ShiftR، CtrlL، CtrlR و CapsShift. لكل من هذه المعدلات وزن مرتبط بقوة اثنين وفقًا للجدول التالي:
- modifier
- weight
Shift 1
AltGr 2
Control 4
Alt 8
ShiftL 16
ShiftR 32
CtrlL 64
CtrlR 128
CapsShift 256
يُعثر على الإجراء الفعال لمفتاح بجمع أوزان جميع المعدلات النشطة. بشكل مبدئي، لا توجد معدلات نشطة، لذا يُتخذ الإجراء رقم صفر، أي الإجراء في العمود الأول في سطر تعريف المفتاح، عند الضغط على المفتاح أو تحريره. عندما تكون المعدلات مثل Shift و Alt نشطة، يكون الإجراء رقم تسعة (من العمود العاشر) هو الفعال.
يمكن تحقيق تغيير حالة المعدلات النشطة بربط إجراءات المفاتيح المناسبة بالمفاتيح المرغوبة. على سبيل المثال، ربط الرمز Shift بمفتاح يضع المعدل Shift نشطًا عند ضغط ذلك المفتاح ويلغي تأثير ذلك المعدل عند تحرير المفتاح. ربط AltGr_Lock بمفتاح يضع AltGr نشطًا عند ضغط المفتاح ويلغي التأثير عند ضغط المفتاح مرة أخرى. (بشكل مبدئي، Shift، AltGr، Control و Alt مرتبطة بالمفاتيح التي تحمل تسمية مماثلة؛ قد يشير AltGr إلى مفتاح Alt الأيمن.)
لاحظ أنه يجب أن تكون حذرًا جدًا عند ربط مفاتيح المعدلات، وإلا قد ينتهي بك الأمر بتعيين لوحة مفاتيح غير قابل للاستخدام. إذا قمت مثلاً بتعريف مفتاح ليكون له Control في عموده الأول وتركت بقية الأعمدة لتكون VoidSymbols، فأنت في مشكلة. هذا لأن ضغط المفتاح يضع المعدل Control نشطًا ويتم البحث عن الإجراءات التالية من العمود الخامس (انظر الجدول أعلاه). لذا، عند تحرير المفتاح، يُتخذ الإجراء من العمود الخامس. يحتوي على VoidSymbol فيه، لذا لا يحدث شيء. هذا يعني أن المعدل Control لا يزال نشطًا، على الرغم من أنك حررت المفتاح. إعادة الضغط والتحرير للمفتاح ليس له تأثير. لتجنب هذا، يجب دائمًا تعريف جميع الأعمدة ليكون لها نفس رمز المعدل. هناك تدوين مختصر مفيد لهذا، انظر أدناه.
يمكن إعطاء keysyms بالتدوين العشري أو الثماني أو السداسي عشري أو اليونيكود أو الرمزي. تستخدم التدوينات الرقمية نفس التنسيق كما في keynumber. تدوين اليونيكود هو "U+" متبوعًا بأربعة أرقام سداسية عشرية. التدوين الرمزي يشبه ذلك المستخدم بواسطة xmodmap(1). الاختلافات الملحوظة هي رموز الأرقام. يتم استبدال الرموز الرقمية '0', ..., '9' من xmodmap(1) بالكلمات المقابلة 'zero', 'one', ... 'nine' لتجنب الخلط مع التدوين الرقمي.
يجب ملاحظة أن استخدام التدوين الرقمي لـ keysyms غير قابل للنقل بشكل كبير لأن أرقام إجراءات المفاتيح قد تختلف من إصدار نواة إلى آخر، وبالتالي يُثبط استخدام التدوينات الرقمية بشدة. يُقصد استخدامها فقط عندما تعلم أن هناك إجراء لوحة مفاتيح مدعومًا في نواتك ليس لإصدارك الحالي من loadkeys(1) اسم رمزي له.
هناك عدد من التدوينات المختصرة لإضافة قابلية القراءة وتقليل عمل الكتابة واحتمالية أخطاء الكتابة.
أولاً، يمكنك إعطاء سطر مواصفات خريطة، بالشكل
keymaps 0-2,4-5,8,12
للإشارة إلى أن سطور خريطة المفاتيح لن تحدد جميع الأعمدة الـ 256، بل فقط المشار إليها. (في المثال: فقط الخرائط العادية، Shift، AltGr، Control، Control+Shift، Alt و Control+Alt، أي 7 أعمدة بدلاً من 256.) عندما لا يُعطى مثل هذا السطر، سيتم تعريف خرائط المفاتيح 0-M، حيث M+1 هو الحد الأقصى لعدد الإدخالات الموجودة في أي سطر تعريف.
بعد ذلك، يمكنك حذف أي إدخالات VoidSymbol زائدة من سطر تعريف المفتاح. VoidSymbol يشير إلى إجراء لوحة مفاتيح لا ينتج أي مخرجات وليس له أي تأثيرات أخرى أيضًا. على سبيل المثال، لتعريف المفتاح رقم 30 لإخراج 'a' بدون Shift، و'A' عند الضغط مع Shift، وعدم فعل شيء عند الضغط مع AltGr أو معدلات أخرى، يمكنك كتابة
keycode 30 = a A
بدلاً من الأكثر إسهابًا
keycode 30 = a A VoidSymbol VoidSymbol \ VoidSymbol VoidSymbol VoidSymbol ...
لتوفير راحة إضافية، يمكنك عادةً الاستغناء بتعاريف أكثر اختصارًا. إذا أدخلت سطر تعريف مفتاح يحتوي على رمز إجراء واحد فقط بعد علامة المساواة، فله معنى خاص. إذا كان الرمز (رقميًا أو رمزيًا) ليس حرفًا ASCII، فهذا يعني أن الرمز يُكرر ضمنيًا عبر جميع الأعمدة المُعرَّفة. من ناحية أخرى، إذا كان رمز الإجراء حرفًا ASCII في النطاق 'a'، ...، 'z' أو 'A'، ...، 'Z' في تسلسل ASCII، تُصنع التعاريف التالية لمجموعات المُعدِّل المختلفة، بشرط أن تكون هذه المجموعات مُعرَّفة فعليًا. (يسرد الجدول الحالتين المحتملتين: إما أن يكون رمز الإجراء الفردي حرفًا صغيرًا، يُرمز له بـ 'x'، أو حرفًا كبيرًا، يُرمز له بـ 'Y'.)
- modifier
- symbol
- none
- x Y
- Shift
- X y
- AltGr
- x Y
- Shift+AltGr
- X y
- Control
- Control_x Control_y
- Shift+Control
- Control_x Control_y
- AltGr+Control
- Control_x Control_y
- Shift+AltGr+Control
- Control_x Control_y
- Alt
- Meta_x Meta_Y
- Shift+Alt
- Meta_X Meta_y
- AltGr+Alt
- Meta_x Meta_Y
- Shift+AltGr+Alt
- Meta_X Meta_y
- Control+Alt
- Meta_Control_x Meta_Control_y
- Shift+Control+Alt
- Meta_Control_x Meta_Control_y
- AltGr+Control+Alt
- Meta_Control_x Meta_Control_y
- Shift+AltGr+Control+Alt
- Meta_Control_x Meta_Control_y
تَعَارِيفُ المُعَدِّلِ المُفْرَدِ¶
جميع الأشكال السابقة لأسطر تعريف المفاتيح تُعرِّف دائمًا جميع تركيبات المُعدِّل M+1 المُحتملة المُعرَّفة، سواء كان السطر يحتوي بالفعل على هذا العدد من رموز الإجراء أم لا. ومع ذلك، يوجد تنويع في صيغة التعريف لتعريف إجراءات فردية فقط لتركيبة مُعدِّل معينة لمفتاح. هذا مفيد بشكل خاص إذا حمَّلت خريطة مفاتيح لا تتطابق مع احتياجاتك في بعض تركيبات المُعدِّل فقط، مثل AltGr + مفاتيح الوظائف. يمكنك بعد ذلك إنشاء ملف محلي صغير يُعيد تعريف تركيبات المُعدِّل هذه فقط وتحميله بعد الملف الرئيسي. صيغة هذا الشكل هي:
{ عادي | <تسلسل المُعدِّل> } keycode رقم_المفتاح = رمز_المفتاح
على سبيل المثال،
plain keycode 14 = BackSpace control alt keycode 83 = Boot alt keycode 105 = Decr_Console alt keycode 106 = Incr_Console
تَعَارِيفُ السَّلْسِلَةِ¶
بالإضافة إلى التعليقات وأسطر تعريف المفاتيح، يمكن أن تحتوي خريطة المفاتيح على تعريفات سلسلة. تُستخدم هذه لتعريف ما يُرسله كل رمز إجراء لمفتاح وظيفة. صيغة تعريفات السلسلة هي:
يمكن أن يحتوي النص على أحرف حرفية، ورموز أحرف ثمانية بتنسيق شرطة مائلة متبوعة بما يصل إلى ثلاثة أرقام ثمانية، وتسلسلات الهروب الثلاثة \n و \\ و \"، للسطر الجديد والشرطة المائلة والاقتباس، على التوالي.
تَعَارِيفُ التَّرْكِيبِ¶
ثم قد تكون هناك أيضًا تعريفات تركيب. لها الصيغة
الاختصارات¶
يمكن استخدام اختصارات متنوعة مع kbd-0.96 والإصدارات الأحدث.
- سلاسل كالمعتاد
- يُعرِّف القيم المعتادة للسلاسل (وليس المفاتيح التي ترتبط بها).
- تركيب كالمعتاد لـ "iso-8859-1"
- يُعرِّف تركيبات التركيب المعتادة.
لمعرفة رموز_المفاتيح المتاحة للاستخدام في خرائط المفاتيح، استخدم الأمر
dumpkeys --long-info
لسوء الحظ، لا يوجد حاليًا وصف لما يفعله كل رمز. يجب تخمينه من الاسم أو استنتاجه من مصادر النواة.
أمثلة¶
(كن حذرًا لاستخدام سطر keymaps، مثل السطر الأول من `dumpkeys`، أو "keymaps 0-15" أو ما شابه ذلك.)
الإدخال التالي يبدل مفتاح التحكم الأيسر ومفتاح قفل الأحرف الكبيرة على لوحة المفاتيح:
keycode 58 = Control keycode 29 = Caps_Lock
رقم المفتاح 58 هو عادة مفتاح قفل الأحرف الكبيرة، ورقم المفتاح 29 هو عادة مفتاح التحكم.
الإدخال التالي يضبط مفتاحي Shift وCaps Lock ليتصرفا بشكل أفضل، كما في الآلات الكاتبة القديمة. أي أن الضغط على مفتاح Caps Lock مرة أو أكثر يضبط لوحة المفاتيح في حالة CapsLock والضغط على أي من مفتاحي Shift يحررها.
keycode 42 = Uncaps_Shift keycode 54 = Uncaps_Shift keycode 58 = Caps_On
الإدخال التالي يضبط تخطيط لوحة التحرير في لوحة المفاتيح المحسنة ليكون أشبه بتخطيطها في أطراف سلسلة VT200:
keycode 102 = Insert keycode 104 = Remove keycode 107 = Prior shift keycode 107 = Scroll_Backward keycode 110 = Find keycode 111 = Select control alt keycode 111 = Boot control altgr keycode 111 = Boot
هذا مثال لربط السلسلة "du\ndf\n" بمفتاح AltGr-D. نستخدم رمز الإجراء "الاحتياطي" F100 غير المرتبط عادة بأي مفتاح.
altgr keycode 32 = F100 string F100 = "du\ndf\n"
المؤلفون¶
أندريس بروير <aeb@cwi.nl>
انظر أيضًا¶
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 24 أبريل 1998 | kbd |