"1। तो 5 वें स्तर का संशोधक क्या करता है? ”
यह पाँचवाँ स्तर चुनता है। दूसरा स्तर संशोधक (सिर्फ नियमित बदलाव) दूसरा स्तर चुनता है, और तीसरा स्तर तीसरा स्तर चुनता है।
कारण यह है कि 5 वें स्तर का संशोधक चौथे स्तर के बजाय पांचवें स्तर को चुनता है (ठीक तीसरे स्तर के संशोधक के बाद) यह है कि इन तीन संशोधकों को अलग-अलग तरीकों से जोड़कर आठ अलग-अलग स्तर का चयन किया जा सकता है (इसमें किसी भी संशोधक का उपयोग नहीं करना शामिल है) जो बिना किसी ऐसे संशोधक के बस एक कुंजी दबा रहा है)। 2 = 3 = 8 के बाद से आठ संयोजन हैं। पहले दो संशोधक के लिए चार संयोजन हैं:
- कोई संशोधक (स्तर 1)
- दूसरा स्तर संशोधक, उर्फ़ शिफ्ट (स्तर 2)
- तीसरा स्तर संशोधक (स्तर 3)
- 2 + 3 संशोधक (स्तर 4)
तीसरे संशोधक (5 वें स्तर) को जोड़ने से चार और स्तर जुड़ जाते हैं।
"2। मैं इसे कैसे सेट कर सकता हूं ताकि मुझे एक ही कुंजी से 5 या छह अलग-अलग वर्ण मिल सकें (शिफ्ट द्वारा संशोधित, Alt Grऔर Right
Ctrlउदाहरण के लिए)? "
सबसे पहले आपको एक लेआउट की आवश्यकता है जो प्रति कुंजी पाँच या अधिक वर्णों का उपयोग करता है। आप एक मौजूदा लेआउट का चयन कर सकते हैं, लेकिन यदि आप अभी आपके द्वारा उपयोग किए जा रहे लेआउट में अधिक स्तर जोड़ना चाहते हैं, तो यह इष्टतम नहीं हो सकता है। उदाहरण के लिए, नियो कीबोर्ड लेआउट (, 1) है, लेकिन यह "जर्मन भाषा के लिए अनुकूलित" है, इसलिए अन्य अंग्रेजी बोलने वालों के लिए यह बहुत अच्छा नहीं है।
फिर भी, यह निर्देश हो सकता है कि नियो ने लेवल 5 संशोधक के लिए किन कुंजियों को चुना है।
नियो जाहिरा तौर पर "Mod4" के लिए स्तर 5 संशोधक कहता है। तो जैसा कि आप देख सकते हैं कि यह बाईं पारी की कुंजी ( LSGT
) और दाईं ओर की कुंजी / AltGr
कुंजी के दाईं ओर कुंजी का उपयोग करता है। यह एक यूरोपीय कीबोर्ड (105 कुंजियों) पर है, जिसकी तुलना में अमेरिकी कीबोर्ड (104 कुंजी) में एक संकीर्ण बाएं बदलाव और लंबी और पतली वापसी कुंजी है। एक कीबोर्ड लेआउट के लिए, जो कि यूएस कीबोर्ड पर आधारित है, किसी को अन्य कुंजियों को चुनना या पसंद करना पड़ सकता है।
एक स्तर 5 संशोधक कुंजी चुनना
सुपर के जवाब में वह एक्समोडमैप का उपयोग करना चुनता है। आजकल Xxodmap पर Setxkbmap जैसे टूल की सिफारिश की जाती है। Xkb लेवल 5 संशोधक चुनने जैसी चीजों के लिए कई पूर्वनिर्धारित विकल्पों के साथ आता है। यदि आप मैन xkeyboard-config से परामर्श
करें और खोज करें lv5
तो आपको ये विकल्प मिलेंगे:
┌──────────────────────┬───────────────────────────────────────────────────┐
│ Option │ Description │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:lsgt_switch_lock │ <Less/Greater> chooses 5th level; acts as onetime │
│ │ lock when pressed together with another 5th level │
│ │ chooser │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:ralt_switch_lock │ Right Alt chooses 5th level; acts as onetime lock │
│ │ when pressed together with another 5th level │
│ │ chooser │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:lwin_switch_lock │ Left Win chooses 5th level; acts as onetime lock │
│ │ when pressed together with another 5th level │
│ │ chooser │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:rwin_switch_lock │ Right Win chooses 5th level; acts as onetime lock │
│ │ when pressed together with another 5th level │
│ │ chooser │
└──────────────────────┴───────────────────────────────────────────────────┘
तो जो विकल्प प्रलेखित किए गए हैं वे हैं LSGT
कुंजी, दाईं ओर की कुंजी, दाईं ओर की कुंजी और बाईं ओर की विंडोज कुंजी। जैसा कि हमने देखा, नियो पहले दो विकल्पों का उपयोग करता है।
कहो कि आप lv5:ralt_switch_lock
कुछ लेआउट के साथ विकल्प का उपयोग करना चाहते हैं । यह कमांड us
इस स्तर 5 संशोधक कुंजी के साथ लेआउट सेट करता है :
setxkbmap -option "lv5:ralt_switch_lock" us
तो किसी भी विकल्प के लिए जो दस्तावेज़ में हैं man xkeyboard-config
, उस का उपयोग तर्क के रूप में करें -option
जब Setxkbmap का उपयोग करें।
यदि ये विकल्प पर्याप्त नहीं हैं और आप स्तर 5 संशोधक होने के लिए किसी अन्य कुंजी को परिभाषित करना चाहते हैं, तो इन विकल्पों के लिए घोषणाओं को देखना शिक्षाप्रद है। वे में लग रहे हैं
/usr/share/X11/xkb/symbols/level5
। इस lv5:ralt_switch_lock
तरह दिखता है घोषणा
:
partial modifier_keys
xkb_symbols "ralt_switch_lock" {
include "level5(lock)"
key <RALT> {
type[Group1] = "EIGHT_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
};
};
यह symbols[Group1]
घोषणा करता है कि कुंजी के प्रत्येक स्तर को किस कुंजी या वर्ण का उत्पादन करना चाहिए। यह सभी आठ संभावित स्तरों का उपयोग करता है क्योंकि यह स्तर 5 संशोधक को लॉक करना चाहिए जब एक और स्तर 5 शिफ्ट कुंजी के साथ दबाया जाता है। इसलिए ISO_Level5_Lock
इन स्तरों के सभी स्तर 5 शिफ्ट और अन्य शिफ्ट कीज़ के कुछ संयोजन (उन सभी में से कोई नहीं) को पकड़कर इन स्तरों तक पहुँचने के बाद से 5-8 स्तर का उत्सर्जन होता है
। यदि आप केवल शिफ्ट व्यवहार चाहते हैं और लॉक-इफ़-टू-प्रेस्ड व्यवहार भी नहीं है, तो आप एक सरल घोषणा (उसी फ़ाइल से) कर सकते हैं:
// The right Alt key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "ralt_switch" {
key <RALT> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level5_Shift ]
};
include "level5(modifier_mapping)"
};
एक लेआउट में अतिरिक्त स्तर जोड़ना
Xkb लेआउट बहुत मॉड्यूलर हैं। आप मौजूदा लेआउट शामिल कर सकते हैं और उन्हें बदल सकते हैं। इसलिए हम मौजूदा लेआउट को 5 से कम स्तरों के साथ चुन सकते हैं और इसमें कुछ स्तर जोड़ सकते हैं।
आप अपने लेआउट के साथ फ़ाइल को कॉपी करके /usr/share/X11/xkb/symbols/
या जहाँ भी यह है कि आपके Xkb टूल लेआउट के लिए देख कर नए लेआउट बना सकते हैं
। लेकिन इसके लिए सुडो विशेषाधिकार की आवश्यकता होती है, इसलिए यह सबसे अच्छा समाधान नहीं है। वैकल्पिक रूप से आप की निर्देशिका संरचना की प्रतिलिपि बना सकते हैं xkb/
और अपने लेआउट को उपयुक्त निर्देशिका में रख सकते हैं xkb/
, अर्थात्
symbols/
। तो कहते हैं कि आपने एक फ़ाइल बनाई है xkb-tree/symbols/my-layouts
। इस फ़ाइल में परिभाषित लेआउट का उपयोग करने के लिए, आप आउटपुट के -print
विकल्प का उपयोग कर सकते हैं setxkbmap
और फिर आउटपुट को पाइप कर सकते हैं xkbcomp
। यह आवरण स्क्रिप्ट इनपुट के रूप में लेआउट लेती है:
#!/bin/sh
# `-option ""` resets all options.
setxkbmap -option "" -layout "$1" \
-print |
xkbcomp -I"<path-to-project>/xkb-tree" - "$DISPLAY"
जहां तक लेआउट वाली फाइल का सवाल है, तो मान लीजिए कि हम "यूएस इंटरनेशनल" लेआउट का विस्तार करना चाहते हैं, जिसमें चार स्तरों का उपयोग किया गया है। सबसे पहले हम लेवल 3 और लेवल 5 शिफ्ट कीज़ को उसी तरह सेट करते हैं जिस तरह से नियो करता है:
partial alphanumeric_keys
xkb_symbols "mine" {
// US international
include "us(intl)"
// Set up level 3 modifiers.
include "level3(modifier_mapping)"
include "level3(bksl_switch)"
include "level3(caps_switch)"
// Set up level 5 modifiers.
include "level5(modifier_mapping)"
include "level5(lsgt_switch)"
include "level5(ralt_switch)"
};
अब हम कुछ अतिरिक्त वर्ण जोड़ना चाहते हैं। आइए उदाहरण के तौर पर Qwerty लेआउट की पहली चार कुंजियों का उपयोग करें। ये सुझाव दिए गए हैं Q
करने के लिए R
है, जो के अनुरूप <AD01>
करने के लिए <AD04>
। पहले हमें कुंजी को आठ स्तरों तक उपयोग करने में सक्षम बनाने की आवश्यकता है:
key.type[Group1] = "EIGHT_LEVEL";
पहले चार स्तरों के लिए, उन्हें फिर से परिभाषित नहीं करने के लिए, हम उन्हें मैप करते हैं NoSymbol
। फिर हम दो स्तरों को जोड़ते हैं। स्तर 5 पर हम तीर जोड़ते हैं ←↓↑→
() 2)। स्तर 6 पर हम दिशा कुंजियाँ जोड़ते हैं। हमारा लेआउट इस तरह दिखता है:
partial alphanumeric_keys
xkb_symbols "mine" {
// US international
include "us(intl)"
// Set up level 3 modifiers.
include "level3(modifier_mapping)"
include "level3(bksl_switch)"
include "level3(caps_switch)"
// Set up level 5 modifiers.
include "level5(modifier_mapping)"
include "level5(lsgt_switch)"
include "level5(ralt_switch)"
// Make the following keys capable of using eight levels.
key.type[Group1] = "EIGHT_LEVEL";
key <AD01> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
leftarrow, Left
] };
key <AD02> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
downarrow, Down
] };
key <AD03> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
uparrow, Up
] };
key <AD04> { [
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
rightarrow, Right
] };
};
इसका उपयोग करने के लिए हम अपने द्वारा बनाई गई आवरण स्क्रिप्ट का उपयोग कर सकते हैं:
./setxkbmap-wrapper "my-layouts(mine)"
† 1: नियो de(neo)
Xkb में है; setxkbmap "de(neo)"
।
† 2: Xkb का उपयोग करने वाले प्रतीकात्मक नामों को खोजने के लिए, नाम वाली फ़ाइल की खोज करें keysymdef.h
। यह एक निर्देशिका नाम के तहत होना चाहिए X11/
। आप यूनिकोड नामों का भी उपयोग कर सकते हैं, उदाहरण के U2192
लिए U + 2192।