回答:
次の場所ですべての異なるキーマップを見つけることができます。
/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
/usr/share/X11/xkb/symbols/
とsetxkbmap es
これは、Gnome / Unityキーボードレイアウトインジケーターを使用したsetxkbmapよりも適切に機能します。
gsettings set org.gnome.desktop.input-sources current 0
0はレイアウトインデックスです(デフォルトまたはトップレイアウトは0)。0から始まるインデックス付きレイアウト。
簡単に使用できるように、エイリアスを作成します。
dconf-editor
ツールを使用して確認してください/org/gnome/desktop/
。名前を変更するだけです。
標準の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_led
ifセットも変更できません。
次のように~/.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
説明したようにフックするスクリプトにラップするだけです。
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']
...
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で見つけました。
好奇心から、なぜそれをするのですか?単純なキーボードショートカットでできるのに、なぜターミナルを開き、キーボードレイアウトを切り替えるコマンドを入力するのでしょうか。Ubuntuを使用すると仮定すると、Windows
+Space