Linux桌面环境下edge和Electron软件切换wayland的方法和解决输入法问题

本篇博客是对过去一段时间折腾Linux桌面环境时解决切换wayland和输入法问题的一些汇总和吐槽,之后如果换了其他的发行版,还能想起来怎么解决。本文的解决方案仅保证在2024年11月16日这个时间点对作者而的环境有效,不保证以后或其他环境下仍然有效。

本博客全文在KDE plasma 6 + wayland环境下运行的VSCode中写成,要是使用GNOME,那可能只能在X11环境下写了。

笔者的环境

fastfetch

Edge浏览器

开启Wayland

Chrome浏览器可以直接通过chrome://flags里设置Preferred Ozone PlatformWayland,但是Edge里没有这个flags,所以需要添加命令行参数来开启:

microsoft-edge-stable --ozone-platform=wayland

在KDE plasma中,你可以通过右击开始菜单里的Edge -> 编辑应用程序 -> 应用程序 -> 参数 来给图形界面启动的Edge增加上参数。

输入法支持

本文假定你已经安装并配置好了fcitx5输入法,如果你还没有安装,可以参考官网的说明,或者如果是ArchLinux+KDE plasma,也可以参考Arch简明指南

有三种方法可以开启edge在wayland下的输入法:

  1. 使用text-input-v3 (适用于Edge 129版本以上,推荐)
  2. 使用gtk4 (KDE plasma下可能会有错位问题,GNOME可以通过插件解决这个问题)
  3. 使用text-input-v1 (适用于KDE plasma/Kwin 5.27以上,GNOME不支持)

使用text-input-v3

如果你的Edge版本是129以上,直接添加两个参数来开启text-input-v3,它相比过去的方式效果要好:

microsoft-edge-stable --enable-wayland-ime --wayland-text-input-version=3

这个方法也同样适用于129版本以后的Chrome浏览器。最终你的启动参数应该类似这样:

microsoft-edge-stable --ozone-platform=wayland --enable-wayland-ime --wayland-text-input-version=3

添加了所有启动参数的Edge

使用gtk4

如果你的Edge版本在129以下,可以通过修改gtk版本的方式来通过gtk支持输入法:

microsoft-edge-stable --gtk-version=4

最终你的启动参数应该类似这样:

microsoft-edge-stable --ozone-platform=wayland --gtk-version=4

这个方式在一些条件下可能会出现候选词错位的问题,如果是GNOME可以通过kimpanel插件来解决。

使用text-input-v1

通过只添加--enable-wayland-ime的方法来开启对text-input-v1的支持,这个方法适用于KDE/kwin5.27以上,而GNOME的mutter至今不支持text-input-v1,所以无法使用这个方法。

最终你的启动参数应该类似这样:

microsoft-edge-stable --ozone-platform=wayland --enable-wayland-ime

Electron

开启wayland

和浏览器一样,electron的软件也可以通过添加--ozone-platform=wayland的方式来切换到wayland。如果你觉得一个一个添加太麻烦的话,也可以通过环境变量的方式来让所有的electron版本28以上的软件都切换到wayland:

ELECTRON_OZONE_PLATFORM_HINT=wayland

输入法支持

对于Edge支持的开启输入法的三种方法中,Electron仅支持方法3,即通过text-input-v1的方式支持输入法。添加启动参数--enable-wayland-ime即可。但是由于GNOME的mutter合成器截至目前即使已经有开发者提了Merge Request的情况下,仍然不支持text-input-v1[1],所以GNOME还是老老实实退回x11来运行吧。

然而GNOME上的xwayland对非整数倍缩放和多屏不同缩放都有问题,退回x11也只是换了一种难受方式

如果你一定要在GNOME下的Electron软件里使用输入法的话,可以尝试安装用户自己增加了text-input-v1的mutter,例如Arch下的mutter-text-input-v1,Fedora下的mutter-im-fix

注:使用第三方包有风险,请确保你有相关经验再使用

参考


Linux桌面环境下edge和Electron软件切换wayland的方法和解决输入法问题
http://example.com/posts/wayland-input-method.html
作者
Xecus
发布于
2024年11月16日
许可协议