如何从命令行更改键盘?

如何从命令行更改键盘?

如何从命令行更改键盘布局?例如,我想从英语切换到希伯来语。我可以使用屏幕角落的小图标从 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_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就像讨论的那样这里

相关内容