コマンドラインからキーボードを変更するにはどうすればよいですか?


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/

Linuxコマンドラインでキーボードレイアウトを(たとえばスペイン語に)変更するには、次のコマンドを入力します。

loadkeys es

Xの場合:

setxkbmap es

Ubuntuを使用していると仮定して、これらの変更をシステム全体に適用するには、次を使用できます。

sudo dpkg-reconfigure console-setup

これはtty1、tty2などに効果がありますが、Xには効果がありません。lightdmのキーボードスイッチャーが機能するのと同じ方法で、Xでそれを行いたいです。
エアル

答えにコマンドを追加しましたが、これはあなたが探していたものですか?
-Dr_Bunsen

はい!ありがとう。また、「s」で綴られたロードキーに言及するように回答を更新できますか?
エアル

2
はい、ありません。誰もがわかるように、解決済みとマークするだけです。
-Dr_Bunsen

:RedHatのユーザーのために、以下では、貴重な作品です/usr/share/X11/xkb/symbols/setxkbmap es
ピーターButkovic

13

Ubuntu 13.10以降

これは、Gnome / Unityキーボードレイアウトインジケーターを使用したsetxkbmapよりも適切に機能します。

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

0はレイアウトインデックスです(デフォルトまたはトップレイアウトは0)。0から始まるインデックス付きレイアウト。

簡単に使用できるように、エイリアスを作成します。


2
この答えは、実際にインジケーターを変更するため、優れています。まさに私が探していたもの。
アイナーG

1
ありがとう。ここでも答えを使用しました:askubuntu.com/a/984981/6193
Alexey

3
これはGNOME 3.26では機能しません。「このキーは廃止され、無視されます」と表示されます。
hugomg

@hugomg、今はまだ新しいgnomeにアクセスできません。ただし、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

標準のCLIツールはないようですが、xkb-switchはこの仕事をするための小さなオープンソースツールです。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_ledifセットも変更できません。


警告

次のように~/.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

18.04以降のGnomeで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までの3つの選択肢があり、1つはスペイン語、2つはノルウェー語、3つはギリシャ語です。したがって、currentを1 に設定すると、ノルウェー語が現在のキーボードレイアウトになります。

4.考えられるすべてのキーボードレイアウトの一覧表示:

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

5.キーボードショートカットを使用してキーボードレイアウトを変更する:

キーボードレイアウトを変更するためのキーボードショートカットが事前に構成されています。現在のショートカット:

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

gsetting setを使用して新しいショートカットを設定できますが、すでに使用されているショートカットを使用しないように注意してください。使用中のすべてのショートカットをリストするには:

$ 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

Ubuntu 18.04 + Gnomeの場合、他の回答はうまくいきませんでしたが、これはうまくいきました。

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()"

「inputSources [0]」の引数は、gsettingsソリューションの場合と同じキーボードレイアウトのインデックスです。

Linux StackExchangeで見つけました。


-1

好奇心から、なぜそれをするのですか?単純なキーボードショートカットでできるのに、なぜターミナルを開き、キーボードレイアウトを切り替えるコマンドを入力するのでしょうか。Ubuntuを使用すると仮定すると、Windows+Space


2
これは、コメントではなく、回答ではないようです。
WinEunuuchs2Unix

スクリーンセーバーがオンになる直前に、英語に切り替えて、戻ったときにパスワードを簡単に入力できるようにします。
Eyal17年

また、カスタムキーボードショートカットを作成するのに便利です
ヴァシリス

これは、Ubuntu 16.04のvirtualboxでは機能しません。
ジュハウンティネン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.