मैं कैप्स लॉक कुंजी को तीसरी पाली कुंजी कैसे बनाऊं?


19

मैं किसी अन्य Shift कुंजी की तरह कैप्स लॉक कुंजी कैसे काम कर सकता हूं?

इसे पुन: असाइन करने या इसे एक कस्टम कमांड लॉन्च करने के बारे में प्रश्नों का भार है। मैं बस यह चाहता हूं कि यह दूसरी शिफ्ट की तरह काम करे। मैं किसी भी अन्य कुंजी को बदलना नहीं चाहता कि वे क्या करते हैं, बस एक।

कीबोर्ड लेआउट / कैप्स लॉक प्रमुख व्यवहार यह नहीं करेगा, मुझे समझ में नहीं आता कि इसे CCSM में कैसे रिमैप किया जाए।

अब मैं एक यूके कीबोर्ड का उपयोग कर रहा हूं, लेकिन मैंने यूएस कीबोर्ड पर टाइप करना सीख लिया है, बाईं ओर की शिफ्ट कुंजी DRUING ME NUTS है।



1
@ डेविड- yourfriend ओपी ने विशेष रूप से कहा कि xmodmapकाम नहीं करता है।
द वेंडर

1
Xkb में यह अनुकूलता मानचित्रों के साथ कुछ करने के लिए प्रतीत होता है जो कुछ प्रमुख संयोजनों को प्रतीकों के बजाय क्रियाओं में बदल देता है। इस समय मेरे पास जितना उपलब्ध है, उससे अधिक शोध और परीक्षण का समय लगेगा। अगर मुझे मौका मिलता है तो मैं आगे भी खुदाई करूंगा, अगर नहीं तो शायद यह ब्रेड क्रम्ब किसी और को सही दिशा में ले जाएगा।
एल्डर गीक

जवाबों:


14

@ Zacharee1 उत्तर पर विस्तार:

के साथ एक बैकअप बनाओ cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

उसके बाद gksu gedit /usr/share/X11/xkb/symbols/pcया अपने पसंदीदा संपादक के साथ संपादित करें ।

लाइन (22) जो कहती है खोजें:

key <CAPS> { [ Caps_Lock ] };

और इसे बदल दें

key <CAPS> { [ Shift_L ] };

और रेखा (36) जो कहती है:

modifier_map Lock { Caps_Lock };

और इसे बदल दें

//modifier_map Lock { Caps_Lock }; (जो इसे लॉकिंग को अक्षम करने के प्रभाव में टिप्पणी करना चाहिए)

परीक्षण इंगित करता है कि Num Lockअभी भी उम्मीद के मुताबिक काम करता है। आगे के परीक्षण से संकेत मिलता है कि कीबोर्ड इंडिकेटर लाइट 16.04 में थोड़ा डिस्लेक्सिक है, यहां तक ​​कि एक अनमॉडिफाइड सिस्टम पर भी। लॉगिन पर स्क्रॉल लॉक इंडिकेटर लेकिन स्क्रॉल लॉक ऑफ और न्यूम लॉक लाइट ऑफ, लेकिन न्यूम लॉक ऑन। बाईं Ctrlकुंजी का दोहन इस व्यवहार को हल करने के लिए लगता है और मुझे यकीन नहीं है कि यह केवीएम स्विच के मेरे उपयोग से संबंधित है (जो संभव है)

नोट: आगे के परीक्षण से पता चलता है कि केवीएम स्विच के बिना भी न्यूमॉक इंडिकेटर लाइट फ्लैकी है और न्यूमॉक के साथ सिंक में वापस आने के लिए दो बार टैप करना होगा। दो बार इसे सिंक में वापस लाने के लिए। ऐसा क्यों होता है, संभवतः एक नए प्रश्न का आधार है ...

आपकी मूल समस्या का एक और सरल समाधान यह होगा कि आप एक सस्ती यूएस कीबोर्ड प्राप्त करें और यूएस कीबोर्ड मैपिंग का उपयोग करें।

स्रोत: @ Zacharee1 जवाब और विश्लेषण /usr/share/X11/xkb/symbols/pcऔर परीक्षण और त्रुटि परीक्षण


तो आपको उस लाइन 36 को अक्षम करना पड़ा? Shift_Lमेरे लिए कैप्सलॉक पूरी तरह से अक्षम करने के लिए बस बदलना काफी था।
18

@ Zacharee1 मैंने सोचा कि यह न्यूक्लॉक पर प्रभाव का कारण हो सकता है कि टॉम ब्रॉसमैन ने आपकी पोस्ट पर एक टिप्पणी में उल्लेख किया है और केवल उसी कारण से इसे बाहर निकाल लिया है।
एल्डर गीक

हम्म। यह हो सकता है। मैं देख रहा हूं कि क्या मैं एक वीएम के साथ परीक्षण करना चाहता हूं, क्योंकि उसके पास यूके बोर्ड है।
द वेंडर

@ Zacharee1 यह अच्छा होगा क्योंकि मेरे पास परीक्षण के लिए वह हार्डवेयर उपलब्ध नहीं है और अक्सर ऐसे मामलों में तर्क पर भरोसा करते हैं जहां पूर्ण परीक्षण संभव नहीं है।
एल्डर गीक

यह आखिरकार, परीक्षण किया और काम कर रहा था (अब कम से कम)। यह अजीब है कि मेरे कीबोर्ड पर न्यूम लॉक लाइट बाहर है, लेकिन जब मैं लॉग इन करता हूं तो अतिरिक्त नंबर कुंजियां डिफ़ॉल्ट रूप से सक्षम होती हैं और यही मैं उसके बाद था। धन्यवाद!
टॉम ब्रॉसमैन

10

आप वहाँ "एड" का उत्पादन करने के लिए कैप्सलॉक कुंजी को कैसे बदल सकते हैं ? (उदाहरण के लिए)।

कुंजी Lock(= कैप्स लॉक) संशोधक को Caps Lockकुंजी से निकालें , और घोषित करें कि यह कुंजी Shift_Lचाबियों को भेजता है ।

remove Lock = Caps_Lock
keysym Caps_Lock = Shift_L

वैकल्पिक रूप से, आप Lockसंशोधक को हटा सकते हैं और Shiftसंशोधक जोड़ सकते हैं।

remove Lock = Caps_Lock
add Shift = Caps_Lock

किसी भी तरह से, ये लाइनें फ़ाइल में जाती हैं ~/.Xmodmap। इसे लोड करके परीक्षण करें xmodmap ~/.Xmodmap; जब आप डिफ़ॉल्ट वातावरण के तहत लॉग (या कम से कम यह सूक्ति दिनों में था) तो फ़ाइल स्वचालित रूप से पढ़ी जाती है।


2
बिल्कुल सही, यह काम किया। मैंने अपने होम डायरेक्टरी में एक नया खाली दस्तावेज़ बनाया है जिसे '.Xmodmap' कहा जाता है, और इसमें अपना पहला उदाहरण चिपकाया है। तब मैंने टर्मिनल में 'xmodmap ~ / .Xmodmap' टाइप किया ताकि यह तुरंत प्रभावी हो सके। इन दोनों को जुड़े हुए उत्तर में समझाया गया है। धन्यवाद।
टॉम ब्रॉसमैन

आदेशों का दूसरा सेट मेरे लिए काम नहीं करता है, लेकिन पहला बड़ा काम करता है। कैप्स लॉक को दबाने से कीबोर्ड की लाइट भी चालू नहीं होती है, इसलिए यह मेरे अव्यक्त OCD को भी ट्रिगर नहीं करता है।
वाल्डिर लियोनसियो

अच्छा जवाब, गिल्स! बस अपने जवाब में जोड़ने के लिए, यह एक ही कमांड के रूप में भी किया जा सकता है: xmodmap -e "clear Lock" -e "keysym Caps_Lock = Shift_L" और पूर्ववत करें setxkbmap -option , जो ~/.Xmodmapफ़ाइल में लिखना नहीं है , लेकिन जब आवश्यक हो, और स्टार्टअप एप्लिकेशन में जोड़ा जा सकता है। बहुत अच्छा जवाब!
सर्गी कोलोडियाज़नी

7

उत्तर देने में मेरे पिछले प्रयासों को अनदेखा करने में विफल रहा, मुझे कुछ ऐसा मिला जो कैप्सलॉक को पूरी तरह से बाईं पारी में बदल देता है। कोई टॉगल नहीं, मुझे लगता है कि यह लगातार है, और यह बहुत आसान है।

सबसे पहले, मैं एक बैकअप बनाने की सलाह दूंगा, इससे पहले कि मैं इसे कैसे बदलूं।

Daud sudo cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

अब जब एक बैकअप है, तो संपादन के लिए आइए।

इस फ़ाइल को रूट के रूप में संपादित करने के लिए अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करें:

/usr/share/X11/xkb/symbols/pc

इस तरह दिखने वाले सेगमेंट को खोजें (यह शीर्ष के पास है, मेरे लिए लाइन 22):

key  <TAB> {    [ Tab,  ISO_Left_Tab    ]   };
key <RTRN> {    [ Return                ]   };

key <CAPS> {    [ Caps_lock             ]   };
key <NMLK> {    [ Num_Lock              ]   };

संपादित करें

key <CAPS>  {   [ Caps_lock             ]   };

होने के लिए

key <CAPS> {    [ Shift_L, Caps_Lock    ]   };

बजाय। ( Caps_Lockबाद में Shift_L,अनावश्यक हो सकता है।)

अपने डिस्प्ले मैनेजर (आमतौर पर sudo service lightdm restart) को फिर से शुरू करें और कैप्सलॉक अब छोड़ दिया जाएगा। ( नोट: मेरी परीक्षण मशीन GNOME का उपयोग करती है, इसलिए मुझे पुनः आरंभ करना पड़ा gdm। हालाँकि, इसने कमबैक TTY में कुछ अजीब झिलमिलाहट पैदा की, और gdmफिर कभी पुनः आरंभ नहीं हुआ। मुझे पूरी तरह से रिबूट करना पड़ा।)

यह एक मैं वास्तव में परीक्षण करने में सक्षम था, और यह पुष्टि कर सकता है कि यह काम करता है।

Ubuntu 13.04 में स्थायी xmodmap से अनुकूलित


धन्यवाद, लेकिन यह न्यूम लॉक के साथ हस्तक्षेप करता है जिसे मैं स्थायी रूप से छोड़ देता हूं। मेरी प्रारंभिक समस्या निवारण में, Caps_lock> Shift_L को बदलते हुए /usr/share/X11/xkb/symbols/capslockभी Num Lock के साथ हस्तक्षेप किया गया। 16.04 के बारे में कुछ अलग है, उदाहरण के लिए न्यूम लॉक लाइट बूट पर रहती थी लेकिन अब यह लाइट डीएमडी लॉगिन पर निकल जाती है। जब मैं आपके समाधान का परीक्षण करता हूं तो यह कैप्स लॉक को शिफ्ट में बदल देता है, लेकिन पहली बार जब मैं कैप्स लॉक करता हूं तो Num Lock टॉगल को बंद कर देता हूं, और मुझे इसे (केवल पहली बार) वापस पाने के लिए Num Lock TWICE को प्रेस करना होगा। विचित्र। वास्तव में हालांकि अब तक मदद की सराहना करते हैं।
टॉम ब्रॉसमैन

शायद मुझे एक नया सवाल पूछने की आवश्यकता है "16.04 पर न्यूम लॉक के साथ कैप्स लॉक रिमैप हस्तक्षेप को कैसे रोकें?" लेकिन मुझे यहाँ मूल कारण खोजना अच्छा लगेगा। या तो यह कीबोर्ड को खोलने और उस पर कुछ भौतिक संशोधन करने का समय है ...
टॉम ब्रॉसमैन

वह अजीब है। यदि आप चलाते हैं तो क्या नॉकलॉक फिर से काम करता है xkbset nullify lock?
द वेंडर

@TomBrossman मुझे नहीं पता कि यह आपके लिए कुछ भी बदलता है, लेकिन यह मेरे लिए काम करता है। बस के बजाय Shift_L, में डाल दिया Shift_L, Caps_Lock। सुनिश्चित करें कि कोष्ठक लाइन अप करें।
द वेंडर

1
@TomBrossman मुझे सूडो का उपयोग करना पसंद है अगर यह खतरनाक नहीं है, तो बस सुनिश्चित करें: पी। जब मैंने फाइल को एडिट किया, तो L फॉर शिफ्ट कैपिटल था और इसलिए कैप्स लॉक वन था। अजीब। NumLock की बात भी अजीब है, क्योंकि यह मेरे लिए ठीक काम करता है। यह पूरी बात विचित्र है: p
TheWanderer

3

14.04 के लिए

एक-लाइनर:

xmodmap -e 'keycode 66=Shift_L'

लेकिन , अप्रत्याशित स्थिति 66में सही कीकोड नहीं है, पहले xevकंसोल और प्रेस में चलाएं CapsLock। तब आपको कुछ इस तरह दिखाई देगा:

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x101, subw 0x0, time 6417361, (340,373), root:(342,393),
    state 0x0, keycode XX (keysym 0x0207, Caps_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

सही कीकोड एक है जो में इंगित किया गया है XX


1
इनाम संदेश को देखो: Xmodmap trick no longer works and xkb handles this now.
वांडरर

अरे बाप रे! क्या यह 16.04 के कारण है? यह मेरे 14.04 पर काम करता है। बाउंटी टिप्पणी निर्दिष्ट नहीं लगती है।

मैं बाउंटी नहीं बना था इसलिए मैं वास्तव में नहीं जानता।
वांडरर

क्षमा करें, यह एक ताज़ा 16.04 इंस्टाल के लिए है। बाएं या दाएं शिफ्ट की चाबी ठीक होगी, मैंने सवाल के लिए बाईं ओर उठाया क्योंकि यह आसन्न है और xevउन्हें अलग-अलग कुंजी के रूप में देखता है।
टॉम ब्रॉसमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.