नोट : Wayland xkb का उपयोग करता है, लेकिन कई xTools ने ठीक से काम करना बंद कर दिया है (उदाहरण के लिए xdotool)
नोट : यह एक गैर-संपूर्ण ट्यूटोरियल है। यह एक नया आठ स्तरीय लेआउट बनाने और वाक्य रचना को समझने के लिए एक व्यक्ति के लिए सबसे उपयोगी है।
नोट: एक त्वरित और गंदा समाधान प्रदान किया जाता है। इसमें एक स्प्रैडशीट शामिल है जो स्वचालित रूप से आपके द्वारा आवश्यक कोड उत्पन्न करता है।
XKB निर्देशिका को समझना
cd /usr/share/X11/xkb/ && ls
- types- एक्टिव मॉडिफायर द्वारा कैसे उत्पादित कीज को बदला जाता है । (बदलाव, नियंत्रण, Alt ~)
महत्वपूर्ण यदि आप संशोधक कुंजी को अनुकूलित करना चाहते हैं।
- geometry- कीबोर्ड ग्राफिक्स खींचने के लिए उपयोग किया जाता है।
यदि आप कीबोर्ड हार्डवेयर का एक गैर मानक टुकड़ा डिजाइन कर रहे हैं तो महत्वपूर्ण है।
- rules- अपने वर्तमान सेटअप के लिए उपयुक्त कॉन्फ़िगरेशन ला रहा है।
आपको इसे परिभाषित करने की आवश्यकता होगी
- keycodes- कीबोर्ड हार्डवेयर के लिए कीकोड का दुभाषिया।
उदाहरण: मैकिन्टोश कीबोर्ड स्पेसबार को समझते हैं 57
। हम इसे हालांकि लिखते हैं<SPCE>
- symbols- कौन सा मान किसकोड को सौंपा गया है ।
यह वह जगह है जहां हम अपने कस्टम लेआउट को परिभाषित करेंगे।
- compat- संगतता के लिए लघु ।
संशोधक
का आंतरिक व्यवहार (Shift, Control, Alt ...)
कार्यप्रवाह
keycodes > symbols > compat
मैं केवल स्पर्श करता हूं symbols
: त्वरित और गंदा समाधान के लिए नीचे देखें ।
सिंबल मैप्स
/symbols/us इस निर्देशिका की कोई भी फ़ाइल समान संरचना का अनुसरण करती है।
partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "US/ASCII";
key <TLDE> { [ quoteleft, asciitilde ] };
key <AE01> { [ 1, exclam ] };
modifier_map Shift { Shift_L, Shift_R };
};
partial - पूरा कीबोर्ड मैप नहीं
alphanumeric_keysकीबोर्ड का अनुभाग मैप किया जा रहा है। एकाधिक का उपयोग किया जा सकता है
नोट: यदि कोई *_keys
निर्दिष्ट नहीं है, तो एक पूर्ण कीबोर्ड मान लिया गया है।
"basic" - प्रतीक मानचित्र का नाम
name[Group1]= "US/ASCII";इस कीबोर्ड समूह को एक विशिष्ट नाम देता है ।
modifier_mapसंशोधक कुंजियों के संपादन के लिए । (ctrl, shift, alt ~)
Shift { Shift_L, Shift_R };आमतौर पर neccessary नहीं है। यह दोनों बदलावों को शिफ्ट संशोधक, उर्फ स्तर 2 में मैप करता है।
key <TLDE> टिल्ड की - आमतौर पर टैब के ऊपर बायीं ओर ऊपर की ओर दाईं ओर होता है
key <AE01> चित्रण - तीन भागों से बना,AE01
A= अल्फ़ान्यूमेरिक कुंजी ब्लॉक।
KP= कीपैड
FK= फ़ंक्शन कुंजी
E= कीबोर्ड पर पंक्ति।
Space Key= Aपंक्ति
Shift Key= Bपंक्ति
Caps Lock= Cपंक्ति
Tab Key= Dपंक्ति
01= पंक्ति पर कुंजी की स्थिति।
AE01= 1
AB02= X
AC05=G
[+ ]- सी भाषाओं में; स्क्वायर कोष्ठक एक सूची को दर्शाता है, जिसके द्वारा आइटम विभाजित होते हैं ,। सूची की लंबाई स्तरों की मात्रा निर्धारित करती है। उदाहरण के लिए:
key<AE01> { [ Level 1 , Level 2 , Level 3 , Level 4 , Level 5 ] }
आमतौर पर, स्तर निम्न कुंजी के साथ निरूपित करते हैं:
- कोई संशोधक कुंजी नहीं
- Shift
- Alt Gr
- Shift + Alt Gr
- Custom - स्तर 4 से परे कुछ भी देखने के लिए अनजाने में।
संक्षेप में, यदि आप शिफ्ट + ऊंचाई पर जाने के लिए एक कुंजी को मैप करना चाहते हैं, तो आपकी सूची कम से कम चार आइटम लंबी होनी चाहिए।
चेतावनी - आम त्रुटियां
या तो इन पंक्तियों के कारण एक महत्वपूर्ण त्रुटि होगी, और एक उपयोगी कीबोर्ड के बिना आपको छोड़ देगा:
key<AE01> { [ Backspace ] }
key<AE02> { [ a, b, , C ] }
Backspace
होना चाहिए BackSpace
: वर्तनी पर अतिरिक्त सावधानी बरतें।
- एक खाली प्रविष्टि होनी चाहिए
VoidSymbol
।
सबसे अच्छा सुरक्षा उपाय!
अपनी फ़ाइल का बैकअप लें जिसे आप संपादित कर रहे हैं:
sudo /bin/cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/usBACKUP
एक स्क्रिप्ट बनाएं जिसे आप रूट पासवर्ड के बिना चला सकते हैं
कुछ इस तरह:
#!/bin/bash
sudo /bin/cp -rf /usr/share/X11/xkb/symbols/usBACKUP /usr/share/X11/xkb/symbols/us
यदि कुछ भी गलत होता है, तो कोड की उस पंक्ति को चलाने के लिए अपने माउस का उपयोग करें (बैश स्क्रिप्ट में जो आपने sudoers को अनुमति दी है। याद रखें कि chmod +x
निष्पादन योग्य के रूप में चलने की अनुमति दें।)
एक टूटी हुई प्रणाली को पुनर्प्राप्त करने के लिए बैकअप रणनीतियों
- चेतावनी: कीबोर्ड और ऑन-स्क्रीन कीबोर्ड थोड़ी सी त्रुटि के साथ काम करना बंद कर देगा ।
- माउस काम करेगा । टाइपिंग वर्णों को हाइलाइट करके, उन्हें मध्य क्लिक का उपयोग करके पेस्ट किया जा सकता है। बैश में, आप
return
एक लाइनब्रेक चिपकाकर (एंटर कर सकते हैं )।
- कीबोर्ड रूट शेल में रिकवरी मोड में काम करेगा । (बैश से पहुँचा)
- आप फ़ाइलों को ठीक करने के लिए हमेशा एक लाइव वातावरण का उपयोग कर सकते हैं।
त्वरित और गंदा समाधान
- यहां जाओ
- फ़ाइल> एक प्रतिलिपि बनाएँ
- Mapper शीट वह है जहां आप अपने लेआउट को परिभाषित करते हैं।
- सिंगल कैरेक्टर एंट्रीज़ को प्रोग्राम द्वारा समझे गए कोड में अनुवादित किया जाता है।
( !
बन जाता है U0021
)। यूनिकोड समर्थित!
- स्ट्रिंग्स का अनुवाद नहीं किया जाता है और जैसा माना जाता है। यह सुनिश्चित करें कि कोई गोलाबारी या मामले में त्रुटियां नहीं हैं!
- खाली वर्ग स्वचालित रूप से भर जाते हैं
VoidSymbol
।
- XKB-Sort शीट में प्रमुख समूह हैं, उदाहरण के लिए:
key <AE01> { [U0021, U0021, U0021, U0021, U0021, U0021, U0021, U0021] };
key <AE02> { [U005B, U005B, U005B, U005B, U005B, U005B, U005B, U005B] };
key <AE03> { [U005D, U005D, U005D, U005D, U005D, U005D, U005D, U005D] };
key <AE04> { [U0022, U0022, U0022, U0022, U0022, U0022, U0022, U0022] };
key <AE05> { [U002A, U002A, U002A, U002A, U002A, U002A, U002A, U002A] };
key <AE06> { [U007B, U007B, U007B, U007B, U007B, U007B, U007B, U007B] };
key <AE07> { [U007D, U007D, U007D, U007D, U007D, U007D, U007D, U007D] };
key <AE08> { [U002F, U002F, U002F, U002F, U002F, U002F, U002F, U002F] };
key <AE09> { [U0027, U0027, U0037, U0027, U0027, U0027, U0027, U0027] };
key <AE10> { [U0029, U0029, U0038, U0029, U0029, U0029, U0029, U0029] };
key <AE11> { [U0028, U0028, U0039, U0028, U0028, U0028, U0028, U0028] };
key <AE12> { [U005C, U005C, U005C, U005C, U005C, U005C, U005C, U005C] };
इसे सभी 8 स्तरों पर बदला जाता है:
1234567890-= // Physical Keys
![]"*{}/')(\ // Changed to these characters
- XKBटैब में भी लाइनें हैं। हर दूसरे टैब को अनदेखा किया जा सकता है (इसका कोड)।
sudo vim /usr/share/X11/xkb/symbols/us
- एक लेआउट सामग्री बदलें। एक आप का उपयोग अभ्यस्त चुनें। उदाहरण के लिए: मैंने संरचना को बरकरार रखते हुए कोलमैक प्रविष्टि को बदल दिया और चाबियों को बदल दिया।
ब्याज की लाइनें:
key.type[group1]="EIGHT_LEVEL"; // Enables 8 levels
modifier_map Control { <LFSH>, <RTSH> }; // Maps ctrl`s to shift keys.
key { [Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R] };
key { [Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L] };
include "level3(lalt_switch)" // Hold Left Alt for Level 3
include "level5(ralt_switch)" // Hold Right Alt for Level 5