रेमैप कैप्सॉक टू एस्केप एंड कंट्रोल सिस्टम वाइड


18

क्या CapsLock कुंजी सिस्टम को फिर से तैयार करना संभव है जैसे कि जब CapsLock बटन को स्वयं दबाया जाता है तो यह एस्केप कुंजी के रूप में कार्य करता है और किसी अन्य कुंजी के साथ दबाए जाने पर यह नियंत्रण कुंजी के रूप में कार्य करता है?


5
ऐसा लगता है कि यह बहुत मुश्किल होगा। उदाहरण के लिए, यह कुंजी डाउन ईवेंट को उत्पन्न नहीं कर सका, क्योंकि आपको नहीं पता है कि किस कुंजी को दबाया गया था। यदि इसे दूसरी कुंजी के बिना दबाया जाता है, तो यह बच गया, अन्यथा यह नियंत्रण था।
cjm

जवाबों:


16

मुझे एक बहुत अच्छा समाधान मिला है जिसे xcape कहा जाता है । README से:

xcape एक डेमॉन के रूप में चलता है और नियंत्रण कुंजी को स्वीकार करता है। यदि नियंत्रण कुंजी को दबाया जाता है और अपने आप जारी किया जाता है, तो यह एक एस्केप कुंजी घटना उत्पन्न करेगा।

यह और अधिक समझ में आता है अगर आपने अपने कैप्स लॉक को नियंत्रित करने के लिए रीमैप किया है। इस प्रोग्राम के भविष्य के संस्करण आपके लिए उस मैपिंग को कर सकते हैं, लेकिन अभी के लिए यह कुछ ऐसा है जो आपको स्वयं करना है।


मैंने ऐसा करने के लिए एक हैकिंग स्क्रिप्ट बनाई: github.com/cmatheson/super-caps
cam

6

मैंने कैप्स को बचने के लिए मैप किया ताकि मैं विम में अधिक आरामदायक टाइपिंग करूं। मैंने इस्तेमाल किया xmodmap, और इसे अंदर डाल दिया ~/.Xmodmap

clear Lock
keycode 0x42 = Escape

लागू करने के लिए xmodmap ~/.Xmodmap:। आप इसे एक फ़ाइल में रख सकते हैं जैसे ~ / .bash_profile (मैंने ~ ~ / .xinitrc में डाला, क्योंकि मैं लॉगिन मैनेजर का उपयोग नहीं करता।

कैप्सलॉक + [एक और कुंजी] को मैप करने के लिए, उपयोग करने पर विचार करें xbindkeys


4

एक सिंपल udv रूल लिखने के लिए की-वाइड सिस्टम रीमैप करने के लिए केवल लिनक्स ही एक उपाय है। यह एक्स पर निर्भर नहीं होगा, किसी भी टर्मिनल या ऐप पर काम करेगा और किसी भी हाल ही में स्थापित लिनक्स के बीच पोर्टेबल है, बस दो फाइलों की नकल करके।

आपको 2 फाइलें लिखने की आवश्यकता है: एक udv नियम से युक्त है जो कर्नेल को कुंजी को हटाने के लिए कहता है और एक वास्तविक मैपिंग जिसमें आपको जरूरत है।

इस पद्धति का उपयोग करके मैंने अपना पूरा कीबोर्ड हटा दिया है, शायद यह कोड प्रेरणा के रूप में उपयोगी है। http://git.adirat.com/carpalx-keyboard


लिंक मर चुका है, क्या आप इसे अपडेट कर सकते हैं? धन्यवाद!
QED

मैंने इसे अपडेट किया, देरी के लिए खेद है
gimmesudo

बिटबकेट कहता है "आपके पास इस भंडार तक पहुंच नहीं है।" क्या आप इसे फिर से सार्वजनिक कर सकते हैं? धन्यवाद!
तियानिई कुई

@TianyiCui अब लिंक की जाँच करें
gimmesudo

1
लिंक मेरे लिए मृत या अवरुद्ध है। कोई भी मौका आप वास्तविक फ़ाइलों को अपने उत्तर में रख सकते हैं?
भूलभुलैया


1

मैं AskUbuntu पर एक अलग ढंग से लिखे गए सवाल पर भाग गया, जिसका जवाब अच्छा था , लेकिन मुझे अपने सिस्टम पर काम करने के लिए इसे थोड़ा संशोधित करना पड़ा।

लुइस और सर्जी की टिप्पणियों के अनुसार, मैं इस समाधान के साथ आया था जो कि मेरे लिए उबंटू 16.04 (एक्सनियल) पर काम कर रहा है और मैं इसे अपने साथ अन्य लिनक्स सिस्टमों के लिए ला रहा हूं, जिनका मैं उपयोग करता हूं।

मैंने xcape स्थापित किया और अपनी .profileफ़ाइल में कोड की निम्न पंक्तियों को अपनी होम डायरेक्टरी में रखा।

अद्यतन विधि:

विभिन्न प्रदर्शन प्रबंधकों (gdm / kdm / sddm / etc) की वजह से अजीब तरीके से व्यवहार करना और setxbmapसस्पेंड / फिर से शुरू या लॉक / अनलॉक करने के बाद रीसेट करना , मैंने खोजा है कि विकल्पों को इस तरह से कैसे सेट किया जाए कि वे इसे विरासत में दें और डॉन ' टी इसे हर समय रीसेट करें। क्योंकि मैं निलंबित करता हूं और बहुत बार फिर से शुरू करता हूं, इसलिए मुझे यह सुनिश्चित करने की आवश्यकता है कि मुझे xcapeचलने की बहुत सारी प्रतियां नहीं मिलीं जो नीचे नई स्क्रिप्ट में हल की गई हैं।

सबसे पहले कीबोर्ड कॉन्फिग को संशोधित करें sudo gedit /etc/default/keyboardऔर सेट करें XKBOPTIONS="ctrl:nocaps"और फिर ~/.xprofileनीचे अपनी सिंगल लाइन डालें।

ps aux | grep -i '[x]cape' && killall -9 xcape; hash xcape 2>&1 >/dev/null && xcape -e 'Control_L=Escape' -t 100 &

उम्मीद है कि स्क्रिप्ट के विभिन्न खंड आपको कुछ समय / परेशानी से बचाएंगे और अटके हुए लॉगिन को रोकेंगे। पहले यह जांचता है कि अगर पहले से कोई इंस्टेंस चल रहा है और उसे मारता है, क्योंकि केवल एक चीज xcapeहै जो कि Ctrl से Esc को मैप करता है, यह सुरक्षित है, तो यह hashभाग सुनिश्चित करता है कि आपने xcape इंस्टॉल किया है अन्यथा जब आप लॉगिन करने का प्रयास करते हैं तो आपका सिस्टम हैंग हो सकता है क्योंकि सभी स्टार्टअप लिपियों से साफ निकलने की उम्मीद है।

पुराना तरीका:

setxkbmap -option 'caps:ctrl_modifier'; xcape -e '#66=Escape'

सर्गी:

मैंने गनोम-ट्वीक-टूल का उपयोग कैप्स लॉक टू Ctrl को मैप करने के लिए किया है क्योंकि उबंटू 14.04 पर सिस्टम सेटिंग्स में कोई कीबोर्ड लेआउट नहीं है। तब xcape -e 'Control_L = एस्केप' काम नहीं करता था, लेकिन xcape -d का उपयोग करने के बाद मुझे पता चला है कि कैप्स लॉक कीकोड 66 उत्पन्न करता है और इसे क्रमशः निकालता है: xcape -e '# 66 = Escape'। - सेर्गेई बाइलोज़्योर्व 4 सितंबर 14 '10:08 पर

लुई:

इस ब्लॉग पोस्ट के अनुसार, अकेले xcape के साथ ऐसा करना संभव है: setxkbmap -option 'कैप्स: ctrl_modifier'; xcape -e 'Caps_Lock = Escape' setxkbmap -option 'caps: ctrl_modifier'; xcape -e 'Caps_Lock = Escape; Control_L = Escape; Control_R = Escape' - लुई सिमोनो Aug 4

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.