解决 Gnome Wayland 缩放后fcitx5候选框模糊
一 前言
- 传统的配置fcitx5的教程
总是说配置三个环境变量
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
但是现在的GNOME Wayland已经不适用这个方法了,而且真正的配置方法早就写在fcitx5 wiki^[1]^
上了,只是作者没有把他们聚在一起,或是他没有兴趣来整理、调试这个方法。
- 传统的方法的优劣
优点:全局通用,不用额外配置,一劳永逸
缺点
在已经实现了text-input-v3
的Gtk3/4
上,GTK_IM_MODULE=fcitx
变量会导致Wayland环境的Gtk3/4应用使用x11的fcitx5。从而当我4k屏缩放200%时,Wayland的窗口里使用fcitx5的时候,候选框总是十分模糊
在firefox(现在默认是wayland模式)中,候选框闪啊闪 - 本方法的优劣
优点:这是fcitx5作者推荐的方法^[2]^,优雅且灵活。解决了上述传统方法的缺点。
缺点:现在fcitx支持两种协议来确定焦点窗口和相应的应用程序名称,包括wlr-foreign-toplevel-management
(由基于wlroots的合成器使用)和plasma-window-management
(由kwin使用)。而Gnome Wayland所使用的mutter合成器并不支持这两种协议。所以fcitx5记不住窗口,也就是说fcitx5设置里的共享输入状态的设置失效。也就是说,没法设置不同窗口下输入法状态不同。也就是说在使用text-input-v3的这帮Gtk3/4 Wayland窗口中,输入法的中英文状态保持一致。
二 步骤 设置环境变量(针对X11和Qt)^[2]^
sudo nano /etc/environment # 添加以下内容 XMODIFIERS=@im=fcitx # X11或XWayland窗口需要 QT_IM_MODULE=fcitx # Qt窗口需要 # 切记不要GTK_IM_MODULE=fcitx,这会把wayland的fcitx5设置覆盖为x11模式
为Gtk X11设置输入法(针对Gtk2/3)^[2]^。
nano .gtkrc-2.0 # Gtk2 # 添加一行 gtk-im-module="fcitx" nano .config/gtk-3.0/settings.ini # Gtk3 # 在[Settings]下添加 gtk-im-module=fcitx
- 通过Gnome的接口为Wayland环境设置输入法
另外:目前的Electron软件都只能正常运行在Xwayland上,一旦修改成Wayland,缩放会模糊(添加--ozone-platform=wayland --disable-features=WaylandFractionalScaleV1 解决
),主要是输入法也用不了了。
所以可以通过Gnome的设置来设置输入法^[3]^
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx'>}"
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。