रिमैपिंग कैप्स लॉक के साथ xmodmap काम नहीं करता है


10

जब मैं प्रोग्राम करता हूं तो मुझे इन चाबियों को स्वैप करना पसंद है:

EscTab CtrlCapsLock

में ~/.xmodmap, मैंने इन री-मैपिंग को निर्दिष्ट किया है:

keycode 66 = Control_L
keycode 37 = Caps_Lock
keycode 23 = Escape
keycode 9 = Tab

Escapeऔर Tabकुंजी अदला-बदली, कोई समस्या नहीं है, लेकिन बजाय Caps_Lockऔर Control_Lअदला-बदली, दोनों उन कुंजियों को हो जाता है Caps_Lock

मैं जो कुछ भी करने की कोशिश करता हूं, नियंत्रण कुंजी Caps_Lock(कीकोड 66) को नहीं सौंपी जाती है । यदि मैं छोड़ देता हूं keycode 66 =, तो कुंजी अन-असाइन किया गया है, लेकिन जब मैं असाइन करता हूं Control_Lया Control_R, यह सिर्फ काम नहीं करता है। लेकिन, अगर मैं कुछ अन्य कुंजी असाइन करता हूं, उदाहरण के लिए keycode 66 = Tab, इसे असाइन किया गया है, तो कोई समस्या नहीं है।

इसके xmodmap की तरह ही कैप्स लॉक और कंट्रोल कीज को स्वैप नहीं किया जाना चाहिए। वास्तव में निराशा होती है। कोई मदद / संकेत वास्तव में मददगार होगा।

पुनश्च: मैं आर्चलिनक्स का उपयोग कर रहा हूं।

जवाबों:


8

Xmodmap (1) आदमी पेज वास्तव में इस के लिए एक उदाहरण है

   !
   ! Swap Caps_Lock and Control_L
   !
   remove Lock = Caps_Lock
   remove Control = Control_L
   keysym Control_L = Caps_Lock
   keysym Caps_Lock = Control_L
   add Lock = Caps_Lock
   add Control = Control_L

लेकिन अगर आप इसे शुरू करने के तरीके को खत्म करना चाहते हैं, तो मुझे लगता है कि आपको कम से कम removeऔर addलाइनों को जोड़ने की जरूरत है

   remove Lock = Caps_Lock
   remove Control = Control_L
   keycode 37 = Caps_Lock
   keycode 66 = Control_L
   add Lock = Caps_Lock
   add Control = Control_L

मैं अनुमान लगा रहा हूं कि इस अनुच्छेद पर आधारित मामला है

   add MODIFIERNAME = KEYSYMNAME ...
           This adds all keys containing the given keysyms  to  the  indi‐
           cated  modifier  map.  The keysym names are evaluated after all
           input expressions are read to make it easy to write expressions
           to swap keys (see the EXAMPLES section).

जो इसे ध्वनि परिवर्तन की तरह बनाता है (बदलाव, नियंत्रण, आदि) तब तक लागू नहीं होता जब तक कि आप उसे भी नहीं चलाते।

(और तार्किक रूप से उसी के साथ remove)


मैंने मैनपेज पढ़ा, और उदाहरण के बाद Caps_Lock और Control_L कुंजियों को फिर से सौंपा। लेकिन, मैं उत्सुक था कि ओपी में बताए गए तरीके को फिर से मैप करने से काम नहीं चलता। यह एक बग या कुछ है?
अबी जेम्स

लगता है कि यह काम करने का तरीका मात्र है। देखिये मेरा अपडेटेड जवाब।
मिकेल

4

धीरे-धीरे संबंधित उत्तर: मैं बाएं नियंत्रण के लिए कैप लॉक कुंजी को फिर से तैयार करना चाहता था, जिससे वास्तविक बाएं नियंत्रण अछूता रह गया। Xmodmap मैन पेज भी समाधान प्रदान करता है:

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