क्या CapsLock कुंजी सिस्टम को फिर से तैयार करना संभव है जैसे कि जब CapsLock बटन को स्वयं दबाया जाता है तो यह एस्केप कुंजी के रूप में कार्य करता है और किसी अन्य कुंजी के साथ दबाए जाने पर यह नियंत्रण कुंजी के रूप में कार्य करता है?
क्या CapsLock कुंजी सिस्टम को फिर से तैयार करना संभव है जैसे कि जब CapsLock बटन को स्वयं दबाया जाता है तो यह एस्केप कुंजी के रूप में कार्य करता है और किसी अन्य कुंजी के साथ दबाए जाने पर यह नियंत्रण कुंजी के रूप में कार्य करता है?
जवाबों:
मुझे एक बहुत अच्छा समाधान मिला है जिसे xcape कहा जाता है । README से:
xcape एक डेमॉन के रूप में चलता है और नियंत्रण कुंजी को स्वीकार करता है। यदि नियंत्रण कुंजी को दबाया जाता है और अपने आप जारी किया जाता है, तो यह एक एस्केप कुंजी घटना उत्पन्न करेगा।
यह और अधिक समझ में आता है अगर आपने अपने कैप्स लॉक को नियंत्रित करने के लिए रीमैप किया है। इस प्रोग्राम के भविष्य के संस्करण आपके लिए उस मैपिंग को कर सकते हैं, लेकिन अभी के लिए यह कुछ ऐसा है जो आपको स्वयं करना है।
मैंने कैप्स को बचने के लिए मैप किया ताकि मैं विम में अधिक आरामदायक टाइपिंग करूं। मैंने इस्तेमाल किया xmodmap
, और इसे अंदर डाल दिया ~/.Xmodmap
।
clear Lock
keycode 0x42 = Escape
लागू करने के लिए xmodmap ~/.Xmodmap
:। आप इसे एक फ़ाइल में रख सकते हैं जैसे ~ / .bash_profile (मैंने ~ ~ / .xinitrc में डाला, क्योंकि मैं लॉगिन मैनेजर का उपयोग नहीं करता।
कैप्सलॉक + [एक और कुंजी] को मैप करने के लिए, उपयोग करने पर विचार करें xbindkeys
।
एक सिंपल udv रूल लिखने के लिए की-वाइड सिस्टम रीमैप करने के लिए केवल लिनक्स ही एक उपाय है। यह एक्स पर निर्भर नहीं होगा, किसी भी टर्मिनल या ऐप पर काम करेगा और किसी भी हाल ही में स्थापित लिनक्स के बीच पोर्टेबल है, बस दो फाइलों की नकल करके।
आपको 2 फाइलें लिखने की आवश्यकता है: एक udv नियम से युक्त है जो कर्नेल को कुंजी को हटाने के लिए कहता है और एक वास्तविक मैपिंग जिसमें आपको जरूरत है।
इस पद्धति का उपयोग करके मैंने अपना पूरा कीबोर्ड हटा दिया है, शायद यह कोड प्रेरणा के रूप में उपयोगी है। http://git.adirat.com/carpalx-keyboard
मैंने इस उद्देश्य के लिए विशेष रूप से C में एक उपकरण बनाया है जो xcape / xmodmap समाधान के साथ कई समस्याओं को दूर करता है :
मैं 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