سؤال كيفية إعادة توجيه السيطرة على الهروب إذا ضغطت وأفرج عنها من تلقاء نفسها


أريد إعادة رسم التحكم ، بحيث:

  1. إذا تم الضغط عليه وإطلاقه بدون مفتاح آخر ، فإنه يعمل   زر Esc فى الكيبورد.
  2. إذا تم الضغط عليه وعقد مع مفتاح آخر ، فإنه تصرف مثل السيطرة (لا تغيير في السلوك في هذه الحالة).

أنا على علم كيف أقوم بإعادة رسم مفاتيح أو أجهزة معينة؟، لذلك أظن أنه يمكن القيام به مع xmodmap. لكن هذا الجواب لا يشرح كيفية تعيين مفاتيح التعديل. نظرت إلى الأمثلة والقواعد النحوية لصفحة xmodmap ، لكنهم لا يفسرون ذلك. الجواب في remapping قبعات قفل للتحكم والهروب (وليس بالطريقة المعتادة) أذكر أنه من غير الممكن القيام بذلك Caps lock، لأنه هو مفتاح القفل ، ولكن آمل أن يكون هذا ممكنًا من خلال Control وهو مفتاح mod. كما سيتم قبول حل بشيء مختلف عن xmodmap. (أنا أركض Xmonad في أوبونتو 12.04 ، لذلك ربما هناك طريقة لإعداد هذا في xmonad.hs؟)

تعديل: أقرب ما يمكنني الحصول عليه هو:

xmodmap -e 'remove Control = Control_L'
xmodmap -e 'keysym Control_L = Escape'
xmodmap -e 'add Control = Escape'

مع هذا أحصل على الهروب عندما اضغط على اليسار Ctrl المفتاح وحده ، ولكن للحصول على ، على سبيل المثال ، السيطرة+ا لا بد لي من الضغط على  اليسار Ctrl المفتاح مرتين: السيطرة، السيطرة+ا (افضل من مجرد السيطرة+ا) - لست متأكدًا من سبب حاجتي للضغط عليه مرتين.


4
2017-11-22 22:30


الأصل




الأجوبة:


آخر رد على remapping قبعات قفل للتحكم والهروب (وليس بالطريقة المعتادة) تقول هذه الأداة ستفعل ما تريد: https://github.com/alols/xcape


3
2017-12-04 08:21





ويمكن القيام بذلك مع xmodmapولكن كن على علم بأنه إذا قمت بتعيين بعض الأشياء setxkbmap، هذا البرنامج الأخير سيتجاوز ويوضح xmodmap إعدادات.

ومع ذلك ، أن تفعل بالضبط ما تريد مع xmodmap، يمكنك الدخول

xmodmap -e "keysym Control_L control = Escape Control_L" 

الآن ، إذا نظرت xmodmap -pm، تمت إضافة Escape إلى معدل التحكم. هذا يعني أنه عندما يتم الضغط على التحكم الأيسر ، فإن الهروب سيكون نتيجة لذلك ، ولكن عندما يتم الضغط على عنصر التحكم مع مفتاح آخر (كما هو الحال في السيطرة+C) ، ستظل تعطي النتيجة نفسها كما كانت من قبل.

اختباره عن طريق الدخول في المحطة man xmodmap ثم اضغط ctrl أثناء النظر إلى صفحة manpage وستظهر صدى 'esc' ، ولكن عندما تضغط السيطرة+Z ستعلق الصفحة.

إذا كنت ترغب في إعادة تعيين تجربتك xmodmap، تسجيل الخروج وتسجيل الدخول مرة أخرى ، وإذا كنت ترغب في تعيين ما سبق xmodmap الأمر كعنصر بدء التشغيل ، انظر إجابتي هنا:


1
2017-11-26 18:07



شكرا لإجابتك. للأسف ، بعد أن قمت بتطبيق خطواتك ، انتهى بي الأمر في نفس الوضع تقريباً كما ذكرت أعلاه ؛ أي ، Ctrl + A ، Ctrl + K ، Ctrl + R إلخ. لا تعمل (يرسلون الهروب بدلاً من ذلك). للحصول حقا ، على سبيل المثال ، Ctrl + A ، لا بد لي من الضغط على Ctrl مرتين ، في المرة الثانية مع A. (FWIW ، لم أقم أبدا بتعيين setxkbmap ، إلا إذا جاء مع تثبيت أوبونتو الافتراضي 12.04). - psvm
psvm كان يعمل بالنسبة لي - كنت قادرا على استخدام السيطرة كما هروب ثم CTRL + C ، على سبيل المثال ، لذلك أنا لست متأكدا لماذا لم يفعل ذلك بالنسبة لك. من الغريب أن تضغط على مفتاحي ctrl مرتين: أعتقد أن هذا يمكن أن يكون جزءًا من المشكلة. يمكن أن يكون مفتاح التالفة. يجب أيضًا التحقق لمعرفة ما إذا كنت قد طبقت أي إعدادات في واجهة لوحة المفاتيح ، نظرًا لأن هذه الإعدادات قد تسبب المشكلات. إذا كانت المشكلة تتعلق بالمفاتيح الخاصة بك ، فلن تعمل أية أوامر بنجاح.
اسمحوا لي أن أكون أكثر وضوحا: أنا أتفق معك أن Ctrl + C ، Ctrl + Z تعمل. لا أتفق مع Ctrl + K و Ctrl + R و Ctrl + A. هذا هو ، أنا أدعي أنه مع هذا الحل ، بعض تركيبات العمل والبعض الآخر لا. هل يمكن أن تحقق على سبيل المثال أن Ctrl + A يعمل على سطر الأوامر بعد تطبيق الحل الخاص بك؟ فقط افتح محطة بسيطة واكتب شيئًا في موجه bash ثم استخدم Ctrl + A: هل تحصل على المؤشر إلى بداية ذلك السطر؟ بالنسبة لي لا يعمل (التثبيت الافتراضي 12.04 ، لم يلمس إعدادات لوحة المفاتيح) ويجب أن أضغط مرتين أو Ctrl مرتين. - psvm
psvm سوف أتحقق من ذلك ، فقط لمدة دقيقة.
psvm نعم ، أنت على صواب- crtl-a لا تأخذ اثنين من الضغط على ctrl ، لكن ctrl-c و ctrl-z يعملان. سأرى إذا كان بإمكاني معرفة السبب.