يفتقر Linux إلى حل جيد لإعادة تعيين المفاتيح. ومن أجل تحقيق نتائج مرضية، يجب استخدام مجموعة متنوعة من الأدوات (مثل xcape وxmodmap) مع ربط النتيجة النهائية ببيئة محددة (X11). يحاول keyd حل هذه المشكلة من خلال توفير برنامج خفي مرن على مستوى النظام والذي يعيد تعيين المفاتيح باستخدام أساسيات الإدخال على مستوى kernel (evdev، uinput).
لقد خضع تنسيق التكوين لعدة تكرارات منذ الإصدار الأول. بالنسبة لأولئك الذين يقومون بترحيل التكوينات الخاصة بهم من الإصدار 1، فمن الأفضل إعادة قراءة صفحة الدليل.
أنظر أيضا: سجل التغيير.
يحتوي keyd على العديد من الميزات الفريدة التي لا يوجد الكثير منها تقليديًا إلا في البرامج الثابتة للوحة المفاتيح المخصصة مثل QMK بالإضافة إلى بعض الميزات الفريدة الخاصة بـ keyd.
بعض من أكثر إثارة للاهتمام ما يلي:
C-1
دون كسر دلالات المُعدِّل.ملاحظة: يعمل البرنامج الرئيسي كفرع التطوير، وقد تنقطع الأمور أحيانًا بين الإصدارات. تم وضع علامة على الإصدارات، وينبغي اعتبارها مستقرة.
git clone https://github.com/rvaiya/keyd
cd keyd
make && sudo make install
sudo systemctl enable keyd && sudo systemctl start keyd
تثبيت المفتاح وبدء تشغيله (على سبيل المثال sudo systemctl enable keyd
)
ضع ما يلي في /etc/keyd/default.conf
:
[ids]
*
[main]
# Maps capslock to escape when pressed and control when held.
capslock = overload(control, esc)
# Remaps the escape key to capslock
esc = capslock
يمكن الحصول على أسماء المفاتيح باستخدام أمر keyd monitor
. لاحظ أنه أثناء تشغيل keyd، فإن مخرجات هذا الأمر سوف تتوافق مع مخرجات keyd. يمكن رؤية أحداث الإدخال الأصلية عن طريق إيقاف المفتاح أولاً ثم تشغيل الأمر. راجع صفحة الرجل لمزيد من التفاصيل.
قم بتشغيل sudo keyd reload
لإعادة تحميل مجموعة التكوين.
راجع صفحة الدليل ( man keyd
) للحصول على وصف أكثر شمولاً.
ستظهر أخطاء التكوين في مخرجات السجل ويمكن الوصول إليها بالطريقة المعتادة باستخدام مدير خدمة نظامك (على سبيل المثال sudo journalctl -eu keyd
).
ملاحظة : من الممكن أن يصبح جهازك غير صالح للاستخدام بسبب ملف تكوين غير صالح. إذا وجدت نفسك في هذا الموقف، فإن تسلسل المفاتيح الخاص backspace+escape+enter
يجب أن يتسبب في إنهاء المفتاح.
بعض أجهزة الماوس (مثل Logitech MX Master) قادرة على إصدار مفاتيح وبالتالي تتم مطابقتها بواسطة معرف حرف البدل. قد يكون من الضروري إدراج هذه القائمة السوداء بشكل صريح.
أضف نفسك إلى المجموعة الرئيسية:
usermod -aG keyd <user>
ملء ~/.config/keyd/app.conf
:
على سبيل المثال
[alacritty]
alt.] = macro(C-g n)
alt.[ = macro(C-g p)
[chromium]
alt.[ = C-S-tab
alt.] = macro(C-tab)
يجري:
keyd-application-mapper
ربما تريد وضع keyd-application-mapper -d
في مكان ما في منطق تهيئة خادم العرض (على سبيل المثال ~/.xinitrc) إلا إذا كنت تقوم بتشغيل Gnome.
راجع صفحة الرجل لمزيد من التفاصيل.
تمت إضافة الدعم التجريبي لأجهزة الكمبيوتر ذات اللوحة الواحدة (SBCs) عبر أداة USB بفضل Giorgi Chavchanidze.
راجع usb-gadget.md للحصول على التفاصيل.
توجد أيضًا حزم الطرف الثالث لبعض التوزيعات. إذا كنت ترغب في إضافة منتجك إلى القائمة، فيرجى تقديم طلب علاقات عامة. يتم الحفاظ عليها من قبل أفراد المجتمع، ولا يتم تحمل أي مسؤولية شخصية تجاههم.
الحزمة ذات المفاتيح التي تتم صيانتها بواسطة @jirutka.
حزمة Arch Linux التي تتم صيانتها بواسطة حزم Arch.
يمكن العثور على حزم keyd
keyd-application-mapper
التجريبية في عناصر بناء CI الخاصة بمستودع حزم Debian قيد التنفيذ:
يُنصح أي مطور دبيان يرغب في مراجعة جهود debianization ورعاية تحميله بالتواصل مع @rhansen (راجع أيضًا خطأ Debian ITP).
حزمة COPR تمت صيانتها بواسطة @alternateved.
حزمة الاستخدام المفتوح التي تتم صيانتها بواسطة @bubbleguuum.
سهل التثبيت باستخدام sudo zypper in keyd
.
يمكن العثور على حزم keyd
و keyd-application-mapper
التجريبية في أرشيف ppa:keyd-team/ppa
.
إذا كنت ترغب في المساعدة في الحفاظ على اتفاقية PPA هذه، فيرجى الاتصال بـ @rhansen.
[ids]
*
[main]
leftshift = oneshot(shift)
capslock = overload(symbols, esc)
[symbols]
d = ~
f = /
...
ربما لن يهتم العديد من المستخدمين بالاستفادة الكاملة من المفاتيح. بالنسبة لأولئك الذين يسعون إلى تحسينات بسيطة في نوعية الحياة، يمكنني أن أوصي بالتكوين التالي:
[ids]
*
[main]
shift = oneshot(shift)
meta = oneshot(meta)
control = oneshot(control)
leftalt = oneshot(alt)
rightalt = oneshot(altgr)
capslock = overload(control, esc)
insert = S-insert
يؤدي هذا إلى زيادة التحميل على مفتاح capslock ليعمل كهروب (عند النقر عليه) وتحكم (عند الضغط عليه) ويعيد تعيين جميع المعدلات إلى مفاتيح "oneshot". وبالتالي، لإنتاج الحرف A، يمكنك الآن ببساطة النقر فوق Shift ثم بدلاً من الاضطرار إلى الضغط عليه باستمرار. أخيرًا، يتم إعادة تعيين إدراج إلى S-insert (لصق على X11).
يعد xmodmap والأصدقاء أدوات عرض على مستوى الخادم بوظائف محدودة. keyd هو حل على مستوى النظام يقوم بتنفيذ ميزات متقدمة مثل الطبقات ومعدلات oneshot. في حين أن بعض أدوات X توفر وظائف مماثلة، إلا أنني لست على علم بأي شيء مرن مثل المفاتيح.
تمت كتابة keyd منذ عدة سنوات للسماح لي بتجربة تخطيطات مختلفة بسهولة على مجموعة لوحات المفاتيح المتنامية الخاصة بي. في ذلك الوقت، لم يكن kmonad موجودًا وكانت البرامج الثابتة للوحة المفاتيح المخصصة مثل QMK (التي ألهمت المفاتيح) هي الطريقة الوحيدة للحصول على ميزات قابلة للمقارنة. لقد أصبحت على علم بـ kmonad بعد نشر المفتاح. على الرغم من أن kmonad هو مشروع جيد له أهداف مماثلة، إلا أنه يتبع نهجًا مختلفًا وله فلسفة تصميم مختلفة.
تمت كتابة keyd بشكل ملحوظ بالكامل بلغة C مع وضع الأداء في الاعتبار وببساطة ومن المحتمل ألا يكون قابلاً للتكوين أبدًا مثل kmonad (وهو قابل للتوسعة في Haskell). بعد قولي هذا، فإنه يوفر (في رأي المؤلف) الميزات الأكثر قيمة في أقل من 2000 سطر من لغة C مع توفير تنسيق تكوين بسيط غير محدد اللغة.
إذا شعرت أن شيئًا ما مفقودًا أو وجدت خطأً، فنحن نرحب بك لتقديم مشكلة على جيثب. لدى keyd فلسفة تصميم بسيطة (ولكنها معقولة) والتي تتجاهل عمدًا ميزات معينة (على سبيل المثال، تنفيذ الملفات التنفيذية التعسفية كجذر). تعتبر الأشياء الموجودة بالفعل في البرامج الثابتة للوحة المفاتيح المخصصة مثل QMK مرشحة جيدة للتضمين.
انظر المساهمة. قناة IRC: #keyd على oftc