从 gnome overlay 那里将 GNOME 升到了 3.6 版本,于是便遇到了关于 IBus 输入法的问题。
之前我用的输入法是 fcitx 4.2.5。在 GNOME 3.6 中,虽然 IBus 默认被依赖安装了,但是 fcitx 在 GTK 与 QT 程序中依然可以照常使用,只是 XIM 出了问题,导致所有依赖 XIM 的程序都无法使用 fcitx,例如 Emacs。
感觉这个问题很奇怪。折腾了一会,没有搞定,但是发现了肇事者是 gnome-settings-daemon,因为将它关掉,Emacs 就可以启用 fcitx 了。不知道 gnome-settings-daemon 做了什么手脚导致 fcitx 的 XIM 不工作,但是 IBus 和 SCIM 的 XIM 都是正常的。
如果对 XIM 问题不去深究的话,去掉 GNOME 3.6 对 IBus 的依赖并使得 fcitx 的 XIM 恢复正常的话,这还是比较容易做到的,只需关掉以下三个包的 i18n 的 USE:
gnome-base/gnome-shell -i18n gnome-base/gnome-control-center -i18n gnome-base/gnome-settings-daemon -i18n
然后自然是重新安装它们,之后即可将 IBus 删除,并且 fcitx 全面正常。