浏览器弹窗打不出中文
Wayland 下,Edge、Chrome、Brave 的历史记录、收藏夹、Ctrl+D 弹窗里打不出中文。
网页、地址栏、Ctrl+F 都正常,换 fcitx5 也没用。
先确认是不是这个问题
会话是 Wayland。
bashecho $XDG_SESSION_TYPE输出
wayland。网页输入框、地址栏、
Ctrl+F能打中文。只有工具条弹出的小窗口不行,而且候选框根本不出现。
三条都对上,再往下看。
原因
Wayland 下,Chromium 用 text-input-v3 协议接输入法。
这套协议按窗口工作。浏览器只给主窗口建了输入法上下文,工具条弹窗是 popup 窗口,没建。
所以弹窗里打字,浏览器收到的是原始按键,输入法不会被激活。
换 IBus 或 fcitx5 都没用,问题在浏览器这一层。
修复
让浏览器改走 X11(XWayland)。X11 下 Chromium 用 GTK 通路,每个窗口都有输入法上下文。
下面的命令都在终端里执行。按 Ctrl+Alt+T 打开终端。
先试一下
# IBus
GTK_IM_MODULE=ibus microsoft-edge --ozone-platform=x11fcitx5 用户把 ibus 换成 fcitx。
新窗口里按 Ctrl+D,在名称框打拼音。能出候选框,再装永久版。
用别的浏览器就换命令开头的程序名:
| 浏览器 | 命令 |
|---|---|
| Edge | microsoft-edge |
| Chrome | google-chrome |
| Chromium | chromium |
| Brave | brave-browser |
装成永久的
上面那条每次都要开终端。装一次,以后点图标启动就自动带上参数。
curl -fsSL -o ~/chromium-ime-fix.sh https://ubuntu-skills.pages.dev/chromium-ime-fix.sh
bash ~/chromium-ime-fix.sh install看到 已写入 就是成功。
脚本会自动找出你装的浏览器,判断输入法是 IBus 还是 fcitx5,再改启动项。不用 clone 仓库,也不用另装软件。
装完把所有浏览器窗口关掉,从应用图标重新打开。
下载失败的话,换 GitHub 的地址:
curl -fsSL -o ~/chromium-ime-fix.sh https://raw.githubusercontent.com/vabaly/ubuntu-skills/main/scripts/chromium-ime-fix.sh不想用 X11
用完整页面代替弹窗:
Ctrl+H:历史记录页Ctrl+Shift+O:收藏管理器Ctrl+D:先回车保存,再去收藏管理器改名
验证
- 关掉所有浏览器窗口。
- 从应用图标重新启动。
- 按
Ctrl+D,打拼音。
能出候选框并上屏,就成功了。
想确认当前模式:地址栏打开 edge://gpu(Chrome 用 chrome://gpu),看 Ozone platform 是 x11 还是 wayland。
撤销
bash ~/chromium-ime-fix.sh uninstall然后重启浏览器。
常见问题
fcitx5 可以用吗
可以。把 ibus 换成 fcitx,脚本也会自动识别。
Chrome、Brave、Vivaldi 可以吗
可以。同一个原因同一个解法,换程序名即可。
会不会变慢
不会。只是换窗口后端,渲染还是同一套。
画面变糊了
XWayland 在高分屏小数缩放下可能略糊。介意就用上面的完整页面方案。
浏览器更新后还要重装吗
先测一次。上游修好就执行 uninstall 撤销。
下载脚本失败了
先用 GitHub 地址重试:
curl -fsSL -o ~/chromium-ime-fix.sh https://raw.githubusercontent.com/vabaly/ubuntu-skills/main/scripts/chromium-ime-fix.sh国内访问 GitHub 不稳,多试几次或挂代理即可。
Flatpak / Snap 版怎么办
脚本只处理发行版原生安装。
flatpak run <应用ID> --ozone-platform=x11
snap run <包名> --ozone-platform=x11应用 ID 用 flatpak list 或 snap list 查。
实测环境
Ubuntu 26.04、GNOME Wayland、Microsoft Edge 156、IBus 1.5 + libpinyin。