Answers:
您可以在以下位置找到所有不同的键盘映射:
/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
就像这里讨论的那样。
在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种不同的语言,因此我们有3种选择,从0到2,其中1是西班牙语,2是挪威语,3是希腊语。因此,将current设置为1以上会使Norwegian成为当前的键盘布局。
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