मैं वर्तमान में कमांड लाइन से चयनित कीबोर्ड लेआउट को कैसे बदलूं?


12

मेरे पास मेरे कीबोर्ड लेआउट (उनमें से दो) हैं और उनके बीच स्विच करके निम्नलिखित कमांड के माध्यम से कॉन्फ़िगर किया गया है:

setxkbmap -layout us,ru -option -option "grp:lctrl_lshift_toggle,ctrl:nocaps"

अब मैं usकुछ कमांड लाइन कमांड का उपयोग करके लेआउट पर स्विच करना चाहता हूं । क्या यह संभव है?

जवाबों:


13

आप xkb- स्विच ( -nअगले लेआउट पर स्विच) का उपयोग कर सकते हैं :

xkb-switch -n

या xkblayout- स्थिति ( set +1अपने मामले में, चारों ओर लपेटने के लिए):

xkblayout-state set +1

या xteसे xautomation अनुकरण करने के लिए Control_L+ Shift_Lकुंजी दबाएँ / रिलीज:

xte 'keydown Control_L' 'keydown Shift_L' 'keyup Shift_L' 'keyup Control_L'

xkblayout- राज्य महान है, धन्यवाद! मैं सिर्फ उपयोग करता हूं xkblayout-state set 1, और मुझे तुरंत usलेआउट मिलता है।
रोजेक

2

Kbdmap के लिए स्टैक एक्सचेंज की खोजें इस पृष्ठ को उस शब्द का उल्लेख नहीं करती हैं । स्पष्टता के लिए, यहाँ एक उत्तर है ( प्रश्न के X11 टैग के साथ बिल्कुल फिट नहीं है , लेकिन यह किसी की मदद करना चाहिए) ...

जब एक वर्चुअल कंसोल तक सीमित हो

- बिना एक्स।

kbdmap (1)

kbdmap, vidfont- सिसकनों और वीटी के लिए सामने का छोर

… उपलब्ध कीमैप की आसान सेटिंग की अनुमति देता है…

वास्तव में, यह आसान है और (मेरे लिए, यूके कीबोर्ड लेआउट में बदलना) प्रभावी है।

एक्स का उपयोग करते समय

- उदाहरण के लिए, FreeBSD- आधारित ट्रूओएस डेस्कटॉप के साथ।

कीबोर्ड परिवर्तन के तहत पोस्ट 5 से ? | फ़्रीबीएसडी फ़ोरम (2015-08-03):

kbdmapकंसोल के लिए है। setxkbmapवह उपयोगिता है जो आप X11 के लिए चाहते हैं। ...

यू नेस्टेड किंगडम में बदलने पर एक चेतावनी है, उदाहरण के लिए :

$ kbdmap
kbdcontrol: getting keymap: Inappropriate ioctl for device
You are not on a virtual console - expect certain strange side-effects
lang_default = en
dialect = en_...UTF-8
lang_abk = en

…

keymap="uk.kbd"
$ 

1

कीबोर्ड लेआउट के लिए डिस्ट्रो पर निर्भर करता है, कमांड है

loadkeys <path/to/file>

loadkey /lib/kbd/keymaps/i386/qwerty/pt_PT.map.gz

अगर मुझे ठीक से याद है। यदि आप विशिष्ट व्यवहार के लिए विशिष्ट कुंजी निर्दिष्ट करना चाहते हैं, तो लोडकी के लिए मैनपेज भी जांचें।


समस्या यह है कि मैं करने के बाद (उदाहरण के लिए) loadkeys us, यह सेटसेटबैपमैप (दो लेआउट और उनके बीच स्विचन) के साथ बनाई गई सेटिंग्स को रीसेट करता है
Rogach

जहां तक ​​मुझे पता है कि लेआउट्स को बदलने के लिए यह कमांड है, यदि आपके पास एक विशिष्ट है, तो मुझे लगता है कि आपके शेल में एक उपनाम होने का सबसे अच्छा तरीका होगा कि आप लोड सेटिंग्स को यूटी सेटिंग्स के साथ कहेंगे। ex: load_us हमें कीबोर्ड लोड करेगा और वास्तव में loadkey /lib/kbd/keymaps/i386/qwerty/us.map.gz या इसी तरह का फोन होगा। और अन्य लेआउट के लिए भी ऐसा ही है।
बिट्सऑफनिक्स

लेकिन मैं बाद में कीबोर्ड सेटिंग्स कैसे बदलूंगा? वर्तमान में, मैं Ctrl-Shift दबाकर लेआउट बदल देता हूं, लोडकीक्स स्क्रू का उपयोग करके।
रोजा

कमांड लाइन से एक कदम पीछे हटने दीजिए, मैं मान रहा हूं कि आप एक टिटि टर्मिनल का उल्लेख कर रहे हैं। मतलब कि आप xterm / शब्दावली / सूक्ति-टर्मिनल या किसी अन्य एमुलेटर का उपयोग नहीं कर रहे हैं, लेकिन वास्तव में आप एक्स सर्वर के बिना वातावरण में हैं। इसे लेने के बाद आपको लोडकी का उपयोग करने की आवश्यकता है, आपके प्रश्न के अनुसार, मैंने आपको कमांड लाइन दी थी, जो आप वास्तव में चाहते हैं वह एक महत्वपूर्ण शॉर्टकट लगता है। यदि आपके पास मैप किए जाने के लिए विशिष्ट कुंजियाँ हैं, तो आपको अपने स्वयं के लेआउट बनाने और लोड करने की आवश्यकता है, फिर एक cli दृष्टिकोण से लोड कुंजियों के साथ अनुरोध पर। यदि आप इसके बजाय एक शॉर्टकट चाहते हैं, तो अपने प्रश्न को अपडेट करें।
बिट्सऑफनिक्स

नहीं, मैं, वास्तव में, विशेष रूप से चित्रमय वातावरण और सूक्ति-टर्मिनल का उपयोग कर रहा हूं। यह सिर्फ इतना है कि मुझे कुछ घटनाओं की प्रतिक्रिया में, एक्स लेआउट प्रोग्राममैटिकल को बदलने की आवश्यकता है - इस प्रकार, टटी सामान काम नहीं कर रहा है।
रोज

0

इस हाउटो फोर्ज लेख पर एक नज़र डालें जिसका शीर्षक है: विभिन्न डिस्ट्रीब्यूटर्स पर अपने कीबोर्ड लेआउट को बदलने के लिए विभिन्न कमांडों के लिए भाषा और कीबोर्ड लेआउट विभिन्न वितरणों पर बदलना।

इनमें से अधिकांश कमांड GUI के रूप में मौजूद हैं, लेकिन यदि आप देखते हैं तो उनमें से अधिकांश कमांड लाइन से भी चलाए जा सकते हैं। उदाहरण के लिए मैं फेडोरा (ए रेड हैट डिस्ट्रो) का उपयोग कर रहा हूं। कमांड system-config-keyboardजब बिना किसी तर्क के चलती है, तो मुझे एक GUI दिखाता है।

लेकिन अगर मैं system-config-keyboard --helpइसे चलाता हूं तो इसे कमांड लाइन से भी चलाया जा सकता है:

$ system-config-keyboard --help
Usage: system-config-keyboard [--help] [--noui] [--text] [<keyboardtype>]
       --help            Print out this message.
       --noui            Run in command line mode.
       --text            Run in text interface mode.

       <keyboardtype> options are: ar-azerty, ar-azerty-digits, ar-digits, ar-qwerty, ar-qwerty-digits, be-latin1, ben, ben-probhat, bg_bds-utf8, bg_pho-utf8, br-abnt2, cf, croat, cz-lat2, cz-us-qwertz, de, de-latin1, de-latin1-nodeadkeys, dev, dk, dk-latin1, dvorak, es, et, fi, fi-latin1, fr, fr-latin1, fr-latin9, fr-pc, fr_CH, fr_CH-latin1, gr, guj, gur, hu, hu101, ie, is-latin1, it, it-ibm, it2, jp106, ko, la-latin1, mk-utf, nl, no, pl2, pt-latin1, ro, ro-cedilla, ro-std, ro-std-cedilla, ru, sg, sg-latin1, sk-qwerty, slovene, sr-cy, sr-latin, sv-latin1, tj, tml-inscript, tml-uni, trq, ua-utf, uk, us, us-acentos

तो मेरे कीबोर्ड लेआउट को रूसी में बदलने के लिए मैं निम्नलिखित कमांड चला सकता हूं:

$ system-config-keyboard ru
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.