一年前,一位智者在 GitHub 上报告了一个 bug:“Ubuntu 24.04 (IBus 1.5.29-rc2) 中重音字符持续存在”。他非常准确地描述了这个问题,据说一位 IBus 开发人员已经修复了它。虽然我听不懂这些人说的一半,但我确信我新安装的 Ubuntu 24.04 和 GNOME 文本编辑器也遇到了同样的问题。
值得注意的是,上述错误报告中建议的解决方法(GTK_IM_MODULE=simple gnome-text-editor
在终端中运行命令)是有效的。但是,至少希望能够通过 GUI 正常访问 GNOME 文本编辑器。
我试过把 IBus 从 1.5.29-rc2 升级到最新版本,但是……Ubuntu 坚持说没什么可升级的。我没法跟我的电脑争论,对吧?也许用这个GTK_IM_MODULE=simple
工具默认从 GUI 启动文本编辑器可能是一个可行的解决方案,但我不知道怎么做(如果真的可以做到的话)。我也考虑过降级到 MS Windows。
非常感谢您的帮助。请访问上面的 GitHub 链接;其中提到的所有技术规格均适用。
附录。从终端启动文本编辑器(使用命令gnome-text-editor
)并尝试使用死键输入重音字符时,会显示以下 IBus 警告:
[...] ibus_input_context_post_process_key_event: Type 'h' is not supported.
另外,让我澄清一下,这个错误不仅限于 GNOME 文本编辑器;当需要输入重音字符(例如命名文件)时,它也会出现于 Nautilus(Ubuntu 的默认文件管理器)中。
我不确定这个 bug 的现状,但很遗憾,目前 Ubuntu 的 LTS 版本尚未修复这个问题。这个问题似乎只出现在新的 Gnome Text 编辑器中(或许与 GTK4 有关)。
作为一种解决方法,您可以通过编辑 gnome 文本编辑器的启动器,将系统设置为自动启动
GTK_IM_MODULE=simple
该编辑器。启动器是一个扩展名为 的小文本文件.desktop
。如果编辑器是使用常规 APT 系统(即从.deb
软件包中安装的)安装的,那么您会在 中找到启动器/usr/share/applications
。否则,请查看存储 Snap 程序启动器的目录。确保文本编辑器的所有实例都已关闭。
打开终端并找到
.desktop
编辑器的启动器:在输出中,您将看到类似的内容
/usr/share/applications/org.gnome.TextEditor.desktop:Name=Text Editor
。第一部分是包括路径在内的整个文件名。Name=Text Editor
是您在应用程序概述中看到的设置标签的文件中的内容。将文件复制到我们将要编辑的覆盖目录中
/usr/local/share/applications
。如果该目录不存在,则可能需要创建它:使用 root 权限在编辑器中打开刚刚创建的副本(您现在正在修复它:):
(请注意,我们使用相同的机制在命令之前首先设置环境变量。这会导致命令
sudoedit
使用图形文本编辑器)在文本编辑器中,找到该
Exec=
行(您可以按 Ctrl+F 并搜索字符串)紧接着
Exec=
,粘贴命令env
和环境变量:env GTK_IM_MODULE=simple
,不要删除该行中的任何内容。例如,如果该行是编辑后应该看起来像
可能还有其他以 开头的行
Exec=
。请以相同方式编辑这些行。保存文件并关闭编辑器。
GTK_IM_MODULE=simple
从现在开始,只要您从应用程序菜单启动编辑器或在文本文件上按“Enter”键,环境变量就会自动设置。Ubuntu 的更新不会覆盖你的更改。如果你想恢复到默认启动器,请删除你创建的新文件: