बाइंडिंग और पेस्ट करने के लिए बाइंडिंग सुपर + सी सुपर + वी


23

कुछ समय के लिए मैं अपने कीबोर्ड पर Windows Key (Super_L) को किसी अन्य कारण से कॉपी और पेस्ट करने के लिए अपने डेस्कटॉप और मेरे मैकबुक के बीच सुविधा और स्थिरता के लिए बाध्य करने में रुचि रखता हूं।

मैंने सोचा था कि मैं xmodmap के बारे में पढ़ने और निम्नलिखित को निष्पादित करने के बाद करीब था:

$ # re-map Super_L to Mode_switch, the 3rd col in keymap table `xmodmap -pke`
$ xmodmap -e "keycode  133 = Mode_switch"

$ # map Mode_switch+c to copy
$ xmodmap -e "keycode  54 = c C XF86_Copy C"

$ # map Mode_switch+v to paste
$ xmodmap -e "keycode  55 = v V XF86_Paste V"

दुर्भाग्य से, XF86Copy और XF86Paste काम नहीं करते हैं, बिल्कुल नहीं। उन्हें सूचीबद्ध किया गया है /usr/include/X11/XF86keysym.hऔर xevदिखाया गया है कि प्रमुख अनुक्रम X द्वारा XF86Paste और XF86Copy के रूप में व्याख्या की जा रही है, क्या ये प्रतीक वास्तव में काम करते हैं? क्या उनके पास आवेदन स्तर का समर्थन होना चाहिए?

जवाबों:


18

सुपर को Ctrl से बांधना

Windows/Logo/Superएक अन्य Ctrlकुंजी के रूप में कार्य करने के लिए अपनी बाईं कुंजी को बांधने के बारे में क्या ?

आप निम्नलिखित xmodmap कमांड के साथ इसे प्राप्त कर सकते हैं:

remove mod4 = Super_L
keysym Super_L = Control_L
add Control = Control_L

मान लें कि आपने उपरोक्त पंक्तियों को सहेज लिया है क्योंकि super_as_ctrl.xmodmapआप निष्पादन द्वारा प्रभाव का परीक्षण कर सकते हैं

xmodmap super_as_ctrl.xmodmap

परिवर्तन को स्थायी बनाने के लिए (पुनः जीवित / रिबूट जीवित) फ़ाइल का नाम बदलकर .Xmodmapअपने होम फ़ोल्डर में रखें।

(उपरोक्त उबंटू 11.10 लाइव सिस्टम पर परीक्षण किया गया था, लेकिन यह अन्य लिनक्स वितरण के लिए समान होना चाहिए)


अपने टर्मिनल कार्यक्रम के लिए कॉपी / पेस्ट शॉर्टकट समायोजित करना

आपके पास बाध्य Superहोकर Ctrlअब Super-Cलगभग हर जगह कॉपी करने के लिए उपयोग किया जा सकता है। एकमात्र सामान्य अपवाद आपका टर्मिनल प्रोग्राम है। हालाँकि आप वहां के शॉर्टकट्स को फिर से परिभाषित कर सकते हैं।

मुझे पता चला कि यहां तक gnome-terminalकि यह विकल्प अब तक है (मेरे पास तब तक नहीं था जब तक मुझे Ctrl-Shift-Cवैसे भी आदत नहीं है)। यदि आप उस एक का उपयोग करते हैं, Edit / Keyboard Shortcuts...तो मेनू में जाएं और Ctrl-Cकॉपी और Ctrl-Vपेस्ट करने के लिए असाइन करें । konsoleआदि के लिए समान होना चाहिए

और चिंता न करें, आप शॉर्टकट का उपयोग करके किसी प्रोग्राम को समाप्त करने की क्षमता को ढीला नहीं करेंगे। टर्मिनल के लिए कॉपी शॉर्टकट को रिबूट करने के बाद, आप पहले की Ctrl-Shift-Cतरह उपयोग कर सकते हैं Ctrl-C। यदि शिफ्ट को दबाया जाता है या नहीं तो टर्मिनल यहां अंतर नहीं करता है। और कॉपी के लिए शॉर्टकट अब नहीं पकड़ा गया है। वैकल्पिक रूप से एक और शॉर्टकट के लिए टर्मिनेट को रिबेंड करें, जैसा कि माउंटेनएक्स ने अपने जवाब में बताया है।


XF86Copy आदि काम नहीं करते

कॉपी और पेस्ट के लिए प्रमुख प्रतीकों के बारे में: जाहिर है कि उनका कोई प्रभाव नहीं है। मैंने इसे Shift-ScrollLock में कॉपी एक्शन असाइन करके जल्दी से परीक्षण किया (यह अप्रयुक्त था और मैं एक गैर संशोधक के साथ परीक्षण करना चाहता था):

xmodmap -e 'keycode 78 = Scroll_Lock XF86Copy Scroll_Lock'

इसे दबाने का कोई प्रभाव नहीं था, न ही XF86AudioMute के साथ। हालाँकि यह 'a' अक्षर को असाइन करने पर काम करता था। इसलिए मुझे लगता है कि इन XF86 विशेष कुंजी प्रतीकों के साथ एक विशिष्ट समस्या है।


3
दुर्भाग्य से, भले ही मैं सुपर को Ctrl से बांधता हूं, फिर भी मुझे टर्मिनल के अंदर कॉपी और पेस्ट करने के लिए Ctrl / Super + Shift + C का उपयोग करना होगा, जो कि एक प्राथमिक प्रोत्साहन है। धन्यवाद पुष्टि करता है कि XF86 कुंजी काम नहीं करती है।
सोलो

आप किस टर्मिनल प्रोग्राम का उपयोग करते हैं? मैंने एक समाधान जोड़ा जो कम से कम सूक्ति-टर्मिनल के साथ काम करता है। और यह दूसरों के लिए समान होना चाहिए।
zpea

4
Meta + c / v की कॉपी / पेस्ट के लिए शॉर्टकट बदलने के रूप में Meta के लिए बंधन नियंत्रण नहीं है। मैं लिनक्स पर मैको को एक जैसे बनाना चाहता हूं, इसलिए यह जवाब शानदार नहीं है ...
सोनिक

1
Shift + ctrl + c या जो कुछ भी अनाड़ी है, और सिर्फ Super को Ctrl से
रिबाइंड

पहला कदम लगभग वही है जो मैंने सुपर / कमांड को नियंत्रण में करने के लिए किया था। यह अधिकांश चीजों को ठीक करता है- लेकिन मैं अभी भी cmd-c और ctrl-c को अलग-अलग कार्य करना चाहूंगा, भले ही cmd का मतलब कहीं और हो। यकीन नहीं होता कि मैं xmodmap और टर्मिनल-विशिष्ट शॉर्टकट के साथ ऐसा कर सकता हूं।
tedder42

9

यदि आप सुपर + x, Super + c, Super + v जैसे सिक्वेंस के कुछ सिक्वेंस को Ctrl + x, Ctrl + c, Ctrl + v, जैसे उदाहरण के लिए बाँधना चाहते हैं, ताकि ये (जैसा कि ओपी वांछित हो) ये विशेष रूप से सुपर-कुंजी क्रम आपके सिस्टम पर सुपर कुंजी के किसी भी अन्य उपयोग को प्रभावित किए बिना कट और पेस्ट करने के लिए मैप करेगा, यह सिर्फ एक्सकेबी एक्सटेंशन का उपयोग करके संभव है। नीचे दी गई प्रक्रिया चरणों को रेखांकित करती है और दो अलग-अलग शुरुआती कीबोर्ड सेटअपों के लिए विवरण के दो अलग-अलग उदाहरण देती है; उम्मीद है कि आपके सिस्टम के अनुकूल होने के लिए पर्याप्त जानकारी प्रदान करेगा। यह मानता है कि आप अपने सिस्टम पर फ़ाइलें बनाने और संपादित करने में सहज हैं, जैसे सिस्टम स्थानों में शामिल हैं /usr/share/X11/xkb

  1. तय करें कि आप अपने XKB कॉन्फ़िगरेशन ट्री को कहाँ निवास करना चाहते हैं। पहले सिस्टम को खोजें। यह आम तौर पर / usr / share / X11 / xkb में होता है, और मुझे यह पता नहीं है कि अगर यह नहीं है तो इसे कैसे प्राप्त किया जाए; आप बस "xkb" नाम की निर्देशिका के लिए अपना सिस्टम खोज सकते हैं। किसी भी तरह, एक बार जब आप इसे पा लेते हैं, तो आप या तो सिस्टम को एक जगह संशोधित कर सकते हैं, या आप अपनी पसंद की किसी भी निर्देशिका का उपयोग कर सकते हैं। सिस्टम निर्देशिका का उपयोग करने का लाभ यह है कि आप बहुत आसानी से अपने परिवर्तनों को लागू कर सकते हैं, लेकिन दोष यह है कि भविष्य के सिस्टम अपडेट आपके परिवर्तनों को अधिलेखित कर सकते हैं (आपको चेतावनी दी गई है)। किसी भी स्थिति में, सभी फाइलनामों का उल्लेख इस निर्देशिका के सापेक्ष है, जिसे मैं $ XKBLOCAL $ के रूप में आवश्यकता होने पर संदर्भित करूंगा, और सभी आदेश मान लेते हैं कि यह आपकी वर्तमान निर्देशिका है।

  2. वर्तमान x, c, v कुंजी की XKB "टाइप" कुंजी का निर्धारण करें। ऐसा करने का सबसे आसान तरीका कमांड के माध्यम से है xkbcomp -a $DISPLAY - | grep -C 6 c,(ध्यान दें कि अल्पविराम को जानबूझकर पैटर्न में शामिल किया गया है)। मेरे पहले उदाहरण के सेटअप में, यह उत्पादन करता है:

    key <AB02> {
        type= "ALPHABETIC",
        symbols[Group1]= [               x,               X ]
    };
    key <AB03> {
        type= "ALPHABETIC",
        symbols[Group1]= [               c,               C ]
    };
    key <AB04> {
        type= "ALPHABETIC",
        symbols[Group1]= [               v,               V ]
    };
    key <AB05> {
    

    जबकि मेरे अन्य उदाहरण सेटअप में यह पैदा करता है

    key <AB02> {
        type= "FOUR_LEVEL",
        symbols[Group1]= [               x,               X, approxeq,     dead_ogonek ]
    };
    key <AB03> {
        type= "FOUR_LEVEL",
        symbols[Group1]= [               c,               C, ccedilla,        Ccedilla ]
    };
    key <AB04> {
        type= "FOUR_LEVEL",
        symbols[Group1]= [               v,               V, squareroot,           U25CA ]
    };
    key <AB05> {
    

    उतावलापन यह है कि पहले उदाहरण में, संबंधित कुंजी "ALPHABETIC" प्रकार की है जबकि दूसरे उदाहरण में वे "FOUR_LEVEL" प्रकार के हैं। आपके कीबोर्ड सेटअप के आधार पर, आप पा सकते हैं कि वे कुछ अन्य प्रकार के हैं। इस प्रकार, प्रकार को $ TYPE $ के रूप में संदर्भित किया जाएगा, जिसे आपको वास्तविक स्ट्रिंग ALPHABETIC या नीचे दिए गए आदेशों में से बदलना होगा।

  3. $ TYPE $ की परिभाषा खोजें और इसे $ XKBLOCAL $ / प्रकार निर्देशिका में एक नई फ़ाइल में कॉपी करें। यहाँ एक आदेश है कि बस करता है xkbcomp -a $DISPLAY - | grep -z -o 'type "$TYPE$" {[^}]*};' > types/cutpaste:। फ़ाइल "कटपस्ट" का नाम जो मैंने चुना है, वह मनमाना है, जो भी नाम आपको पसंद है उसका उपयोग करें, लेकिन ध्यान दें कि आपको बाद के चरणों में इस फ़ाइल को लगातार संदर्भित करना होगा। पहले सेटअप में, इस फ़ाइल को सामग्री मिलती है

    type "ALPHABETIC" {
        modifiers= Shift+Lock;
        map[Shift]= Level2;
        map[Lock]= Level2;
        level_name[Level1]= "Base";
        level_name[Level2]= "Caps";
    };
    

    और दूसरे उदाहरण में यह सामग्री मिलती है

    type "FOUR_LEVEL" {
        modifiers= Shift+LevelThree;
        map[Shift]= Level2;
        map[LevelThree]= Level3;
        map[Shift+LevelThree]= Level4;
        level_name[Level1]= "Base";
        level_name[Level2]= "Shift";
        level_name[Level3]= "Alt Base";
        level_name[Level4]= "Shift Alt";
    };
    
  4. फ़ाइल प्रकारों / कटस्टेस को दो चीजों को संपादित करें: एक प्रस्तावना और पोस्टमबल जोड़ें जो इसे एक उचित XKB क्लॉज बनाता है, और सुपर के अनुरूप संशोधक द्वारा उत्पादित एक और स्तर जोड़ने के लिए टाइप नाम और प्रकार की परिभाषा को बदल देता है। आपको यह जांचना चाहिए कि आपके सिस्टम में वह संशोधक क्या है, यह संभवतः नीचे के रूप में इस्तेमाल किया गया mod4 है। आवश्यक संशोधनों को दो उदाहरणों के अंतिम संस्करणों से स्पष्ट होना चाहिए जैसे कि / कटपस्ट, अर्थात्:

    default partial xkb_types "addsuper" {
        type "ALPHABETIC_SUPER" {
            modifiers= Shift+Lock+Mod4;
            map[Shift]= Level2;
            map[Lock]= Level2;
            map[Mod4]= Level3;
            map[Shift+Mod4]= Level3;
            map[Lock+Mod4]= Level3;
            level_name[Level1]= "Base";
            level_name[Level2]= "Caps";
            level_name[Level3]= "With Super";
        };
    };
    

    तथा

    default partial xkb_types "addsuper" {
        type "FOUR_LEVEL_SUPER" {
            modifiers= Shift+LevelThree+Mod4;
            map[Shift]= Level2;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[Mod4]= Level5;
            map[Shift+Mod4] = Level5;
            map[LevelThree+Mod4] = Level5;
            map[Shift+LevelThree+Mod4] = Level5;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "Alt Base";
            level_name[Level4]= "Shift Alt";
            level_name[Level5]= "With Super"';
       };
    };
    
  5. मुख्य प्रतीक परिभाषाओं की प्रतिलिपि बनाएँ जो दूसरे चरण में grep द्वारा एक दूसरी नई फ़ाइल प्रतीकों / कटपीस में बनाई गई थीं, और समान प्रस्तावना और पोस्टमबल जोड़ें, और नए प्रकारों का उपयोग करने के लिए परिभाषाओं को संशोधित करें और इच्छित कुंजी को संभालने के लिए परिभाषा में क्रियाओं को जोड़ें। सुपर संस्करणों द्वारा उत्पादित। हमारे दो उदाहरणों में इसके परिणाम हैं:

    default partial xkb_symbols "superversions" {
        replace key <AB02> {
            type[Group1]= "ALPHABETIC_SUPER",
            symbols[Group1]= [               x,               X, NoSymbol ],
            actions[Group1]= [      NoAction(),      NoAction(), RedirectKey(key=<LatX>,mods=Control,clearmods=Super)]
        };
        replace key <AB03> {
            type[Group1]= "ALPHABETIC_SUPER",
            symbols[Group1]= [               c,               C, NoSymbol ],
            actions[Group1]= [      NoAction(),      NoAction(), RedirectKey(key=<LatC>,mods=Control,clearmods=Super)]
        };
        replace key <AB04> {
            type[Group1]= "ALPHABETIC_SUPER",
            symbols[Group1]= [               v,               V, NoSymbol ],
            actions[Group1]= [      NoAction(),      NoAction(), RedirectKey(key=<LatV>,mods=Control,clearmods=Super)]
        };
    };
    

    तथा

    default partial xkb_symbols "superversions" {
        replace key <AB02> { 
            type[Group1]= "FOUR_LEVEL_SUPER",
            symbols[Group1]= [x,X,approxeq,dead_ogonek,NoSymbol],
            actions[Group1]= [NoAction(),NoAction(),NoAction(),NoAction(),RedirectKey(key=<LatX>,mods=Control,clearmods=Super)]
        };
        replace key <AB03> { 
            type[Group1]= "FOUR_LEVEL_SUPER",
            symbols[Group1]= [c,C,ccedilla,Ccedilla,NoSymbol],
            actions[Group1]= [NoAction(),NoAction(),NoAction(),NoAction(),RedirectKey(key=<LatC>,mods=Control,clearmods=Super)]
        };
        replace key <AB04> { 
            type[Group1]= "FOUR_LEVEL_SUPER",
            symbols[Group1]= [v,V,squareroot,U25CA,NoSymbol],
            actions[Group1]= [NoAction(),NoAction(),NoAction(),NoAction(),RedirectKey(key=<LatV>,mods=Control,clearmods=Super)]
        };
    };
    

    ध्यान दें कि दूसरे उदाहरण में मैंने कुछ (गैर-महत्वपूर्ण) व्हाट्सएप को निचोड़ा और साथ ही लाइन की लंबाई को थोड़ा नियंत्रण में रखा।

  6. XKB वर्तमान में उपयोग किए जाने वाले नियमों के नाम का पता लगाएं। यह आसान है, यह के परिणाम में दिखाया गया है setxkbmap -query। मेरे मामले में, यह "एवदेव" था।

  7. $ XKBLOCAL $ / नियमों / evdev के नियमों / evdev (या जो भी आपके नियमों का नाम है) के सिस्टम संस्करण को कॉपी करें और हमारे द्वारा बनाए गए विकल्पों की ओर इशारा करते हुए नियम जोड़ें। आपके पास यहां दो विकल्प हैं: आप सभी एेडदेव या कीबोर्ड मॉडल, लेआउट, वेरिएंट, और विकल्प (ओं) का उल्लेख करने वाले भागों को कॉपी कर सकते हैं, जो आप वास्तव में उपयोग कर रहे हैं। बेशक, यदि आप सिस्टम फ़ाइलों को जगह में संशोधित कर रहे हैं, तो आपको किसी भी कॉपी करने, बस संपादन करने की आवश्यकता नहीं है।

    इस मामले में, जो जोड़ा जाता है वह प्रारंभिक कीबोर्ड सेटअप की परवाह किए बिना समान है, इसलिए इसका केवल एक उदाहरण है। आप उस नियम फ़ाइल के अनुभाग को खोजते हैं जो उस खंड के साथ शुरू होती है ! option = symbolsऔर cutpaste:super = +cutpasteउस खंड में एक पंक्ति जोड़ देती है , और आप उस नियम फ़ाइल के अनुभाग को भी ढूंढते हैं जो उस खंड के साथ शुरू होती है ! option = typesऔर साथ cutpaste:super = +cutpasteही उस खंड के लिए भी है।

  8. Evdev.lst के सिस्टम संस्करण को कॉपी करें और अपने नए विकल्प के लिए एक पंक्ति जोड़ें। ध्यान दें कि इस फ़ाइल का नाम केवल .lst संलग्न के साथ नियम फ़ाइल के नाम से मेल खाता है। पिछले चरण की तरह, आप या तो पूरी फ़ाइल की प्रतिलिपि बना सकते हैं या मॉडल, लेआउट, संस्करण, और आपके द्वारा उपयोग किए जा रहे विकल्प द्वारा निर्दिष्ट भाग को देख सकते हैं। आपको बस इस फाइल के सेक्शन को ढूंढना है जो इसके साथ शुरू होता है ! optionऔर इस तरह एक लाइन जोड़ता है: cutpaste:super Add super equivalents of cut and paste operationsउस सेक्शन में।

  9. ठीक है, अब सभी कॉन्फ़िगरेशन फ़ाइलें जगह में हैं। यदि आपने सिस्टम फ़ाइलों को संशोधित किया है, तो अब आप अपने नए विकल्प को लागू कर सकते हैं setxkbmap -option cutpaste:super। दूसरी ओर, यदि आपने नहीं किया है, तो आपको setxkbmap को यह बताना होगा कि आपकी $ XKBLOCAL $ डायरेक्टरी कहां है। क्या बुरा है, सर्वर को यह नहीं पता है कि वह निर्देशिका कहां है, और या तो setxkbmap है (या शायद नहीं, क्योंकि अंततः सर्वर किसी अन्य मशीन पर चल सकता है) इसे बताएं। तो आपको setxkbmap के आउटपुट को xkbcomp पर पाइप करना होगा, और उस कमांड को भी बताना होगा जहाँ आपकी $ XKBLOCAL डायरेक्टरी है। पूर्ण कमांड लाइन इसलिए है setxkbmap -I$XKBLOCAL$ -option cutpaste:super -print | xkbcomp -I$XKBLOCAL - $DISPLAY

उम्मीद है कि यह किसी के लिए मदद / रुचि है, क्योंकि अच्छा निश्चित XKB प्रलेखन / संदर्भ दुर्लभ है। एक बहुत ही उपयोगी संदर्भ था http://madduck.net/docs/extending-xkb/


बहुत बढ़िया जवाब। यह मेरे लिए 17.10 में काम करता था
दिसंबर को ब्लॉकचोप

यह मेरे लिए Ubuntu 18.04 पर काम नहीं किया। नतीजा बस इतना था कि 'c', 'x' और 'v' कीज़ अब काम नहीं करतीं। मैं उनके साथ फिर से काम कर पाने में सक्षम था setxkbmap -option। मेरा स्थानीय सेटअप कुछ Group2, ग्रूव प्रतीकों के अपवाद के साथ FOUR_LEVEL उदाहरण के लगभग समान था, जिसे मैंने आंशिक प्रतीकों फ़ाइल से छोड़ दिया था, इसलिए मेरी फ़ाइल उदाहरणों के समान दिखी।
जिनको

2

यहाँ मैं क्या कर रहा हूँ। यह अंतिम समाधान नहीं है, लेकिन मैंने अंतिम समाधान प्राप्त करने की कोशिश की और बहुत प्रयास के बाद भी वहां नहीं पहुंच पाया। इसलिए मैंने कुछ ऐसी चीज़ों के लिए समझौता किया जो सरल है और जो मुझे चाहिए उसकी 90% से अधिक के लिए काम करती है। मैं इसे किसी भी कंप्यूटर पर (या किसी भी नए लिनक्स इंस्टाल) पर मिनटों में लागू कर सकता हूं। यह साधारण है।

X टर्मिनल एप्लिकेशन में, शॉर्टकट प्राथमिकताएँ सेट करें। मैंने यह Gnome और KDE दोनों में किया है। उदाहरण के लिए, कंसोल में, मेनू> सेटिंग> कॉन्फ़िगर शॉर्टकट पर जाएं। ग्नोम एक्स टर्मिनल में एक समान मेनू है। बस शॉर्टकट का चयन करें (उदाहरण के लिए, "कॉपी") और वांछित कुंजी अनुक्रम दर्ज करें।

टर्मिनल कमांड के साथ टर्मिनल कॉपी और पेस्ट शॉर्टकट के टकराव के मामले में, इसके लिए एक आसान निर्धारण भी है। उदाहरण के लिए, क्या होगा यदि कोई प्रतिलिपि के लिए CTRL-C का उपयोग करना चाहता है (इसलिए X टर्मिनल CUA मानक के अनुरूप है)?

उस स्थिति में, आप आसानी से (.bashrc) में स्टेंट की बाइंडिंग बदल सकते हैं। प्रतिलिपि उदाहरण के लिए CTRL-C जारी रखते हुए, कहते हैं कि अब आप चाहते हैं कि कुंजी कुंजी CTRL-b ("विराम") हो। यह पूरा करता है:

echo "stty intr \^b" >> ~/.bashrc 

तब स्रोत .bashrc

संपूर्ण समाधान शॉर्टकट के रूप में एक्स टर्मिनल्स सेटिंग्स का उपयोग करने के रूप में सरल है और फिर, वैकल्पिक रूप से, एक-पंक्ति इको कमांड के साथ स्टाइट के साथ संघर्षों को हल करना है। मृत सरल और लगभग हर चीज को कवर करता है जो मुझे चाहिए।


0

संभवतः विंडोज की कुंजी संशोधक कुंजी है। इसे चलाएं और पुनः प्रयास करें:

xmodmap -e 'remove Mod4 = Super_L'

धन्यवाद, लेकिन चाल नहीं करता है। मुझे पता है कि मैपिंग काम करता है क्योंकि Xev XF86 घटनाओं की रिपोर्ट करता है।
सोलो

मेरी पहली पोस्ट (निष्पादित करने xmodmap -e 'remove Mod1 = Meta_L'और अपने आदेश की कोशिश करने के बाद) मेरे लिए ठीक काम किया।
ussr

1
@solo और काम करने या न करने के बारे में, हर डेस्कटॉप वातावरण या अनुप्रयोगों का समर्थन नहीं करने पर विचार करें। यह पता लगाने के लिए कि यह वास्तव में काम करता है या नहीं, उदाहरण के लिए फ़ायरफ़ॉक्स पर उनका उपयोग करें। यह X कुंजी बाइंडिंग (सुनता है) का समर्थन करता है।
ussr

0

मैंने ग्लेन व्हिटनी ने जो कुछ कहा था, उसे लिया है और उस ज्ञान को शब्द-बदतर या पाठ हेरफेर व्यवहार को macOS से एक कस्टम कीमैप में मैप करने के लिए उपयोग करने में कामयाब रहा।

मैंने पहले से ही उस विशिष्ट समाधान को शामिल किए बिना Ctrl बनाम सुपर कॉपी और पेस्ट मुद्दे को हल कर दिया था, लेकिन जैसा मैंने कहा कि यह अन्य चीजों के लिए बहुत उपयोगी था। मैंने xmodmap जैसी चीजों से भी परहेज किया है क्योंकि मैं कुछ बिंदु पर वेलैंड का पूरी तरह से समर्थन करना चाहता हूं। Kinto देशी xkb का उपयोग करता है और यह टर्मिनल व्यवहार की तरह अपेक्षित macOS का सम्मान करता है।

https://github.com/rbreaves/kinto

https://medium.com/@benreaves/kinto-a-mac-inspired-keyboard-mapping-for-linux-58f731817c0

यहाँ एक जिस्ट भी है, यदि आप केवल यह देखना चाहते हैं कि यह सब किसके दिल में है, तो यह आपके कीमैप को वैकल्पिक रूप से आवश्यक नहीं करेगा। Gist में कस्टम xkb कीमैप फाइलें भी शामिल नहीं हैं जो macOS स्टाइल कर्सर / शब्द-वार जोड़तोड़ करते हैं जो Cmd और एरो कीज़ का उपयोग करते हैं।

https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb

सामग्री दें

# permanent apple keyboard keyswap
echo "options hid_apple swap_opt_cmd=1" | sudo tee -a /etc/modprobe.d/hid_apple.conf
update-initramfs -u -k all

# Temporary & instant apple keyboard keyswap
echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd

# Windows and Mac keyboards - GUI (Physical Alt is Ctrl, Physical Super is Alt, Physical Ctrl is Super)
setxkbmap -option;setxkbmap -option altwin:ctrl_alt_win

# Windows and Mac keyboards - Terminal Apps (Physical Alt is Super, Physical Super is Alt, Physical Ctrl is Ctrl)
setxkbmap -option;setxkbmap -option altwin:swap_alt_win

# If the hid_apple driver is not loaded for Apple keyboards, which can be found out
# by the lsmod command then the above setxkbmap commands will not work
# Use the following commands for Apple style keyboards without an hid_apple driver
#
# Note: this could also apply to hid_apple driver as well 
# if this option is set to 0 inside swap_opt_cmd
#
lsmod | grep hid_apple

# Apple keyboard without hid_apple - GUI
setxkbmap -option;setxkbmap -option ctrl:swap_lwin_lctl,ctrl:swap_rwin_rctl

# Apple keyboard without hid_apple - Terminal
setxkbmap -option;setxkbmap -option altwin:alt_super_win

#
# If you want a systemd service and bash script to help toggle between
# GUI and Terminal applications then look at project Kinto.
# https://github.com/rbreaves/kinto
#
# Note: The above may not work for Chromebooks running Linux, please look
# at project Kinto for that.
#
# If anyone would like to contribute to the project then please do!
#
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.