我怎样才能让 IBus 不忽略 ~/.XCompose?

我怎样才能让 IBus 不忽略 ~/.XCompose?

由于在从头安装 Ubuntu 12.04 后 UIM 不想继续运行,我尝试了 IBus,因为这是 Ubuntu 默认自带的 IME 框架。

然而,ibus-table-compose使用起来很麻烦,因为为了输入一个字符,我需要先按下组合键来触发 IBus,输入相应的组合序列,然后再次按下 IBus 组合键来禁用它。与此相反,我宁愿保留 XIM 提供的组合键功能,因为这样需要的击键次数更少。

但问题是,当默认输入法设置为 IBus 并且 IBus 被停用时(AIUI,因为我用ibus 守护进程——xim)它被绕过以支持 XIM,中的设置~/.XCompose似乎被 IBus 自己的版本覆盖,因此例如撰写 ca没有给予A(a-ogonek)正如我在.XCompose我的主目录中的文件,但是ā(a-hacek),如其他一些设置所定义。

我已经非常习惯自己的助记符了,那么有没有办法让我的系统使用自己的~/.XCompose文件,并将默认输入法仍然设置为 IBus,以便 IBus 仍然可以工作,例如在 OpenOffice 和其他不允许您通过上下文菜单选择输入法的应用程序中?

笔记:这不是问题的重复我怎样才能在 ibus 上重新运行 compose?

答案1

更新

ibus现在可以使用.XCompose文件:https://github.com/ibus/ibus/issues/1876

上一个答案(仍然有效)

正如@von 所说,.XCompose几年内您都无法使用 IBUS。

如果你的发行版还比较旧,你可以使用uim作为输入法,支持 Unicode、GTK+ 和 Qt 输入法模块以及旧版XIM支持。

处理.XCompose并保留现有全局 Compose 的一个好方法是:

  1. 安装 uim:

    sudo apt-get install uim

  2. 将其设为默认输入法:

    im-config -n uim

  3. 编辑您的.XCompose并添加当前键盘区域设置(在我的情况下en_US为)作为第一行

    include "/usr/share/X11/locale/en_US.UTF-8/Compose"

  4. 完成!重新启动您想要启动的程序以获取.XCompose文件。

已知的问题

Ubuntu Unity Dash 永远不会产生下划线符号。

其他发行版

.XCompose最近,我尝试了一下现代发行版上的输入法,同时尝试让 Linux 在拉丁语言方面保持与 Windows(TM) 相同的键盘行为(输出ç而不是ć,没有重音辅音,等等)。

我根据以下说明创建了一个 repo(适用于 Ubuntu 和其他发行版):https://github.com/raelgc/win_us_intl

答案2

由于 Dennis Williamson 在上面的评论中说它在 16.04 中有效,因此我使用.XCompose从我之前的 16.04 安装中复制的简短版本在全新的 18.04 安装中进行了测试。

# Import default rules from the system Compose file
include "%L"

# Custom definitions
<Multi_key> <R> <R> <R>             : "ʁ"   U0281 # LATIN LETTER SMALL CAPITAL INVERTED R

ibus restart然后我在终端中运行并可以输入ʁ。

答案3

但问题是,当默认输入法设置为 IBus 并且 IBus 被停用时(AIUI,因为我用 ibus-daemon --xim 启动它),它会被绕过而使用 XIM,~/.XCompose 中的设置似乎被 IBus 自己的版本覆盖,所以例如 Compose ca 不会给出我在主目录中的 .XCompose 文件中定义的 ą(a-ogonek),而是给出其他一些设置定义的 ǎ(a-hacek)。

看起来它不是由其他设置定义的,就像您可能编辑的某些配置文件一样。看起来它是在文件中编译的,硬编码的gtkimcontextsimpleseqs.h。进一步看来,自定义该文件中的数组并添加您自己的 Compose 键序列并不容易gtk_compose_seqs_compact。该表针对空间进行了优化,不易编辑。因此,“只需更改源代码并重新编译”策略可能比我想象的更难。

我已经非常习惯自己的助记符了,那么有没有办法让我的系统使用自己的 ~/.XCompose 文件,并将默认输入法仍设置为 IBus,以便 IBus 仍然可以工作,例如在 OpenOffice 和其他不允许您通过上下文菜单选择输入法的应用程序中?

有一个错误报告https://bugzilla.gnome.org/show_bug.cgi?id=155010它有一个补丁(据说)可以自定义组合表。它仍然不会使用您的 ~/.XCompose 文件,语法也会有所不同,但总归是件好事。但我注意到,问题中的错误仍然存​​在,所以我猜这还没有进入正式版本。

答案4

  1. 全局设置(例如对于 Ubuntu/etc/environmentQT_IM_MODULEGTK_IM_MODULE(最后一个对于 gnome 来说是不需要的)ibus,以及XMODIFIERS@im=ibus

  2.α 执行setxkbmap-option选择撰写键。例如,使用右徽标键:setxkbmap -option compose:rwin。这将在重启时被覆盖。

  2.β 要在重启时保留设置,请/etc/X11/xorg.conf.d/00-keyboard.conf使用以下内容创建:

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbOptions"    "compose:rwin"
EndSection

经过测试,适用于 X11 和(至少是setxkbmap这样的)韦兰。

感谢暗示藤原,更新日期这次讨论

相关内容