मैं कमांड लाइन से कीबोर्ड कैसे बदलूं?


65

मैं कमांड-लाइन से कीबोर्ड लेआउट कैसे बदलता हूं? उदाहरण के लिए, मैं अंग्रेजी से हिब्रू में स्विच करना चाहता हूं। मैं इसे अपने स्क्रीन के कोने में छोटे आइकन के साथ lightdm से करने में सक्षम हूं।

जवाबों:


43

टर्मिनल से

अंग्रेजी में हिब्रू और Alt+ के साथ शब्द छंदShift

setxkbmap -option grp:alt_shift_toggle us,il

आप इस कमांड के साथ सभी लोकेल उर्फ ​​देख सकते हैं

cat /etc/locale.alias

मैनुअल में setxkbmap के बारे में अधिक जानकारी

man setxkbmap

इसे बूट पर सेट करने की जानकारी: wiki.gentoo.org/wiki/Keyboard_layout_switching
Adriano P

52

आप निम्नलिखित स्थानों में सभी अलग-अलग कीमैप पा सकते हैं:

/usr/share/keymaps/i386/
/usr/share/kbd/keymaps/i386/
/usr/share/X11/xkb/symbols/

लिनक्स कमांड लाइन में कीबोर्ड लेआउट (जैसे स्पेनिश) को बदलने के लिए, निम्न कमांड टाइप करें:

loadkeys es

X के लिए:

setxkbmap es

इन परिवर्तनों को विस्तृत करने के लिए, यह मानते हुए कि आप उबंटू का उपयोग कर रहे हैं, आप निम्न का उपयोग कर सकते हैं:

sudo dpkg-reconfigure console-setup

यह tty1, tty2, आदि पर प्रभाव डालता है, लेकिन X में कोई प्रभाव नहीं है। मैं इसे X में करना चाहता हूं, ठीक उसी तरह जिस तरह से lightdm में कीबोर्ड स्विचर काम करता है।
इल

मैंने जवाब में एक आदेश जोड़ा, क्या यह आप देख रहे थे?
Dr_Bunsen

हाँ! धन्यवाद। इसके अलावा, क्या आप 'एस' के साथ वर्तनी वाले लोडकी के उल्लेख के लिए अपने उत्तर को अपडेट कर सकते हैं?
ईयाल

2
हाँ, मैं करूँगा, और कोई धन्यवाद नहीं। बस हल के रूप में चिह्नित तो हर कोई जानता है।
Dr_Bunsen

रेडहैट उपयोगकर्ताओं के लिए, निम्नलिखित मूल्यवान टुकड़े हैं: /usr/share/X11/xkb/symbols/औरsetxkbmap es
पीटर बटकोविक

13

उबंटू 13.10 या बाद का

यह बेहतर काम करता है तो Gnome / एकता कीबोर्ड लेआउट संकेतक के साथ setxkbmap।

gsettings set org.gnome.desktop.input-sources current 0

0 लेआउट इंडेक्स है (0 डिफ़ॉल्ट या शीर्ष लेआउट)। लेआउट 0 से शुरू किया गया।

आसान उपयोग के लिए, एक उपनाम बनाएं।


2
यह उत्तर बेहतर है क्योंकि यह वास्तव में संकेतक को बदलता है। बस मैं क्या देख रहा था।
आइनर-जी

1
धन्यवाद। यहां भी अपने उत्तर का उपयोग करें: askubuntu.com/a/984981/6193
एलेक्सी

3
यह गनोम 3.26 पर काम नहीं करता है। यह कहता है "इस कुंजी को पदावनत और अनदेखा किया गया है"।
hugomg

@ ह्यूगोम, अभी मेरे पास नए सूक्ति के लिए अभी तक पहुंच नहीं है। लेकिन आप dconf-editorटूल और चेक का उपयोग करके देख सकते हैं /org/gnome/desktop/। वे बस इसका नाम बदल सकते हैं।
user.dz

12
setxkbmap us,il -option "lv3:ralt_alt,grp:alt_shift_toggle"

इस आदेश आप केवल द्वारा के माध्यम से अंग्रेजी और हिब्रू के बीच टॉगल सक्षम right alt+ shiftऔर से आप को बचाने के left alt+ shift


3

ऐसा लगता है कि कोई मानक सीएलआई उपकरण नहीं है, लेकिन xkb- स्विच काम करने के लिए एक छोटा सा खुला स्रोत उपकरण है। बस इसे Ubuntu 16.04.4 LTS के साथ परीक्षण किया गया और यह त्रुटिपूर्ण रूप से काम करता है।

$ xkb-switch       # display current group
ua
$ xkb-switch -l    # list groups
us
ua
$ xkb-switch -s us # switch to a named group
$

यह अन्य समाधानों की तुलना में बेहतर दिखता है क्योंकि setxkbmap <name>सभी विकल्पों को बर्बाद कर देता है, और setxkbmap -layout <name>, जबकि यह विकल्पों को संरक्षित करता है, यह अभी भी टास्कबार संकेतक को बदलने में विफल रहता है और न ही grp_ledयदि सेट।


चेतावनी

यदि आपके ~/.config/kxkbrcउपयोग LayoutLoopCount(जैसे यह सूचीबद्ध लेआउट की कुल संख्या से कम पर सेट है LayoutList), इस तरह:

LayoutList=us,ua,th,de
LayoutLoopCount=2
Options=grp_led:scroll,grp:rwin_switch,compose:menu,lv3:ralt_switch,
        nbsp:level2,grp:rctrl_toggle,misc:typo

तब xkb-switchकेवल आपको वर्तमान समूह में लेआउट के बीच स्विच करने देगा।


स्क्रीन लॉक पर आह्वान

मैंने आपकी टिप्पणी पर गौर किया:

मेरी स्क्रीनसेवर चालू होने से पहले, मैं अंग्रेजी पर स्विच करना चाहता हूं ताकि जब मैं वापस आऊं तो अपना पासवर्ड टाइप करना आसान हो जाए।

यह वास्तव में मेरा लक्ष्य था, इसलिए यहां का जवाब है:
ऐसा करने के लिए, आपको यहांdbus-monitor चर्चा करने के लिए एक स्क्रिप्ट हुकिंग में लपेटने की आवश्यकता है


3

Gnome के साथ 18.04+ में gsettings का उपयोग करना , आप दोनों कीबोर्ड लेआउट जोड़ सकते हैं और कमांड लाइन से या डेस्कटॉप पर कीबोर्ड लेआउट स्विचर से उनके बीच स्विच कर सकते हैं ।

1. मुख्य कीबोर्ड लेआउट और विकल्प:

$ gsettings list-recursively org.gnome.desktop.input-sources
org.gnome.desktop.input-sources show-all-sources false
org.gnome.desktop.input-sources xkb-options ['terminate:ctrl_alt_bksp']
org.gnome.desktop.input-sources per-window false
org.gnome.desktop.input-sources current uint32 1
org.gnome.desktop.input-sources mru-sources @a(ss) []
org.gnome.desktop.input-sources sources [('xkb', 'es'), ('xkb', 'no')]

2. विज्ञापन कीबोर्ड लेआउट:

$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'no'),('xkb','gr')]"
$ gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'es'), ('xkb', 'no'), ('xkb', 'gr')]

3. कमांड लाइन से वर्तमान कीबोर्ड लेआउट को बदलना:

$ gsettings set org.gnome.desktop.input-sources current 1

जैसा कि अब हमारे पास 3 अलग-अलग भाषाएँ हैं, हमारे पास 0 से 2 तक तीन विकल्प हैं, जिनमें 1 स्पेनिश है, 2 नॉर्वेजियन है और 3 ग्रीक है। इस प्रकार, 1 से ऊपर की वर्तमान सेटिंग नॉर्वेजियन को वर्तमान कीबोर्ड लेआउट बनाती है।

4. सभी संभव कीबोर्ड लेआउट:

cat //usr/share/X11/xkb/rules/base.lst

5. कीबोर्ड शॉर्टकट के साथ कीबोर्ड लेआउट को बदलना:

एक कीबोर्ड शॉर्टकट कीबोर्ड लेआउट को बदलने के लिए पूर्वनिर्मित है। वर्तमान शॉर्टकट:

$ gsettings get org.gnome.desktop.wm.keybindings switch-input-source
['<Super>space']

एक नया शॉर्टकट सेटिंग सेट का उपयोग करके सेट किया जा सकता है, लेकिन ध्यान रखें कि पहले से उपयोग में आने वाले शॉर्टकट का उपयोग न करें। उपयोग में सभी शॉर्टकट सूचीबद्ध करने के लिए:

$ gsettings list-recursively org.gnome.desktop.wm.keybindings
org.gnome.desktop.wm.keybindings cycle-windows-backward ['<Shift><Alt>Escape']
org.gnome.desktop.wm.keybindings minimize ['<Super>h']
org.gnome.desktop.wm.keybindings move-to-workspace-7 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-8 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-9 @as []
org.gnome.desktop.wm.keybindings move-to-monitor-left ['<Super><Shift>Left']
...

यह इसके लिए सबसे व्यापक जवाब है, यश।
जुलिएन चपसूल

1

उबंटू के लिए 18.04 + सूक्ति के अन्य जवाब मेरे काम नहीं आए, लेकिन यह किया:

gdbus call --session --dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
 "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"

"इनपुटसॉर्स [0]" में तर्क कीबोर्ड लेआउट का सूचकांक है, जो कि gsettings समाधान के लिए है।

यह linux StackExchange पर मिला ।


-1

जिज्ञासा से बाहर, आप ऐसा क्यों करेंगे? आप एक टर्मिनल क्यों खोलेंगे और वे आपके कीबोर्ड लेआउट को बदलने के लिए एक कमांड टाइप करते हैं जब आप एक साधारण कीबोर्ड शॉर्टकट द्वारा ऐसा कर सकते हैं! यह मानते हुए कि आप उबंटू का उपयोग करते हैं, यह Windows+ चला जाता हैSpace


2
यह एक टिप्पणी के अधिक और एक उत्तर के कम प्रतीत होता है।
WinEunuuchs2Unix

मेरी स्क्रीनसेवर चालू होने से पहले, मैं अंग्रेजी पर स्विच करना चाहता हूं ताकि जब मैं वापस
ईयाल

कस्टम कीबोर्ड-शॉर्टकट बनाने के लिए भी यह उपयोगी है
वासिलिस

यह वर्चुअलबॉक्स पर Ubuntu 16.04 में काम नहीं करता है।
जूहा अनटाइनन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.