如何从命令行更改键盘布局?例如,我想从英语切换到希伯来语。我可以使用屏幕角落的小图标从 lightdm 执行此操作。
答案1
您可以在以下位置找到所有不同的键盘映射:
/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
答案2
从航站楼
英语到希伯来语,反之亦然,使用Alt+Shift
setxkbmap -option grp:alt_shift_toggle us,il
您可以使用此命令查看所有语言环境别名
cat /etc/locale.alias
手册中有关 setxkbmap 的更多信息
man setxkbmap
答案3
Ubuntu 13.10 或更高版本
这比使用 Gnome/Unity 键盘布局指示器的 setxkbmap 效果更好。
gsettings set org.gnome.desktop.input-sources current 0
0 是布局索引(0 默认或顶部布局)。布局索引从 0 开始。
为了方便使用,请创建一个别名。
答案4
似乎没有标准的 CLI 工具,但是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
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
就像讨论的那样这里。