Chrome 或 Chromium 无法使用 ibus

Chrome 或 Chromium 无法使用 ibus

我有 ibus 在每个应用程序(firefox、文本编辑器)中都能正常工作,但不是 chromium 或 chrome

弄清楚之后,如果其他人遇到同样的问题,我会在这里发布

我的是 ubuntu 18.04,zsh shell。

归功于https://bbs.archlinux.org/viewtopic.php?id=173675

答案1

将其添加到 zshrc 或 bashrc...

#ibus
export GTK_IM_MODULE=xim #Fix for Chrome
export QT_IM_MODULE=xim #Not sure if this works or not, but whatever
export XMODIFIERS=@im=ibus

在那之后source ~/.zshrc

从命令行启动 chrome 并享受

答案2

导出 GTK_IM_MODULE=xim #修复 Chrome

不适用于 GNOME 45 Wayland(在 Manjaro Linux 上测试,并且 Ubuntu 现在也默认附带 Wayland IIRC)截至 2023 年和 Chromium 119。

有效的是在 GTK4 模式下启动 Chromium/Chrome:

chromium --gtk-version=4

u/tinywrkb来自评论的解决方案:https://www.reddit.com/r/archlinux/comments/sc0oxo/ibus_japanese_input_not_working_in_google_chrome/

最好将标志永久添加到 chrome 启动配置中,但我忘了它在哪里(有人帮忙吗?)并且中没有 GTK 版本的标志chrome://flags/

更糟糕的解决方案(但我知道)是修改文件chromium.desktop,例如使用sed或,因为awk可能有许多启动选项(隐身模式等)。例如使用sed,以 ROOT 权限运行(sudo,等):sudoas

sed -i.bak 's/Exec\=\/usr\/bin\/chromium/Exec\=\/usr\/bin\/chromium --gtk-version=4/g' /usr/share/applications/chromium.desktop

注 1:-i.bak选项创建备份文件。使用(以 ROOT 权限运行)chromium.desktop.bak删除它。 注 2:命令字符串按照 POSIX 标准转义rm -v /usr/share/applications/chromium.desktop.bak
https://stackoverflow.com/a/2076026
注意 3:.desktop下次您的系统上更新 Chromium 时,该文件可能会被覆盖,您将不得不重新运行此命令(这就是为什么它比前面提到的更糟糕的原因)。

PS 此--gtk-version=4选项还修复了 VSCodium 的相同输入问题,并且可能适用于其他基于 Electron 的应用程序。PPS
一旦 GTK5 发布或 Chromium 采用 GTK4 作为标准版本,此答案可能会过时。PPPS
仅在 Manjaro Linux 上测试过,它应该可以在 Ubuntu 上运行(尽可能符合 XDG 标准),但请在评论中核实并确认

答案3

就我而言,安装 ibus-gtk3 包解决了这个问题。

相关内容