如果无法识别死键组合,则插入两个字符(例如 'a ? á, 'b ? 'b)

Jam*_*ten 10 x11 keyboard-layout dead-keys

当我在 Linux Mint 机器上使用英语、美国国际(带有死键、altGr 死键或替代)的任何变体时,我总是遇到这种行为。
当我按下这些键之一时:' "然后在它们后面跟着一个“非重音”字符,比如 a[b根本没有输出。

而在 Windows US-International 中,它将打印[b. 如果我想输入这个,我必须用空格而不是任何“非重音”字符来转义每个死键。这在编程时很烦人(不是真的,但我用 Windows 'Qwerty International' 培训了 Typing.io 并且在系统之间来回切换很烦人)。

有什么办法可以改变它,让它像在 Windows 中一样工作?

cks*_*ksk 8

我找到了一种在 OpenSUSE 中完成这项工作的方法,我希望它在 Mint 中不会有太大的不同。也许您的文件位于略有不同的位置,但找到正确的文件应该不会太难。

OpenSUSEibus默认使用(或者,至少 Gnome 版本使用),但我摆脱了它并使用xim. 我不知道 Mint 是否也使用,ibus但无论如何,我都会发布完整的说明。根据需要跳过/调整这些步骤。

  1. 卸载ibus. 在 OpenSUSE 中,这是sudo zypper rm ibus. 注销并再次登录以杀死僵尸守护进程。

  2. 安装gtk3-immodule-xim. 在 OpenSUSE 中,它是sudo zypper in gtk3-immodule-xim.

  3. 编辑/etc/X11/xim.d/none。设置XMODIFIERS@im=none。设置GTK_IM_MODULEQT_IM_MODULExim

  4. cp /usr/share/X11/locale/en_US.UTF-8/Compose ~/.XCompose. 如果.XCompose您的主目录中有一个文件,X11 将使用它。所以现在我们可以编辑这个文件来自定义死键。

  5. 现在,无聊的部分。编辑.XCompose文件并为每个死键组合创建规则,输出所需的字符串。例如:

    <dead_acute> <b> : "'b"
    <dead_acute> <r> : "'r"
    ...
    
    Run Code Online (Sandbox Code Playgroud)

    记住也要为大写字母(和标点符号,以及任何你需要的东西)创建规则。

  6. 如果像我一样,您还想在使用时使用cedilla ( ç) 而不是重音 c ( ?) <dead_acute> <c>,只需查找并编辑这些行。

你有它。注销并重新登录,所有应用程序都应该正确处理输入!

编辑:我知道这xim是旧的和有问题的(它在配置文件中这么说),但以上是我可以让一切正常工作的唯一方法。也许uim也能完成这项工作。


lme*_*urs 5

在 Ubuntu 14.04 上,我执行了以下操作:

1)安装uim使用软件管理器,其他包一样uim-ximuim-gtk2uim-gtk3uim-qt安装自动。请参阅https://launchpad.net/ubuntu/+source/uim

2) 通过在 中添加下一行来定义环境变量~/.profile,这样自定义组合键序列仅适用于当前用户:

# Restart the X-server after making alterations using:
# $ sudo restart lightdm
# It seems only GTK_IM_MODULE or QT_IM_MODULE needs to be defined.
export GTK_IM_MODULE="uim"
export QT_IM_MODULE="uim"
Run Code Online (Sandbox Code Playgroud)

3)为了模仿Window US International键盘,我将以下文件之一保存在~/.XCompose

在 1) 重新启动 Ubuntu 或 2) 通过在终端中输入以下命令后,这对我有用:

$ sudo restart lightdm
Run Code Online (Sandbox Code Playgroud)

注意:似乎只有在更改~/.profile文件后才需要重新启动,更改~/.XCompose将在下次应用程序(终端、Gedit 等)启动时生效。

要检查环境变量是否设置正确,请在终端中输入以下命令:

$ printenv | grep IM_MODULE
Run Code Online (Sandbox Code Playgroud)

非常感谢:

关于自定义组合键序列:

关于自定义键盘映射: