TL;DR

使用以下参数打开

chromium -enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime

背景

操作系统为 NixOS ,桌面为 Hyprland ,显示协议为 Wayland ,输入法是 Fcitx 配制的小鹤双拼。浏览器是 Brave (Chromium内核)。之前我的浏览器是可以使用 Fcitx 输入法的,但是前端时候不知道动了什么配置,突然就不能使用输入法了,但我又懒得一个个的回滚系统去看。所以干脆一不做二不休,重新查一下原因吧。

原因

经过排查,发现 Firefox 中可以使用 Fcitx, 首先排除了是 Fcitx 的配置问题。那问题就是出现在 Chromium 上。 经过搜索发现了 在Wayland上使用Fcitx的注意实现 这一wiki。在里面详细的记录着出现问题的原因。一句话就是软件本身对于输入法的支持有bug。

方案

第一种方案

使用 chromium -enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4 来启动浏览器,这个的问题是输入框位置有时候会在错误的位置上

第二种方案

使用 chromium -enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime 来启动浏览器,这样会使用 text-input-v1, 效果比上面一个要稳定

结论

Wayland 任重道远,现在用在生产环境下的坑还是挺多的,需要有极强的折腾精神才能坚持的用下去