حل مشكلة التبديل باستخدام مفتاحي Alt+Shift في Linux، في تطبيقات الإلكترون

مرحبا زملائي!

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

وصف المشكلة

مستخدم Ubuntu أستخدم نظام التشغيل 18.04 للعمل، ولاحظت مؤخرًا أنه عند تغيير تخطيط الشاشة باستخدام مفتاحي Alt+Shift في تطبيقات مثل Visual Studio Code وSkype وSlack وغيرها من التطبيقات المبنية باستخدام Electron، تحدث المشكلة التالية: ينتقل التركيز من حقل الإدخال إلى لوحة النافذة العلوية (القائمة). ولأسباب أخرى، انتقلت إلى Fedora مع بيئة KDE، لكن المشكلة استمرت. أثناء بحثي عن حل، وجدت هذه المقالة الممتازة. إصلاح سكايب بيديك. شكرا جزيلا لك يا رفيق برنوفك، الذي تحدث بالتفصيل عن المشكلة وشارك طريقته في حلها. لكن الطريقة المذكورة في المقال أغلقت المشكلة بتطبيق واحد فقط وهو Skype. كان من المهم أيضًا بالنسبة لي معرفة Visual Studio Code، لأن كتابة الرسائل باستخدام قائمة القفز أمر مزعج، ولكن ليس كثيرًا إذا كنت تقوم بالتطوير. بالإضافة إلى ذلك، اقترح أحد الزملاء حلاً حيث تختفي قائمة التطبيق تمامًا، وأنا لا أرغب حقًا في فقدان القائمة في VS Code.

حاولت أن أفهم ما كان يحدث

لذا، قررت أن أخصص بعض الوقت لمعرفة ما كان يحدث. الآن سأصف بإيجاز المسار الذي اتخذته، ربما يمكن لشخص أكثر دراية بهذا الأمر أن يساعد في شرح الصعوبات التي واجهتها.

فتحت Visual Studio Code وبدأت في الضغط على مجموعات مختلفة من Alt+<%something%>، وشاهدت التطبيق يتفاعل. في جميع الحالات تقريبًا، عملت جميع التركيبات باستثناء Alt+Shift دون فقدان التركيز. بدا الأمر كما لو أن شخصًا ما كان يلتهم الضغط على مفتاح Shift الذي أعقب الضغط على مفتاح Alt، واعتقد التطبيق أنني ضغطت على مفتاح Alt، ثم لم يضغط على أي شيء، وأطلق سراح Alt، وألقى تركيزي بسعادة في قائمته، وهو ما بدا منطقيًا تمامًا بالنسبة له.

فتحت إعدادات تبديل تخطيط لوحة المفاتيح (كما تعلمون، تلك القائمة الطويلة التي تحتوي على مربعات الاختيار وجميع أنواع الإعدادات للمفاتيح) وقمت بتعيين تبديل التخطيط على زر Alt، دون أي نقرات إضافية.

حل مشكلة التبديل باستخدام مفتاحي Alt+Shift في Linux، في تطبيقات الإلكترون

بعد ذلك، توقف Alt+Tab عن العمل لتبديل النوافذ. لقد نجح Tab فقط، مما يعني أن شخصًا ما كان "يأكل" Alt الخاص بي مرة أخرى. لم تكن هناك أي أسئلة متبقية حول من كان هذا "الشخص"، لكن لم يكن لدي أي فكرة عما يمكن فعله معه.

ولكن بما أن المشكلة كان لا بد من حلها بطريقة أو بأخرى، فقد جاء الحل إلى ذهني:

  1. في الإعدادات، قم بتعطيل مفتاح التشغيل السريع لتبديل تخطيط لوحة المفاتيح (قم بإلغاء تحديد جميع مربعات الاختيار في قسم التبديل إلى تخطيط آخر)؛
  2. إنشاء مفتاح التشغيل السريع الخاص بي والذي من شأنه أن يغير تخطيطي

وصف الحل

أولاً، دعنا نقوم بتثبيت برنامج يسمح لك بتعيين الأوامر للمفاتيح Xbindkeys. لسوء الحظ، لم تسمح لي الأدوات القياسية بإنشاء مفتاح سريع لمجموعة مثل Alt+Shift من خلال واجهة جميلة. يمكن القيام بذلك من خلال الضغط على Alt+S، وAlt+1، وAlt+shift+Y، وما إلى ذلك، ولكن هذا غير مناسب لمهمتنا.

sudo dnf install xbindkeysrc

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

xbindkeys -d > ~/.xbindkeysrc

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


# Examples of commands:
"xbindkeys_show"
  control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
  c:41 + m:0x4

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

للحصول على الرموز، يجب عليك استخدام الأمر:

xbindkeys -k

سيتم فتح نافذة "X" صغيرة. يجب عليك الضغط على المفاتيح فقط عندما يكون التركيز على هذه النافذة! فقط في هذه الحالة سوف ترى شيئًا كهذا في المحطة الطرفية:


[podkmax@localhost ~]$ xbindkeys -k
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
    m:0x4 + c:39
    Control + s

في حالتي، يبدو مزيج المفاتيح Alt+Shift على النحو التالي:

m:0x8 + c:50

الآن نحتاج إلى جعل الأمر بحيث عندما تضغط على هذه المجموعة، يتم تبديل التخطيط. لقد وجدت أمر عمل واحد فقط لتحديد التخطيط:


setxkbmap ru
setxkbmap us

كما يمكنك أن ترى من المثال، فإنه لا يمكن تشغيل سوى تخطيط واحد أو آخر، لذلك لم يخطر ببالي أي شيء آخر غير كتابة البرنامج النصي.


vim ~/layout.sh
#!/bin/bash
LAYOUT=$(setxkbmap -print | awk -F + '/xkb_symbols/ {print $2}')
if [ "$LAYOUT" == "ru" ]
        then `/usr/bin/setxkbmap us`
        else `/usr/bin/setxkbmap ru`
fi

الآن إذا كانت ملفات .xbindkeysrc و layout.sh في نفس الدليل، فإن المظهر النهائي لملف .xbindkeysrc يبدو مثل هذا:


# Examples of commands:

"xbindkeys_show"
  control+shift + q

# set directly keycode (here control + f with my keyboard)
"xterm"
  c:41 + m:0x4

# specify a mouse button
"xterm"
  control + b:2
#А вот то, что добавил я
"./layout.sh"
  m:0x8 + c:50

بعد ذلك نقوم بتطبيق التغييرات:


xbindkeys -p

ويمكنك التحقق. لا تنسَ تعطيل أي خيارات لتبديل التخطيط في الإعدادات الافتراضية.

مجموع

زملائي، آمل أن تساعد هذه المقالة شخصًا ما في التخلص بسرعة من مشكلة مزعجة. شخصيًا، أمضيت يوم إجازتي بالكامل في محاولة اكتشاف المشكلة وحلها بطريقة ما، حتى لا أشتت انتباهي بها بعد الآن خلال ساعات العمل. لقد كتبت هذا المقال من أجل توفير الوقت والأعصاب لشخص ما. يستخدم العديد منكم طريقة بديلة لتبديل التخطيط ولا يفهمون ما هي المشكلة. أنا شخصياً أحب التبديل باستخدام Alt+Shift. وأريد أن يعمل الأمر بالضبط بهذه الطريقة. إذا كنت تشارك رأيي وواجهت هذه المشكلة، فيجب أن تساعدك هذه المقالة.

المصدر: www.habr.com

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster