Ubuntu 14.04中的无状态布局切换

截图

我广泛使用两种键盘布局(拉丁语为英语,西里尔语为乌克兰语和俄语),由于UI状态的额外位置: 当前布局 ,让我无法体验模式错误 。

我曾经通过使用无状态布局切换完全消除它们,因此没有next layout操作(因为这样的操作基于当前状态 ,这很容易被用户忘记,因此导致错误),而只是两个动作:

  1. 启用拉丁语布局;
  2. 启用西里尔文布局。

在Saucy之前的版本中,这很容易实现。 如上面的截图所示。

但是,该设置窗口在Saucy 被摧毁 。

我现在如何进行无状态切换?

此命令将布局设置为第一个(它与Unity / Gnome Indicator,Ubuntu 13.10 / 14.04很好地配合使用):

 gsettings set org.gnome.desktop.input-sources current 0 

您可以使用调整工具,gnome操作,compiz action plugin..etc为其创建键盘快捷键。

布局从0开始编制索引。因此,您可以为列表中的任何布局创建快捷方式。

您可以使用它为最后一个布局创建复杂脚本而不提供索引:

  gsettings get org.gnome.desktop.input-sources sources 

喜欢:

  gsettings set org.gnome.desktop.input-sources current $(($(gsettings get org.gnome.desktop.input-sources sources | grep -Po "'[[:alpha:]]+'\)" | wc -l)-1)) 

Ubuntu和GNOME中的键盘选项只不过是X键盘扩展(XKB)的前端。 如果您可以手动配置,则可以使用setxkbmap命令行轻松重新启用所有现在缺少的选项。

例如,要在俄语和英语键盘布局之间设置非模态切换,您可以使用以下命令:

 setxkbmap -layout us,ru -option grp:shift_caps_switch 

这将为当前会话启用这些XKB设置。 如果要使更改永久化,则必须将上述命令添加到启动应用程序中 。

如果您对使用setxkbmap控制的各种其他设置setxkbmap ,我建议您setxkbmap手册( man setxkbmap )并查看/usr/share/X11/xkb/rules/base.lst 。 后者记录了配置组合键,键盘布局切换等所有不同的方法。

以下是键盘布局切换的base.lst部分:

 ! option grp Key(s) to change layout grp:switch Right Alt (while pressed) grp:lswitch Left Alt (while pressed) grp:lwin_switch Left Win (while pressed) grp:rwin_switch Right Win (while pressed) grp:win_switch Any Win key (while pressed) grp:caps_switch Caps Lock (while pressed), Alt+Caps Lock does the original capslock action grp:rctrl_switch Right Ctrl (while pressed) grp:toggle Right Alt grp:lalt_toggle Left Alt grp:caps_toggle Caps Lock grp:shift_caps_toggle Shift+Caps Lock grp:shift_caps_switch Caps Lock (to first layout), Shift+Caps Lock (to last layout) grp:win_menu_switch Left Win (to first layout), Right Win/Menu (to last layout) grp:lctrl_rctrl_switch Left Ctrl (to first layout), Right Ctrl (to last layout) grp:alt_caps_toggle Alt+Caps Lock grp:shifts_toggle Both Shift keys together grp:alts_toggle Both Alt keys together grp:ctrls_toggle Both Ctrl keys together grp:ctrl_shift_toggle Ctrl+Shift grp:lctrl_lshift_toggle Left Ctrl+Left Shift grp:rctrl_rshift_toggle Right Ctrl+Right Shift grp:ctrl_alt_toggle Alt+Ctrl grp:alt_shift_toggle Alt+Shift grp:lalt_lshift_toggle Left Alt+Left Shift grp:alt_space_toggle Alt+Space grp:menu_toggle Menu grp:lwin_toggle Left Win grp:rwin_toggle Right Win grp:lshift_toggle Left Shift grp:rshift_toggle Right Shift grp:lctrl_toggle Left Ctrl grp:rctrl_toggle Right Ctrl grp:sclk_toggle Scroll Lock grp:lctrl_lwin_rctrl_menu LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout) 

各种XKB设置也记录在man 7 xkeyboard-config


如果setxkbmap不适合您,您可以尝试通过dconf设置XKB选项:

  1. 安装dconf-editorsudo apt-get install dconf-editor
  2. 从破折号打开dconf编辑器,然后导航到orggnomedesktopinput-sources
  3. 将XKB设置以数组的forms添加到xkb-options 。 例如: ['grp:shift_caps_switch']

来源: 在启动时设置setxkbmap首选项

也许只是使用Tweak工具:

在此处输入图像描述

HTH

原来Cinnamon桌面还有这个选项! 尼斯。