按住键暂时切换键盘布局?

我最近升级到Ubuntu 13.10。 在Ubuntu 12.04中,我能够定义一个键,在按住它的同时,暂时切换到不同的键盘布局。 我无法在13.10中找到获得该function的方法:唯一的选择似乎是使用“切换到下一个源”快捷方式在不同的布局之间切换。

有没有办法让13.10中的“按住键暂时切换到不同的键盘布局”function?

  • 使用Gnome 3.6,布局设置方法已更改。 所以Ubuntu 13.10及更高版本之前有不同的行为。 这应该适用于Gnome(经过测试的Ubuntu 13.10 / 14.04)。

  • Unity似乎不使用xkb-options (在Ubuntu 13.10 / 14.04中测试过)。 甚至使用例如:

     setxkbmap us,ara -option grp:rctrl_switch 

    它只运行了几秒钟,然后重置。

    编辑/usr/share/X11/xkb/symbols/pc ,从ctrl绑定中删除rctrl:

     //modifier_map Control{ Control_L, Control_R }; modifier_map Control{ Control_L }; 

    再次:

     setxkbmap us,ara -option grp:rctrl_switch 

    它只是工作,直到我使用Super + Space或直接从指标更改我的布局。 因此,作为Unity的解决方法,禁用布局切换快捷方式(布局指示器也可以删除)然后添加-option grp:..._toggle to setxkbmap

对于Gnome来说:

  1. 使用dconf-editor →org→gnome→desktop→input-sources

  2. setxkbmap选项添加到xkb-options ,例如:

     ['grp:rctrl_switch'] 

要查看所有可能的选项:

 more /usr/share/X11/xkb/rules/xorg.lst | grep grp: 

在此处输入图像描述

自问这个问题以来,我已经使用Cinnamon桌面切换到Linux Mint 17 。 Cinnamon桌面为临时切换Ubuntu 12.04上可用的布局提供了相同的选项,包括保持特定键临时切换键盘布局的选项。

请按以下步骤操作:

  1. 从系统菜单中选择系统设置… snap1

  2. 选择键盘 ; snap2

  3. 在标有打字的选项卡下,单击布局设置 ; snap3

  4. 在“ 键盘设置”窗口的“ 快捷方式”选项卡下,选择“ 键入”切换到下一个源的默认值为Super + SPACE ; 单击它将要求您指定一个新加速器… ,按所需的组合键以更改为下一个L ayout(我使用Super + L。 ),它将被指定更改为下一个布局。

    (然后我使用相同的首选布局为Switch分配了类似的东西,然后开始测试它们。从首选布局切换到备用,但反过来没有。请参考下一步修复。) saucy1

  5. 在同一窗口中,您可以选择/指定撰写键。 首选的是Right Alt composeKey

  6. 在使用我的首选布局为“切换到下一个源”指定Super + L后, 我将键盘布局更改为备用布局,然后将组合分配“切换到上一个源” (我使用Shift + Super + L )。 然后我测试了它们,它们工作正常。

    我使用的关键组合的新加速器看起来像这样: saucy2


有用的链接:

  • 如何启用Compose键?

  • 如何键入像ë这样的强调字符? 中高音。 如何使用撰写键?

    摘要:

    使用撰写键,这里分配给Rt。 Alt

    • 对于ö你按下Compose,然后按Shify + '然后按键; 用相同的另一种方式组成 oRt.Alt o
    • 对于ß ,按Compose,然后按s然后按s键。

    (..你必须记住两个角色的组合)

    您可以在终端中使用此命令获取compose键(和Unicode编号)的组合:

     cat /usr/share/X11/locale/en_US.UTF-8/Compose | grep ö 

    (其中ö应该用你选择的角色代替。)

    这将输出如下内容:

        : "ö" odiaeresis 

    (其中是Compose( ShiftShift + Rt.Alt )键, 是双引号 – "Shift + '是小写oo 。对于大写Ö使用O ie Shift + o代替compose组合的最后一个字符。)

    使用hexUnicode字符代码点:

    • 按(并释放) Shift + Ctrl + U ,然后,在显示带下划线的u时 ,输入hexUnicode字符代码点,后跟ReturnSpace

    例如, 按Ctrl + Shift + u后跟2 6 3 b然后返回空格为☻。

    (..这个会要求你记住Unicode号码)

☻欢呼……