كيفية التبديل إلى Colemak في Linux
اضبط Colemak في وحدة تحكم Linux وX11 وWayland، واعرف لماذا لا يحتاج SSH إلى تخطيط، وما الذي يتغير في Vim ومفاتيح Ctrl واختصارات الطرفية.
مكان تخطيط Colemak في Linux
ليس Colemak إعداداً واحداً على مستوى النظام في Linux. يطبّق التخطيط المكوّن الذي يقرأ لوحة المفاتيح في تلك اللحظة، لذلك يوجد في أحد ثلاثة أماكن: وحدة التحكم النصية، أو خادم X11، أو مدير النوافذ Wayland. إذا ضبطته في المكان الخطأ، فلن يظهر أي تغيير.
يوجد خيار رابع يتجاوز نظام التشغيل بالكامل. ترسل لوحة المفاتيح التي تعيد تعيين مفاتيحها في البرنامج الثابت الخاص بها، مثل لوحة تعمل ببرنامج QMK أو VIA، رموز المفاتيح الخاصة بالحروف التي تريدها. لذلك تكتب Colemak على كل جهاز توصلها به من دون أي إعداد، بما في ذلك وحدة تحكم خادم وجهاز لا تملكه. لكن لوحة مفاتيح الكمبيوتر المحمول ستظل تكتب QWERTY.
يغطي باقي هذا الدليل طبقات البرامج الثلاث، وسبب عدم حاجة الخادم البعيد إليها تقريباً، وتأثير التبديل في Vim واختصارات الطرفية لديك.
تحقق مما هو موجود أصلاً في نظامك
شغّل هذه الأوامر قبل تغيير أي شيء. فهي تعرض الإعداد الحالي وقائمة متغيرات Colemak التي توفرها قاعدة بيانات لوحة مفاتيح X لديك.
localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemakيجب أن يعرض الأمر الأخير colemak وcolemak_dh. أُدرج Colemak في xkeyboard-config منذ سنوات. ووصل Colemak-DH في الإصدار 2.34، لذلك لن يكون مفقوداً إلا في إصدار قديم. اعتباراً من أغسطس 2026، يتضمن كل من Ubuntu 24.04 وDebian 13 إصداراً أحدث من ذلك.
إذا أبلغ setxkbmap -query بأنه يتعذر عليه فتح شاشة عرض، فأنت في جلسة Wayland ويتولى compositor إدارة تخطيط لوحة المفاتيح. لهذه الحالة قسم مستقل أدناه.
Colemak أم Colemak-DH
ينقل Colemak سبعة عشر مفتاحاً من مواضعها في QWERTY، ويُبقي عشرة مفاتيح في مواضعها، منها Z وX وC وV، لذلك تبقى اختصارات التراجع والقص والنسخ واللصق في المواضع التي تتوقعها يدك اليسرى. وهذا التوافق هو السبب الكامل وراء تصميم التخطيط بهذا الشكل.
Colemak-DH تعديل على Colemak. فهو ينقل D وB وG، ويبدّل H مع M، لأن Colemak الأساسي يكتب كلاً من D وH بمدّ السبابة إلى العمود الأوسط من لوحة المفاتيح. ويحافظ التعديل الرسمي على كل حرف تحت الإصبع نفسه الذي كان يستخدمه في Colemak، لذلك يواجه مستخدم Colemak الذي ينتقل إلى DH تغييراً صغيراً بدلاً من تعلّم تخطيط جديد. ومتغير XKB هو colemak_dh، مع colemak_dh_iso للوحات المفاتيح التي تحتوي على المفتاح الإضافي بجانب Shift الأيسر.
عند الانتقال من QWERTY، يتطلب أيٌّ منهما إعادة تعلّم واحدة، لذلك اختر ما يريحك والتزم به. إن تبديل التخطيط مرة ثانية يكلّفك تقريباً ما كلّفته المرة الأولى، لأن ما تعيد بناءه هو الذاكرة الحركية المرتبطة بمواضع المفاتيح. إذا كان السؤال المفتوح لا يزال هو ما إذا كنت ستترك QWERTY، فاحسمه أولاً عبر مقارنة Colemak وDvorak وQWERTY قبل أن تقضي شهراً في إعادة بناء تلك الذاكرة الحركية.
تعيين Colemak في X11 باستخدام setxkbmap وlocalectl
setxkbmap us -variant colemak
setxkbmap -queryيجب أن يعرض setxkbmap -query الآن القيمة variant: colemak، ويجب أن تؤدي الكتابة في أي نافذة إلى إدخال أحرف Colemak. يستمر التغيير طوال جلسة X ولا يكتب أي شيء على القرص، لذلك فهو الطريقة الآمنة لتجربة التخطيط لمدة ساعة.
للاحتفاظ به بعد إعادة التشغيل:
sudo localectl set-x11-keymap us pc105 colemak
localectl statusترتيب الوسائط هو التخطيط، ثم الطراز، ثم التنويع. يجب أن يعرض localectl status الآن القيمتين X11 Layout: us وX11 Variant: colemak. يحوّل localectl الاختيار أيضاً إلى أقرب تخطيط لوحة مفاتيح لوحدة التحكم، ما لم تضف --no-convert، لذلك يغطي هذا الأمر الواحد tty أيضاً في كثير من الأنظمة. في Debian وUbuntu، تحقّق من /etc/default/keyboard بعد ذلك، لأن console-setup يقرأ هذا الملف عند الإقلاع.
تعيين Colemak على Wayland
لا تحتوي جلسة Wayland على خادم X لتهيئته. يحمّل compositor خريطة المفاتيح ويمررها إلى كل تطبيق، لذلك يصبح التخطيط إعداداً في compositor. لهذا يبدو setxkbmap معطلاً هناك: فهو إما يفشل في العثور على شاشة، أو يغيّر XWayland فقط، بينما تتجاهله تطبيقات Wayland الأصلية.
في GNOME، يكون الإعداد في مفتاح gsettings:
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+colemak')]"يُطبَّق الإعداد فوراً، من دون تسجيل الخروج. تمثل السلسلة us+colemak التخطيط والمتغير، وهما متصلان بعلامة الجمع.
في sway، ضعه في ~/.config/sway/config:
input type:keyboard {
xkb_layout us
xkb_variant colemak_dh
}أعد التحميل باستخدام swaymsg reload. يعرض swaymsg -t get_inputs كل جهاز إدخال والتخطيط الذي يستخدمه. هذا هو الفحص المطلوب عند تعطل لوحة مفاتيح واحدة فقط.
في KDE Plasma، افتح System Settings، ثم Keyboard، ثم Layouts، وأضف English (US) مع متغير Colemak.
تعيين Colemak في وحدة التحكم النصية
وحدة التحكم هي tty النصية العادية التي تصل إليها باستخدام Ctrl+Alt+F3، ولها تخطيط مفاتيح مستقل. لا ينتقل أي إعداد تضبطه في X11 أو في compositor إليها، وهذا مهم إذا كنت تعمل على محطة عمل طرفية في وحدة تحكم افتراضية مجردة.
في Debian وUbuntu، حرّر /etc/default/keyboard:
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""ثم طبّق الإعداد:
sudo setupconاكتب في وحدة التحكم للتأكد. يحوّل console-setup وصف XKB هذا إلى تخطيط مفاتيح لوحدة التحكم باستخدام ckbcomp، لذلك تستخدم وحدة التحكم وX الوصف نفسه في هذه الأنظمة.
في التوزيعات التي تستخدم تخطيطات kbd مباشرة، اطلب الاسم أولاً:
localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9توفّر حزمة kbd تخطيط Colemak لوحدة التحكم باسم i386/colemak/en-latin9، لذلك يكون الاسم الذي تمرّره عادةً en-latin9 وليس colemak. مرّر اسماً يظهر في القائمة، لأن الاسم غير الموجود يُرفض.
يغيّر sudo loadkeys en-latin9 وحدة التحكم الحالية فوراً، بينما يعيدها sudo loadkeys us إلى حالتها السابقة. تعامل مع loadkeys على أنه اختبار وليس إعداداً دائماً: يستمر حتى إعادة التشغيل، وعند الإقلاع تشغّل Debian وUbuntu الأمر setupcon، الذي يعيد تطبيق ما يحدده /etc/default/keyboard.
هل يحتاج VPS بلا واجهة رسومية إلى تخطيط Colemak؟
يكاد لا يحتاج إليه أبداً، ومن المفيد فهم السبب. ينقل SSH الأحرف لا مواضع المفاتيح. يستقبل محاكي الطرفية لديك ضغط المفتاح، ثم يحوّله تخطيط لوحة المفاتيح المحلي إلى حرف، ولا ينتقل عبر الاتصال إلا ذلك الحرف. يستقبل الخادم n من دون أي طريقة لمعرفة المفتاح الفعلي الذي أنشأه. لذلك، يرافقك التخطيط الذي ضبطته على حاسوبك المحمول في كل جلسة SSH، وفي tmux، وفي كل محرر تشغّله عن بُعد، ولا تحتاج الآلة البعيدة إلى أي إعداد للوحة المفاتيح.
ضع ذلك في الاعتبار قبل أن تبدأ بتعديل ملفات لوحة المفاتيح على خوادم الإنتاج. إذا كنت تدير مجموعة من خوادم Linux، فإن التخطيط يخص الآلة الموجودة أمامك، لا المجموعة، ولذلك لا مكان له في إعداد الخوادم تلقائياً. يوفّر الدقائق العشر الأولى على VPS جديد عملاً أكثر فائدة من ذلك.
هناك استثناءان يستحقان التخطيط لهما. الأول هو وحدة تحكم متصلة بالآلة نفسها. تعرض وحدة التحكم في المتصفح ضمن لوحة مزوّد الخدمة نفسها عادةً للآلة الافتراضية على أنها لوحة مفاتيح، لذلك تصل ضغطات المفاتيح بصيغة scancodes، وتحدد خريطة مفاتيح وحدة التحكم الخاصة بالخادم الحرف الذي يظهر. هذا هو الموضع الوحيد الذي يؤثر فيه التخطيط المضبوط على الخادم، وهو أيضاً مسار الإنقاذ عند توقف SSH عن العمل، لذلك تشكّل خريطة مفاتيح وحدة التحكم غير المكتملة خطراً فعلياً.
تعمل وحدة التحكم التسلسلية بطريقة مختلفة، لأنها تنقل الأحرف ويطبَّق فيها التخطيط المحلي لديك. أما الاستثناء الثاني فهو الآلة المشتركة. تكون خريطة مفاتيح وحدة التحكم على مستوى النظام، لذلك يؤدي ضبط Colemak على آلة يسجّل الآخرون الدخول إليها إلى تغييره لهم أيضاً، ولن يعرفوا سبب ذلك.
ماذا يحدث لمفاتيح Vim hjkl
في Colemak، لا يتحرك h. أما المفاتيح الثلاثة الأخرى فتعمل. يوجد j أسفل Y في تخطيط QWERTY، ويوجد k أسفل N في تخطيط QWERTY، ويوجد l أسفل U في تخطيط QWERTY، لذلك تتوزع مفاتيح تحريك المؤشر على ثلاثة صفوف بدلاً من وجودها تحت أربعة أصابع.
يوجد حلان عمليان، ولكل منهما مستخدمون فعليون.
احتفظ بالإعدادات الافتراضية وأعد تعلّم المواضع. لن يتعطل أي جزء آخر من إعدادك، وستواصل كل الإضافات العمل، وستظل كل إرشادات Vim التي كتبها الآخرون تنطبق عليك تماماً كما هي.
أو أعد ربط المفاتيح الأربعة الموجودة تحت يدك اليمنى، في المواضع التي كانت تشغلها hjkl. في Colemak، تنتج هذه المفاتيح h وn وe وi. أما في Colemak-DH، فتنتج المفاتيح المادية الأربعة نفسها m وn وe وi، لأن DH بدّل H مع M.
noremap n j
noremap e k
noremap i l
noremap l i
noremap k nيتحرك n الآن إلى الأسفل، ويتحرك e إلى الأعلى، ويتحرك i إلى اليمين، وكان h يتحرك إلى اليسار أصلاً. يعيد السطران الأخيران الأوامر التي أزحتها: يبدأ l وضع الإدراج، ويكرر k آخر بحث. طبّق الإعداد نفسه على الأحرف الكبيرة، وإلا فسيؤدي الضغط على Shift مع أحد مفاتيح تحريك المؤشر إلى نتيجة غير متوقعة.
يؤدي خيار langmap في Vim وظيفة مشابهة بعدد أسطر أقل:
set langmap=nj,ek,il,li,knيُقرأ كل زوج على أنه الحرف الذي كتبته متبوعاً بالحرف الذي ينبغي لـVim أن يتصرف وفقه. ينطبق ذلك على الوضع العادي فقط، لذلك يكتب وضع الإدراج نص Colemak بصورة طبيعية. يذكر توثيق Vim نفسه حدّين: لا ينطبق langmap على التركيبات التي تتضمن Ctrl أو Alt، وقد تتصرف تعيينات الإضافات المكتوبة وفق المفاتيح الافتراضية بطريقة غير متوقعة عند استخدامه.
أيّاً كان الخيار الذي تختاره، اختره مرة واحدة. إعادة ضبط تعيين تتخلى عنه بعد شهر ستكلفك شهراً آخر.
ما الذي يحدث لاختصارات الطرفية
ينشأ رمز التحكم في الطرفية من الحرف، وليس من المفتاح الفعلي، لذلك تنتقل كل اختصارات Ctrl مع تخطيط لوحة المفاتيح. تبقى الاختصارات Ctrl+C وCtrl+Z وCtrl+X وCtrl+V في مواضعها، لأن Colemak يترك عمداً الأحرف Z وX وC وV في المواضع نفسها التي توجد فيها ضمن QWERTY.
تنتقل أربعة اختصارات تستخدمها يومياً. يوجد Ctrl+D، الذي ينهي الإدخال، الآن في موضع G ضمن QWERTY. ويوجد Ctrl+R، المستخدم للبحث في السجل، في موضع S ضمن QWERTY. ويوجد Ctrl+E، المستخدم للانتقال إلى نهاية السطر، في موضع K ضمن QWERTY. ويوجد Ctrl+U، الذي يمسح السطر، في موضع I ضمن QWERTY.
يحتفظ tmux بالبادئة الافتراضية، لأن B لا يتغير موضعه في Colemak. في Colemak-DH، ينتقل B إلى الصف العلوي، وتنتقل البادئة معه. وهذا أول ما ستلاحظه إذا أبقيت جلسة tmux طويلة التشغيل على VPS. إعادة ربط البادئة بمفتاح تفضله لا تتطلب سوى تغيير في سطر واحد، وهي أسهل من إعادة تدريب رد الفعل نفسه مرتين.
تتبع اختصارات سطح المكتب القاعدة نفسها. ينتقل الارتباط Super+E مع التخطيط، لأنه محدد بواسطة الحرف. ويبقى الارتباط Super+F1 في موضعه، لأن مفاتيح الوظائف لا يعيد التخطيط تعيينها.
كم يستغرق الانتقال
لا يمكن لأحد أن يحدد مدة ثابتة لتعلمك. الكتابة باللمس ذاكرة حركية. أنت لا تتعلم مواضع الأحرف، بل تعيد بناء المنعكس الذي يحوّل الكلمة إلى تسلسل حركات للأصابع. لذلك، فإن التدريب الوحيد المفيد هو الوقت الذي تقضيه في الكتابة.
ما يذكره المتدربون، وهذه سجلات تدريب ذاتية وليست قياساً مضبوطاً، هو أن سرعتهم في الأسبوع الأول تنخفض كثيراً عن نصف سرعتهم السابقة، ثم تعود إلى تلك السرعة السابقة خلال فترة تتراوح بين شهر واحد و3 أشهر من الاستخدام اليومي. يختلف ذلك كثيراً من شخص إلى آخر، لذلك تعامل مع هذه الأرقام باعتبارها تصوراً عاماً لا جدولاً زمنياً محدداً.
تجعل عادتان الانتقال أبطأ. التبديل بين QWERTY وColemak خلال اليوم يضعف كلا المنعكسين، لذلك يلتزم معظم من يكملون الانتقال بالتخطيط الجديد بالكامل على جهازهم الرئيسي. أما البدء خلال أسبوع مزدحم، فيعني أنك ستكتب بشكل سيئ تحت ضغط الوقت، وهذا يدربك على النظر إلى المفاتيح.
جهّز طريقة العودة قبل أن تحتاج إليها، لأن اللحظة التي ستحتاج فيها إلى QWERTY مجدداً هي غالباً اللحظة التي يتعطل فيها شيء ما وينتظر منك شخص آخر حلاً.
كيفية العودة سريعاً إلى QWERTY
في X11، يعيد setxkbmap us تخطيط QWERTY فوراً. وفي وحدة التحكم، ينفّذ sudo loadkeys us الإجراء نفسه. لإلغاء الإعداد الدائم، شغّل sudo localectl set-x11-keymap us.
يكون مفتاح التبديل أفضل من أمر يجب أن تكتبه باستخدام تخطيط لا يمكنك الكتابة به بعد:
setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggleيحمّل هذا Colemak كتخطيط أول وUS العادي كتخطيط ثانٍ، ويتيح لك Super+Space التبديل بينهما. الفاصلة الختامية في colemak, ليست خطأً مطبعياً؛ فهي تعيّن variant colemak للتخطيط الأول، ولا تعيّن variant للتخطيط الثاني. في GNOME، أضف مصدري الإدخال معاً من Settings، حيث يبدّل Super+Space بينهما مسبقاً.
توجد مطالبتا كلمة مرور خارج جلسة سطح المكتب، وتحتاج كل منهما إلى إجراء منفصل. تبدأ شاشة تسجيل الدخول قبل تطبيق إعدادات جلستك، لذا اختبرها بتسجيل الخروج بدلاً من الاعتماد على الإعداد وحده. إذا كان القرص مشفراً، فتعمل مطالبة عبارة المرور من initramfs، الذي يحتفظ بنسخة مستقلة من keymap. في Debian وUbuntu، أعد بناءه باستخدام sudo update-initramfs -u بعد تغيير /etc/default/keyboard، ثم أعد التشغيل مرة واحدة للاختبار، ما دام لا يزال لديك مسار آخر للدخول إلى الجهاز.
هل يمكنني إبقاء برنامج واحد على تخطيط QWERTY؟
يُطبَّق التخطيط قبل أن يرى التطبيق المفتاح. يحوّل X server أو compositor رمز المسح إلى محرف، ثم يمرر المحرف إلى التطبيق؛ لذلك لا يمكن للتطبيق طلب تخطيط مختلف. يمكنه فقط إعادة تعيين ما يستلمه. لهذا يوجد إصلاح Vim في إعدادات Vim، ولهذا لا يوجد مفتاح عام لتبديل التخطيط لكل نافذة يمكن استخدامه.
توجد طريقتان فعالتان. الأولى تكون على مستوى الجهاز. إذا كانت الكتابة بتخطيط QWERTY تتم على لوحة مفاتيح منفصلة، فاضبط التخطيط على ذلك الجهاز بدلاً من ضبطه على مستوى النظام:
xinput list
setxkbmap -device 12 -layout usاستخرج المعرّف من xinput list، وتأكد منه بالكتابة على كل لوحة مفاتيح بالتتابع. يقبل sway الإعدادات نفسها لكل معرّف إدخال من swaymsg -t get_inputs، ويتغلب المحدد الأكثر تخصيصاً على type:keyboard.
الطريقة الثانية هي إجراء إعادة التعيين داخل التطبيق، كما يفعل langmap في Vim. تحتوي الألعاب تقريباً دائماً على شاشة لربط المفاتيح، وإعادة ربط مفاتيح الحركة فيها تستغرق وقتاً أقل من محاولة فرض التخطيط من الخارج. أما البرامج التي لا توفر ذلك، فاربط مفتاح تبديل التخطيط أعلاه واضغطه قبل تشغيل البرنامج.
FAQ
هل أحتاج إلى ضبط Colemak على VPS الخاص بي؟
لا، إذا كنت تتصل به عبر SSH. ينقل SSH المحارف، لذلك يُحسم تخطيط لوحة المفاتيح على حاسوبك المحمول قبل إرسال أي شيء، ويتلقى الخادم وحدات البايت نفسها التي سيتلقاها من مستخدم يكتب بتخطيط QWERTY. الاستثناء هو وحدة التحكم في المتصفح ضمن لوحة مزود الخدمة، إذ تتصل بالآلة الافتراضية بصفتها لوحة مفاتيح وتستخدم تخطيط لوحة مفاتيح وحدة التحكم الخاص بالخادم. تكون وحدة التحكم هذه مسار الإنقاذ عند تعطل SSH، لذلك لا تغيّر التخطيط فيها إلا إذا كنت متأكداً، واختبره ما دام SSH يعمل.
هل ينبغي أن أتعلم Colemak أم Colemak-DH؟
كلاهما يتطلب إعادة تعلّم واحدة انطلاقاً من QWERTY، لذلك اختر بناءً على الراحة لا على كلفة الانتقال. ينقل Colemak-DH المفاتيح D وB وG ويبدّل H مع M، لأن Colemak العادي يكتب D وH بمدّ إصبع السبابة إلى العمود الأوسط. اسما صيغة XKB هما colemak وcolemak_dh، ويُستخدم colemak_dh_iso مع لوحات المفاتيح التي تحتوي على مفتاح إضافي بجوار Shift الأيسر. شغّل localectl list-x11-keymap-variants us | grep colemak لمعرفة التخطيطات التي يوفّرها نظامك.
ماذا يحدث لمفاتيح hjkl الخاصة بـVim عند استخدام Colemak؟
يبقى h في موضعه. ينتقل j إلى موضع Y في QWERTY، وينتقل k إلى موضع N في QWERTY، وينتقل l إلى موضع U في QWERTY، لذلك تتوزع مفاتيح تحريك المؤشر على ثلاثة صفوف. يمكنك إعادة تعلّمها في مواضعها الجديدة، وبذلك تبقى كل إضافة وكل درس صالحين، أو إعادة ربط المفاتيح الأربعة الموجودة تحت يدك اليمنى: h وn وe وi في Colemak، وm وn وe وi في Colemak-DH. ينفّذ خيار langmap في Vim الوظيفة نفسها في الوضع العادي، لكنه لا ينطبق على تراكيب Ctrl وقد يسبب التباساً في عمليات ربط الإضافات.
كم من الوقت أحتاج حتى أكتب بالسرعة القديمة مجدداً؟
توقّع أسابيع لا أياماً، لأن هذا يعتمد على الذاكرة الحركية، والمدخل الوحيد هو التدريب. تصف سجلات التدريب التي يشاركها المستخدمون عادةً أسبوعاً أول تكون فيه السرعة أقل بكثير من نصف السرعة القديمة، ثم عودة إلى تلك السرعة بعد شهر إلى 3 أشهر من الاستخدام اليومي. يؤدي التبديل بين QWERTY وColemak كل يوم إلى إطالة المدة، لأن أياً من الاستجابتين الحركيتين لا يستقر.
لماذا لم ينفّذ setxkbmap أي تغيير على سطح مكتبي؟
يُرجّح جداً أن السبب هو أن الجلسة تستخدم Wayland. في Wayland، يتولى compositor إدارة تخطيط لوحة المفاتيح ويدفعه إلى كل تطبيق، لذلك قد يعجز setxkbmap عن العثور على شاشة، أو قد يغيّر XWayland فقط، بينما تتجاهله التطبيقات الأصلية. اضبط التخطيط في compositor بدلاً من ذلك: استخدم مفتاح gsettings org.gnome.desktop.input-sources في GNOME، أو xkb_variant في إعداد sway، أو صفحة Layouts في System Settings ضمن KDE Plasma.