एस्केप दबाए जाने पर कैप्स लॉक बंद करें


10

क्या CapsLockजब भी Escदबाया जाता है, तब उसे निष्क्रिय करने का कोई तरीका है। हां, मैं VIM का उपयोग करता हूं! मेरे पास वास्तव में एक वैकल्पिक ऑल-कैप्स कीबोर्ड लेआउट है, Ctrl-6लेकिन मुझे यह बोझिल लगता है और जब भी Escदबाया जाता है तो बस ओएस अक्षम कैप्सलॉक करना पसंद करेंगे । इसके अलावा, मैं अक्सर कुछ घंटों के लिए अन्य सर्वरों में एसएसएच करता हूं इसलिए मैं वहां स्टॉक वीआईएम पर हूं।

ध्यान दें कि मैं पहले से ही कुंजी CapsLockऔर Escकुंजी स्वैप कर चुका हूं । हालांकि, जब Escकुंजी दबाया जाता है (जो लेबल किया जा करने के लिए होता CapsLockकीबोर्ड पर और के बगल में है A), मैं इसे की जरूरत है दोनों प्रदर्शन करने के लिए Escapeऔर Disable-CapsLock-If-It-Is-Enabled

यह कुबंटु 12.10 पर है। धन्यवाद।


आपको केवल vimया पूर्ण डेस्कटॉप के लिए उस कार्यक्षमता को जोड़ना होगा ?
mtk

मैं चाहूंगा कि यह एक डेस्कटॉप फीचर हो।
डॉटनकोहेन

जवाबों:


5

X11 में (कंसोल पर मुझे नहीं पता) आप एस्केप कुंजी के व्यवहार को फिर से परिभाषित करके कर सकते हैं। मैंने "शिफ्ट (ब्रेक_कैप्स)" परिभाषा को देखा कि यह कैसे काम करता है, और इसे अनुकूलित किया।

स्थानीय / संशोधित फ़ाइलों को कैसे और कहाँ रखा जाए और कैसे लोड किया जाए , इस बारे में अधिक जानकारी के लिए xkb पर इस उत्तर को देखें।

और जो आप चाहते हैं उसे करने के लिए, आपको स्थानीय प्रतीकों फ़ाइल (जैसे:) में ~/.xkb/symbols/mysymbolsइस तरह का एक अनुभाग चाहिए:

partial modifier_keys
xkb_symbols "esc_breaks_caps" {
    key <ESC> {
        type = "ALPHABETIC",
        actions [Group1] = [
            SetMods(modifiers=none),
            SetMods(modifiers=Lock,clearLocks)
        ]
    };
};

और स्थानीय कीमैप फ़ाइल में (जैसे ~/.xkb/keymap/mykbd:; आप इसे बना सकते हैं setxkbmap -print > ~/.xkb/keymap/mykbd) xkb_symbolsजोड़ने के लिए लाइन बदलें +mysymbols(esc_breaks_caps)

अब आप इसे लोड कर सकते हैं: xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY और दबाने Escसे कैप्सलॉक स्थिति को हटा दिया जाएगा (वास्तव में, प्रभाव एस्को की रिहाई पर होता है । मुझे लगता है कि केवल संशोधक कुंजी का तत्काल प्रभाव होता है; अन्य प्रभाव उनकी रिहाई के बाद है।)

ओह, अगर आप भी एस्केप और कैप्सलॉक कीज को स्वैप करना चाहते हैं; इसके बजाय इसका उपयोग करें (और आप अपनी mykbd फ़ाइल में "+ mysymbols (esc_swap_and_breaks_caps)" डालें:

partial modifier_keys
xkb_symbols "esc_swap_and_breaks_caps" {
    replace key <CAPS> {
        type = "ALPHABETIC",
        symbols = [ Escape, Escape ],
        actions [Group1] = [
            SetMods(modifiers=none),
            SetMods(modifiers=Lock,clearLocks)
        ]
    };
    replace key <ESC> { [ CapsLock, CapsLock ] };
};

ध्यान दें कि भौतिक कुंजी हैं <CAPS>और <ESC>; <CAPS>( CapsLockआपके कीबोर्ड में उत्कीर्ण कुंजी ) एस्केप भेजें और <ESC>(कुंजी उत्कीर्ण Esc) कैप्सलॉक भेजता है, व्हिथ <CAPS>(एस्केप भेजना) भी कैप्सलॉक स्थिति को परेशान करता है


1

इन पंक्तियों को इसमें जोड़ें ~/.Xmodmap:

clear lock
keycode 0x42 = Escape

फिर, कमांड टाइप करें:

xmodmap ~/.Xmodmap

आपकी Caps Lockकुंजी अब कुंजी को हटा दी गई है Esc

संदर्भ यूआरएल


इसके अलावा उबंटू में बचने के लिए कैपिंग क्लॉक मैपिंग कैप्सॉक के बारे में इस अच्छे लेख के माध्यम से जाना , जो एक यूनिक्स.से यूजर लगता है :)


धन्यवाद। मुझे लगता है कि पहले से ही CapsLock और Esc की अदला-बदली हुई है। हालांकि, जब Esc कुंजी दबाया जाता है (जो कीबोर्ड पर CapsLock लेबल किया जाता है और A के बगल में है), तो मुझे एस्केप और डिसेबल-कैप्सलॉक-इफ-इट-इनेबल दोनों प्रदर्शन करने की आवश्यकता है । मैं स्पष्ट करने के लिए प्रश्न को संपादित करूंगा। धन्यवाद।
dotancohen

मुझे लगा कि आपको दूसरे रास्ते की जरूरत है। यहाँ थोड़ा भ्रमित। इन परिवर्तनों को दबाने Escऔर Capslocksउसके बाद क्या होता है ?
mtk

वर्तमान में: ESCकुंजी दबाते समय CapsLockफ़ंक्शन टॉगल करता है, और CapsLockकुंजी दबाने पर ESCकमांड भेजा जाता है (यानी ESCकुंजी को रीमैप किया जाता है CapsLockऔर CapsLockकुंजी को रीमैप किया जाता है ESC)। इस सवाल के साथ मेरा लक्ष्य दबाने के लिए है CapsLockकुंजी प्रदर्शन दोनोंESC समारोह (जिससे वह वर्तमान में करता है) और बंद कर देते हैं CapsLockसमारोह यदि और केवल यदि CapsLockसमारोह सक्षम है (टॉगल नहीं यानी CapsLockसमारोह, बल्कि अक्षम यह अगर CapsLockसक्षम है)।
dotancohen

1

मुझे यकीन नहीं है कि यह आपके प्रश्न का उत्तर देता है, लेकिन Escफ़ंक्शन को CapsLockकुंजी पर मैप करने के लिए , आप इसका उपयोग कर सकते हैं:

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