Xkb कदम के साथ कमांड और कंट्रोल कीज को स्वैप कैसे करें?


9

मैं अपने Apple लॉन्ग एल्युमिनियम कीबोर्ड का उपयोग स्वैप कमांड Cmdऔर कंट्रोल Ctrlकीज के साथ करना चाहता हूं । भरोसेमंद तहर (14.04) का उपयोग करके यह कैसे कदम से कदम है xkb?

नोट: यह के रूप में समाधान मेरे लिए काम नहीं करता है xkbकी जगह xmodmapमें 13.04 या उससे भी पहले


1
यह समाधान मेरे काम नहीं आया। यह सबसे अधिक पुराना है (वास्तव में मुझे पूरा यकीन है, अभी संदर्भ नहीं मिल सकता है)। मैंने पोस्ट करने से पहले इसकी कोशिश की। इसलिए मैंने उबंटू संस्करण को निर्दिष्ट किया।
अलेक्जेंडर सावरकोव

1
@WaldirLeoncio मुझे आशा है कि इससे यह स्पष्ट हो जाता है कि प्रश्न डुप्लिकेट क्यों नहीं है: askubuntu.com/questions/325272/…
अलेक्जेंडर सवकोव

जवाबों:


8

यह उत्तर अधिकतर यहाँ दिए गए उत्तर पर आधारित है । इस प्रश्न को फिर से पूछने और उत्तर देने का कारण अंतिम चरण है, जो पूरी तरह से वर्णित नहीं था। आगे पढ़ने के लिए यहाँxkb देखो , यहाँ , और यहाँ

  1. निम्नलिखित मैपिंग नामक एक फ़ाइल /usr/share/X11/xkb/symbols(इसमें भी हो सकती है /etc/X11/xkb/symbols) बनाएँ altwin2और:

    // Control is SWAPPED with Win-keys 
    partial modifier_keys
    xkb_symbols "cmd_n_ctrl" {
        key <LWIN> {        [       Control_L               ]       };
        key <RWIN> {        [       Control_R               ]       };
        key <LCTL> {       [       Super_L         ]       };
        modifier_map Control { <LWIN>, <RWIN> };
        modifier_map Mod4 { <LCTL> };
    };
    
  2. option = symbolsअनुभाग के तहत निम्नलिखित पंक्ति सम्मिलित करें /usr/share/X11/xkb/rules/evdev(पहली पंक्ति पर चेतावनी की उपेक्षा करें):

    altwin2:cmd_n_ctrl               =       +altwin2(cmd_n_ctrl)
    
  3. /usr/share/X11/xkb/rules/evdev.lstअनुभाग के तहत नया विकल्प जोड़ें option:

    altwin2:cmd_n_ctrl    Win swapped with Ctrl
    
  4. यदि आपको नहीं पता है कि आपकी कीबोर्ड कॉन्फ़िगरेशन फ़ाइल कहाँ है, तो आप इसे dconf- एडिटर का उपयोग करके संपादित कर सकते हैं , "altwin2:cmd_n_ctrl"जो xkb-optionsकि ओआरजी :: सूक्ति :: डेस्कटॉप :: इनपुट-स्रोतों को जोड़कर यहाँ दिखाया गया है । यदि आप जानते हैं कि आपकी कॉन्फ़िगरेशन फ़ाइल कहां है, तो आपको XkbOptionsनीचे दिखाए गए अनुसार नया विकल्प फ़ील्ड में शामिल करना चाहिए :

    Section "InputClass"
            Identifier "keyboard-layout"
            Driver "evdev"
            MatchIsKeyboard "yes"
            Option "XkbLayout" "us, ru, ca, fr"
            Option "XkbOptions" "altwin2:cmd_n_ctrl"
    EndSection
    
  5. lightdmपरिवर्तनों को अपडेट करने के लिए या तो रिबूट या पुनरारंभ करें:

    sudo restart lightdm
    

नोट: यदि कोई परिवर्तन सीधे लेआउट फ़ाइलों में किए जाते हैं, अर्थात विकल्पों का उपयोग नहीं /var/lib/xkb/किया जाता है, तो यहां बताई गई के रूप में कैश्ड फ़ाइलों को हटाने की आवश्यकता होती है ।


2
!option = symbolsअनुभाग होना चाहिए , न कि options = symbols( अनुभाग खोजने के लिए "विकल्प =" के लिए खोज में बिताया गया समय)।
बेन डेविस

यहाँ भी देखें: reddit.com/r/Ubuntu/comments/
बैंकnr8q/remapping_keys

Xkb और xmodmap के साथ अधिकांश चीजों की तरह, काम नहीं करता है, शायद मेरे सिस्टम को दूसरे तरीके से तोड़ दिया है, मैं इस बकवास से बीमार हूं और मैं चाहता हूं कि linux को अपनी मैपिंग के साथ-साथ सबसे महत्वपूर्ण बुनियादी चीज़ों की मैपिंग और बाइंडिंग के साथ मिलनी चाहिए।
Seph

बुरा मत मानिए यह 2014 में लिखा गया था और आधुनिक वितरण पर लागू नहीं होता है।
अलेक्जांद्र सवकोव

3

16.04 में, यहां मुझे काम करने का तरीका मिल गया। Xmodmap सार्वभौमिक रूप से सभी एप्स में काम नहीं करता है, गनोम ट्विक टूल में फंक्शन की कमी होती है, dconf एक कस्टम altwin2 कुंजी स्वैप (यहां मुख्य उत्तर की तरह) संपादित करना विफल रहा है, इसलिए मैं अपने बालों को तब तक फाड़ रहा था जब तक कि मैंने इस पूर्ण, सरल में कई उत्तर नहीं जोड़ दिए। और सुरुचिपूर्ण समाधान:

gksudo gedit /usr/share/X11/xkb/symbols/pc

इसे इसमें बदलें:

default  partial alphanumeric_keys modifier_keys
xkb_symbols "pc105" {

key <ESC>  {    [ Escape        ]   };

// The extra key on many European keyboards:
key <LSGT> {    [ less, greater, bar, brokenbar ] };

// The following keys are common to all layouts.
key <BKSL> {    [ backslash,    bar ]   };
key <SPCE> {    [    space      ]   };

include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"

key <BKSP> {    [ BackSpace, BackSpace  ]   };

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

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

key <LFSH> {    [ Shift_L       ]   };
key <LCTL> {    [ Alt_L     ]   };
key <LWIN> {    [ Super_L       ]   };

key <RTSH> {    [ Shift_R       ]   };
key <RCTL> {    [ Alt_R     ]   };
key <RWIN> {    [ Super_R       ]   };
key <MENU> {    [ Menu          ]   };

// Beginning of modifier mappings.
modifier_map Shift  { Shift_L, Shift_R };
modifier_map Lock   { Caps_Lock };
modifier_map Control{ Control_L, Control_R };
modifier_map Mod2   { Num_Lock };
modifier_map Mod4   { Super_L, Super_R };

// Fake keys for virtual<->real modifiers mapping:
key <LVL3> {    [ ISO_Level3_Shift  ]   };
key <MDSW> {    [ Mode_switch       ]   };
modifier_map Mod5   { <LVL3>, <MDSW> };

key <ALT>  {    [ NoSymbol, Control_L, Control_R    ]   };
//include "altwin(meta_alt)"
key <LALT> {    [ Control_L     ]   };
key <RALT> {    [ Control_R     ]   };
modifier_map Mod1   { Alt_L, Alt_R, Meta_L, Meta_R };

key <META> {    [ NoSymbol, Meta_L, Meta_R  ]   };
modifier_map Mod1   { <META> };

key <SUPR> {    [ NoSymbol, Super_L ]   };
modifier_map Mod4   { <SUPR> };

key <HYPR> {    [ NoSymbol, Hyper_L ]   };
modifier_map Mod4   { <HYPR> };
// End of modifier mappings.

key <OUTP> { [ XF86Display ] };
key <KITG> { [ XF86KbdLightOnOff ] };
key <KIDN> { [ XF86KbdBrightnessDown ] };
key <KIUP> { [ XF86KbdBrightnessUp ] };
};

hidden partial alphanumeric_keys
xkb_symbols "editing" {
key <PRSC> {
type= "PC_ALT_LEVEL2",
symbols[Group1]= [ Print, Sys_Req ]
};
key <SCLK> {    [  Scroll_Lock      ]   };
key <PAUS> {
type= "PC_CONTROL_LEVEL2",
symbols[Group1]= [ Pause, Break ]
};
key  <INS> {    [  Insert       ]   };
key <HOME> {    [  Home         ]   };
key <PGUP> {    [  Prior        ]   };
key <DELE> {    [  Delete       ]   };
key  <END> {    [  End          ]   };
key <PGDN> {    [  Next         ]   };

key   <UP> {    [  Up           ]   };
key <LEFT> {    [  Left         ]   };
key <DOWN> {    [  Down         ]   };
key <RGHT> {    [  Right        ]   };
};

सहेजें।

rm -rf /var/lib/xkb/*

(मुझे नहीं पता कि यह आवश्यक है, लेकिन मैंने ऐसा किया है।)

रीबूट।


उसके लिए धन्यवाद। जब मैं निकट भविष्य में 16.04 में प्रवास करूंगा तो मैं इसका परीक्षण करूंगा।
अलेक्जेंडर सेकोव

बस यह मेरे 16.10 उन्नयन पर इस्तेमाल किया। बहुत अच्छी तरह से काम किया।
टॉम मर्सर

1
अब तक का सबसे सरल जवाब, मेरे फेडोरा पर एक आकर्षण की तरह काम किया। धन्यवाद!
हकुनिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.