[ Content contribution] Gnome Wayland 真正且优雅的中文输入法fcitx5的配置方法
Tofloor
poster avatar
沈拙言
deepin
2024-04-01 21:18
Author

解决 Gnome Wayland 缩放后fcitx5候选框模糊

一 前言

1. 传统的配置fcitx5的教程

总是说配置三个环境变量

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

但是现在的GNOME Wayland已经不适用这个方法了,而且真正的配置方法早就写在fcitx5 wiki^[1]^上了,只是作者没有把他们聚在一起,或是他没有兴趣来整理、调试这个方法。

2. 传统的方法的优劣

  • 优点:全局通用,不用额外配置,一劳永逸
  • 缺点
    • 在已经实现了text-input-v3的Gtk3/4上,GTK_IM_MODULE=fcitx 变量会导致Wayland环境的Gtk3/4应用使用x11的fcitx5。从而当我4k屏缩放200%时,Wayland的窗口里使用fcitx5的时候,候选框总是十分模糊
    • firefox(现在默认是wayland模式)中,候选框闪啊闪

3. 本方法的优劣

  • 优点:这是fcitx5作者推荐的方法^[2]^,优雅且灵活。解决了上述传统方法的缺点
  • 缺点:现在fcitx支持两种协议来确定焦点窗口和相应的应用程序名称,包括wlr-foreign-toplevel-management(由基于wlroots的合成器使用)和plasma-window-management(由kwin使用)。而Gnome Wayland所使用的mutter合成器并不支持这两种协议。所以fcitx5记不住窗口,也就是说fcitx5设置里的**共享输入状态的设置失效**。也就是说,没法设置不同窗口下输入法状态不同。也就是说在使用text-input-v3的这帮Gtk3/4 Wayland窗口中,输入法的中英文状态保持一致。

二 步骤

1. 设置环境变量(针对X11和Qt)^[2]^

sudo nano /etc/environment
# 添加以下内容
XMODIFIERS=@im=fcitx  # X11或XWayland窗口需要
QT_IM_MODULE=fcitx  # Qt窗口需要
# 切记不要GTK_IM_MODULE=fcitx,这会把wayland的fcitx5设置覆盖为x11模式

2. 为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

3. 通过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'>}"

参考

  1. ^1https://fcitx-im.org/wiki/Fcitx_5/zh-cn
  2. ^^a^^b^^c^2https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland
  3. ^3https://fcitx-im.org/wiki/Note_for_GNOME_Later_than_3.6
Reply Favorite View the author
All Replies
enforcee
deepin
2024-04-01 22:01
#1

不亲自试一下fcitx5就真不知道有多好用
yeah

Reply View the author
宁南
deepin
2024-04-01 22:02
#2

额,最好还是留下参考链接,看得不是很明白

Reply View the author
沈拙言
deepin
2024-04-01 22:10
#3
宁南

额,最好还是留下参考链接,看得不是很明白

我在知乎的帖子里标了参考链接

https://zhuanlan.zhihu.com/p/690062589?utm_psn=1758254652163145729

Reply View the author
要讲武德
deepin
2024-04-01 23:32
#4

不知道10年后,Linux输入法的体验是不是还是劝退一批人。和其他成熟系统差的太远了

Reply View the author
哄哄
deepin
2024-04-02 08:46
#5

默认的kde 下使用五笔98 感觉不错,只是需要自己导入98码元。

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2024-04-02 09:22
#6

说真的,我作为我一个Linux用户,真不希望花这么多时间去配置一个输入法,太浪费时间了,希望能快速简便一点,毕竟输入法就是一个工具

Reply View the author
Tonny
deepin
2024-04-02 10:11
#7
It has been deleted!