सवाल अगर दबाया जाता है और खुद को छोड़ दिया जाता है तो एस्केप से बचने के लिए Ctrl को कैसे रीपैप करें


मैं नियंत्रण रीमेप करना चाहता हूं, ताकि:

  1. यदि इसे दबाया जाता है और किसी अन्य कुंजी के साथ जारी नहीं किया जाता है, तो यह कार्य करता है   Esc
  2. यदि इसे दबाया जाता है और एक और कुंजी के साथ एक साथ रखा जाता है, तो यह के समान एक्ट करें Ctrl (इस मामले में व्यवहार में कोई बदलाव नहीं)।

मैं इससे अवगत हूँ मैं कुछ चाबियाँ या डिवाइस कैसे रीमेप करूं?, इसलिए मुझे संदेह है कि यह xmodmap के साथ किया जा सकता है। लेकिन वह जवाब संशोधित नहीं करता है कि संशोधक कुंजी को कैसे मैप करना है। मैंने xmodmap manpage के उदाहरणों और व्याकरण खंडों में देखा, लेकिन वे इसे समझा नहीं देते हैं। जवाब में नियंत्रण और भागने के लिए कैप्स लॉक को रीमेप करना (सामान्य तरीका नहीं) उल्लेख करें कि ऐसा करना संभव नहीं है कैप्स लॉकचूंकि यह लॉक कुंजी है, लेकिन मुझे उम्मीद है कि यह नियंत्रण के साथ ऐसा करना संभव हो सकता है जो एक मॉड कुंजी है। Xmodmap से अलग कुछ के साथ एक समाधान भी स्वीकार किया जाएगा। (मैं उबंटू 12.04 में एक्सोनैड चला रहा हूं, तो शायद इसे xmonad.hs में सेट करने का कोई तरीका है?)

संपादित करें: मुझे सबसे नज़दीक मिल सकता है:

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

इसके साथ में जब मैं दबाता हूं तो मुझे एस्केप मिलता है बाएं Ctrl अकेले कुंजी, लेकिन पाने के लिए, कहो, Ctrl+ मुझे प्रेस करना है  बाएं Ctrl कुंजी दो बार: Ctrl, Ctrl+ (बस के बजाय Ctrl+) - यकीन नहीं है कि मुझे इसे दो बार दबाए जाने की आवश्यकता क्यों है।


4
2017-11-22 22:30


मूल




जवाब:


नवीनतम जवाब नियंत्रण और भागने के लिए कैप्स लॉक को रीमेप करना (सामान्य तरीका नहीं) कहता है कि यह उपयोगिता आप जो चाहते हैं वह करेगी: 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, एस्केप नियंत्रण संशोधक में जोड़ा गया है। इसका मतलब है कि जब बाएं नियंत्रण दबाया जाता है, तो इसके परिणामस्वरूप बचने का परिणाम होगा, लेकिन जब नियंत्रण किसी अन्य कुंजी के साथ दबाया जाता है (जैसा कि अंदर है Ctrl+सी), यह अभी भी पहले जैसा ही परिणाम देगा।

टर्मिनल में प्रवेश करके इसका परीक्षण करें man xmodmap और फिर मैनपेज को देखते हुए ctrl दबाएं और यह 'esc' गूंज जाएगा, लेकिन जब आप दबाएंगे Ctrl+जेड यह पृष्ठ को निलंबित कर देगा।

अगर आप अपने प्रयोगों को रीसेट करना चाहते हैं xmodmap, लॉगआउट और फिर से लॉगिन करें, और यदि आप उपरोक्त सेट करना चाहते हैं xmodmap स्टार्टअप आइटम के रूप में आदेश, मेरा उत्तर यहां देखें:


1
2017-11-26 18:07



आपके उत्तर के लिए धन्यवाद। दुर्भाग्यवश, जब मैं आपके चरणों को लागू करता हूं, तो मैं ऊपर बताई गई लगभग उसी स्थिति में समाप्त होता हूं; यानी, Ctrl + A, Ctrl + K, Ctrl + R आदि काम नहीं करते हैं (वे इसके बजाय भागते हैं)। वास्तव में, कहें, Ctrl + A, मुझे Ctrl को दो बार दबाएं, दूसरी बार ए के साथ एक साथ (FWIW, मैंने कभी भी setxkbmap सेट नहीं किया है, जब तक यह डिफ़ॉल्ट ubuntu 12.04 इंस्टॉल के साथ आता है)। - psvm
@psvm यह मेरे लिए काम करता था- मैं भागने के रूप में ctrl का उपयोग करने में सक्षम था और फिर ctrl + c, उदाहरण के लिए, इसलिए मुझे यकीन नहीं है कि यह आपके लिए क्यों नहीं था। यह अजीब बात है कि आपको दो बार ctrl दबा देना है: मुझे लगता है कि यह समस्या का हिस्सा हो सकता है; यह एक क्षतिग्रस्त कुंजी हो सकता है। मुझे यह देखने के लिए भी जांच करनी चाहिए कि क्या आपने कीबोर्ड गुई में कोई भी सेटिंग लागू की है, क्योंकि शायद ये सेटिंग्स समस्याएं पैदा कर रही हैं। अगर यह आपकी चाबियों में कोई समस्या है, तो कोई आदेश सफलतापूर्वक काम नहीं करेगा।
मुझे और स्पष्ट होने दें: मैं आपसे सहमत हूं कि Ctrl + C, Ctrl + Z काम करता है। मैं असहमत हूं कि Ctrl + K, Ctrl + R, Ctrl + एक कार्य। यही है, मैं दावा करता हूं कि इस समाधान के साथ, कुछ संयोजन काम करते हैं और कुछ नहीं करते हैं। क्या आप उदाहरण के लिए जांच सकते हैं कि आपके समाधान को लागू करने के बाद कमांड लाइन पर Ctrl + A कार्य? बस एक साधारण टर्मिनल खोलें और बैश प्रॉम्प्ट पर कुछ टाइप करें और फिर Ctrl + A का उपयोग करें: क्या आप कर्सर को उस लाइन की शुरुआत में प्राप्त करते हैं? मेरे लिए यह काम नहीं करता है (12.04 की डिफ़ॉल्ट स्थापना, कभी भी कीबोर्ड सेटिंग्स को छुआ नहीं) और मुझे दो बार या Ctrl दो बार दबा देना है। - psvm
@psvm मैं इसे जांचूंगा, बस एक मिनट।
@psvm हां, आप सही हैं- crtl-a ctrl के दो प्रेस लेता है, लेकिन ctrl-c और ctrl-z काम करते हैं। मैं देखूंगा कि मैं क्यों पता लगा सकता हूं।