如何从命令行更改键盘?
我如何从命令行更改键盘布局? 例如,我想从英语切换到希伯来语。 我可以从lightdm用屏幕一角的小图标做到这一点。
从终端
英语译成希伯来语,反之亦然,使用Alt + Shift
setxkbmap -option grp:alt_shift_toggle us,il
您可以使用此命令查看所有语言环境别名
cat /etc/locale.alias
有关setxkbmap更多信息,请参见手册
man setxkbmap
您可以在以下位置找到所有不同的键盘映射:
/usr/share/keymaps/i386/ /usr/share/kbd/keymaps/i386/ /usr/share/X11/xkb/symbols/
要在Linux命令行中更改键盘布局(例如,更改为西class牙语),请键入以下命令:
loadkeys es
对于X:
setxkbmap es
要在系统范围内进行这些更改,假设您使用的是Ubuntu,则可以使用以下命令:
sudo dpkg-reconfigure console-setup
Ubuntu 13.10或更高版本
这比使用Gnome / Unity键盘布局指示器的setxkbmap更好。
gsettings set org.gnome.desktop.input-sources current 0
0是布局索引(0默认或顶部布局)。 布局从0开始索引。
为方便使用,请创建别名。
setxkbmap us,il -option "lv3:ralt_alt,grp:alt_shift_toggle"
此命令使您只能通过右侧Alt + shift切换英语和希伯来语,并从左侧alt + shift中解救。
使用18.04+和Gnome中的gsetting,您可以添加添加键盘布局,并从命令行或桌面上的键盘布局切换器之间切换。
1.Present键盘布局和选项:
$ 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种是西class牙语,2种是挪威语,3种是希腊语。 因此,将电流设置为1使挪威语成为当前的键盘布局。
4.列出所有可能的键盘布局:
cat //usr/share/X11/xkb/rules/base.lst
5.使用键盘快捷键更改键盘布局:
键盘快捷键已预先配置为更改键盘布局。 目前的捷径:
$ gsettings get org.gnome.desktop.wm.keybindings switch-input-source ['space']
可以使用gsetting set设置新的快捷方式,但请注意不要使用已在使用的快捷方式。 列出所有正在使用的快捷方式:
$ gsettings list-recursively org.gnome.desktop.wm.keybindings org.gnome.desktop.wm.keybindings cycle-windows-backward ['Escape'] org.gnome.desktop.wm.keybindings minimize ['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 [' Left'] ...
似乎没有标准的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
破坏所有选项,而setxkbmap -layout
,虽然它保留了选项,但它仍然无法更改任务栏指示符,也无法更改grp_led
如果已设置)。
警告
如果~/.config/kxkbrc
使用LayoutLoopCount
(例如,它设置为小于LayoutList
列出的布局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
。
出于好奇,你为什么要那样做? 为什么要打开一个终端,他们键入一个命令来切换你的键盘布局,当你可以通过一个简单的键盘快捷方式! 假设你使用Ubuntu,它就像Windows
+ Space