[已解决] KDE Wayland + Fcitx 5 + Firefox 151 输入法无法使用的问题

最近安装的 ArchLinux,开始时还好好的,不知道何时起中文输入法在火狐浏览器中完全无法使用了。

系统环境

项目 内容
系统 Arch Linux (2026-06-14 全新安装)
内核 uname -a 输出见下文
桌面环境 KDE Plasma, Wayland 会话
Firefox 151.0.4-1 (系统原生包,非 Flatpak)
Chrome google-chrome-stable
GTK gtk3 3.24.52-1
fcitx5 5.1.19-1
fcitx5 输入法 Rime (fcitx5-rime 5.1.13-1)
Linux Laptop 7.0.12-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 10 Jun 2026 08:58:02 +0200 x86_64 GNU/Linux

问题描述

Firefox 151 无法使用 fcitx5 输入法。Google Chrome 等其他应用均表现正常。

已尝试的方案

1. 环境变量配置

/etc/environment 中设置了:

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

当前 shell 可以正确读到这些变量。

2. 各种组合测试的结果

启动方式 结果
GTK_IM_MODULE=fcitx firefox :cross_mark: 完全没反应
GTK_IM_MODULE=wayland firefox :warning: 可以切出输入法,候选词不上屏
MOZ_ENABLE_WAYLAND=0 GTK_IM_MODULE=fcitx firefox :cross_mark: 无效
GDK_BACKEND=x11 GTK_IM_MODULE=fcitx firefox :cross_mark: 无效
GTK_IM_MODULE=xim firefox :cross_mark: 无效
GTK_IM_MODULE=wayland firefox + GDK_BACKEND=x11 :cross_mark: 无效

3. 系统配置检查

  • :white_check_mark: fcitx5 进程正常运行,DBus 服务正常注册
  • :white_check_mark: GTK immodules 缓存中 im-fcitx5.so 已正确注册
  • :white_check_mark: KWin 已配置 fcitx5 为 Wayland 输入法(~/.config/kwinrcInputMethod=/usr/share/applications/org.fcitx.Fcitx5.desktop
  • :white_check_mark: Firefox 连接了 Wayland 前端(fcitx5-diagnose 确认)
  • :white_check_mark: libwaylandim.solibwayland.so 模块存在

附加信息

  • fcitx5-remote 返回 2(fcitx5 运行中,输入法未激活状态)
  • Firefox 151 用 libmozgtk.so 动态加载系统 GTK,不直接链接
  • KWin 日志中有 Could not find slot KWin::VirtualKeyboardDBus::setEnabled 的报错

求助

  1. Firefox 151 的 Wayland IME 和 fcitx5 是否存在 text-input 协议版本兼容问题?
  2. 应该如何正确配置才能在 KDE Wayland + Firefox 151 下使用 fcitx5(Rime)输入法?

谢谢各位!

看看fcitx5-diagnose。

# 系统信息:
1.  `uname -a`:

        Linux Laptop 7.0.12-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 10 Jun 2026 08:58:02 +0000 x86_64 GNU/Linux

2.  `lsb_release`:

    `lsb_release` 未找到.

3.  `/etc/lsb-release`:

    `/etc/lsb-release` 未找到.

4.  `/etc/os-release`:

        NAME="Arch Linux"
        PRETTY_NAME="Arch Linux"
        ID=arch
        BUILD_ID=rolling
        ANSI_COLOR="38;2;23;147;209"
        HOME_URL="https://archlinux.org/"
        DOCUMENTATION_URL="https://wiki.archlinux.org/"
        SUPPORT_URL="https://bbs.archlinux.org/"
        BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
        PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
        LOGO=archlinux-logo

5.  桌面环境:

    桌面环境为 `kde`。

6.  XDG 会话类型:

        XDG_SESSION_TYPE='wayland'

7.  Bash 版本:

        BASH_VERSION='5.3.15(1)-release'

# 环境:
1.  DISPLAY:

        DISPLAY=':1'


        WAYLAND_DISPLAY='wayland-0'

2.  键盘布局:

    1.  `setxkbmap`:

            WARNING: Running setxkbmap against an Xwayland server
            xkb_keymap {
                xkb_keycodes  { include "evdev+aliases(qwerty)" };
                xkb_types     { include "complete"      };
                xkb_compat    { include "complete"      };
                xkb_symbols   { include "pc+us+inet(evdev)"     };
                xkb_geometry  { include "pc(pc105)"     };
            };

    2.  `xprop`:

            _XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", ""

3.  Locale:

    1.  全部可用 locale:

            C
            C.utf8
            es_US.utf8
            POSIX
            zh_CN.utf8

    2.  当前 locale:

            LANG=zh_CN.UTF-8
            LC_CTYPE="zh_CN.UTF-8"
            LC_NUMERIC=zh_CN.UTF-8
            LC_TIME=zh_CN.UTF-8
            LC_COLLATE="zh_CN.UTF-8"
            LC_MONETARY=zh_CN.UTF-8
            LC_MESSAGES="zh_CN.UTF-8"
            LC_PAPER=zh_CN.UTF-8
            LC_NAME=zh_CN.UTF-8
            LC_ADDRESS=zh_CN.UTF-8
            LC_TELEPHONE=zh_CN.UTF-8
            LC_MEASUREMENT=zh_CN.UTF-8
            LC_IDENTIFICATION="zh_CN.UTF-8"
            LC_ALL=

4.  目录:

    1.  主目录:

            /home/user

    2.  `${XDG_CONFIG_HOME}`:

        环境变量 `XDG_CONFIG_HOME` 没有设定。

        `XDG_CONFIG_HOME` 的当前值是 `~/.config` (`/home/user/.config`)。

    3.  Fcitx5 设置目录:

        当前 fcitx5 设置目录是 `~/.config/fcitx5` (`/home/user/.config/fcitx5`)。

5.  当前用户:

    脚本作为 user (1000) 运行。

# Fcitx 状态:
1.  可执行文件:

    在 `/usr/bin/fcitx5` 找到了 fcitx5。

2.  版本:

    Fcitx 版本: `5.1.19`

3.  进程:

    找到了 2 个 fcitx5 进程:

            746 fcitx5
            822 fcitx5-plasma-t

4.  `fcitx5-remote`:

    `fcitx5-remote` 工作正常。

5.  DBus 界面:

    使用 `dbus-send` 来检查 dbus。

    DBus 名称 `org.fcitx.Fcitx5` 的所有者是 `:1.21`。

    DBus 名称 `org.fcitx.Fcitx5` 的 PID 所有者是 `746`。

    来自 dbus 的调试信息:

           Group [wayland:] has 14 InputContext(s)
          IC [2f2cfd8938d44b7994433a4bd599069f] program: frontend:wayland cap:80072 focus:0
          IC [1a38bc5fdf514f95a9d29a396862e334] program:plasmashell frontend:dbus cap:1e001800072 focus:0
          IC [01be6cea9f9140fb81b0e20a68cf7649] program:com.follow.clash frontend:dbus cap:6001000032 focus:0
          IC [3838b520cb284543a595d9283446dc2c] program:firefox frontend:dbus cap:6001000032 focus:0
          IC [25d0ebb3e6084b7c89f6f8d5065e370b] program:org.kde.konsole frontend:wayland cap:80072 focus:0
          IC [0b3b6ae391fb42bf9334dc4dfaf2e865] program:konsole frontend:dbus cap:e001820872 focus:1
          IC [9e9b5e059c8e41b196c4f82f67e18c65] program:plasmashell frontend:dbus cap:1e001800072 focus:0
          IC [b2778c06407c483c8267e08f14277dc8] program:google-chrome frontend:wayland cap:80072 focus:0
          IC [9b6930eda796450798f7523eb3497ae1] program:firefox frontend:dbus cap:e001000032 focus:0
          IC [c3033affc2c34287b4f066f199ad6216] program:firefox frontend:wayland cap:80072 focus:0
          IC [537cd65ccd394110b660ae80b3beb6c9] program:firefox frontend:dbus cap:e001000032 focus:0
          IC [55d7339e548841eb851e445bdc8ff948] program:konsole frontend:dbus cap:1e001800072 focus:0
          IC [2d2e0ba02dca4f98b7e8c0a012154a53] program:firefox frontend:wayland cap:80072 focus:0
          IC [f62668645d8248e9bc1f3632539f6371] program:firefox frontend:dbus cap:e001000032 focus:0
        Group [x11::1] has 0 InputContext(s)
        Input Context without group

# 前端设置:
此脚本检查的环境变量仅能显示当前命令行的环境。仍有可能您的环境并没有应用于整个桌面。您可以通过使用命令对某个无法正常工作的进程使用命令 `xargs -0 -L1 /proc/$PID/environ` 检查此进程的实际的环境变量。

## Xim:
1.  `${XMODIFIERS}`:

    环境变量 XMODIFIERS 已经正确地设为了“@im=fcitx”。
    从环境变量中获取的 Xim 服务名称为 fcitx.

2.  根窗口上的 XIM_SERVERS:

    Xim 服务的名称与环境变量中设置的相同。

## Qt:
1.  qt4 - `${QT4_IM_MODULE}`:

    环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。

    **`fcitx5-qt4-immodule-probing` 未找到.**

2.  qt5 - `${QT_IM_MODULE}`:

    环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。

    使用 fcitx5-qt5-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:



3.  qt6 - `${QT_IM_MODULE}`:

    环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。

    使用 fcitx5-qt6-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:

        QT_QPA_PLATFORM=wayland
        QT_IM_MODULE=fcitx
        IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContext

4.  Qt 输入法模块文件:

    找到了 fcitx5 的 qt6 输入法模块:`/usr/lib/qt6/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so`。
    找到了未知的 fcitx qt 模块:`/usr/lib/qt6/plugins/plasma/kcms/systemsettings/kcm_fcitx5.so`。
    找到了 fcitx5 qt6 模块:`/usr/lib/fcitx5/qt6/libfcitx-quickphrase-editor5.so`。
    找到了 fcitx5 的 qt 输入法模块:`/usr/lib/qt/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so`。

    下列错误也许并不准确,因为对路径所对应的 Qt 版本的猜测取决于发行版如何打包 Qt。如果您不使用任何对应版本的 Qt 程序,或者在 Wayland 下使用 Qt 的 text-input 支持,下列错误也不是严重问题。
    **无法找到 Qt4 的 fcitx5 输入法模块。**

## Gtk:
1.  gtk - `${GTK_IM_MODULE}`:

    环境变量 GTK_IM_MODULE 已经正确地设为了“fcitx”。

    **`fcitx5-gtk2-immodule-probing` 未找到.**

    使用 fcitx5-gtk3-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:

        GTK_IM_MODULE=fcitx

    使用 fcitx5-gtk4-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:



2.  `gtk-query-immodules`:

    1.  gtk 2:

        **无法找到 gtk 2 的 `gtk-query-immodules`。**

        **无法找到 gtk 2 的 fcitx5 输入法模块。**

    2.  gtk 3:

        在 `/usr/bin/gtk-query-immodules-3.0` 找到了 gtk `3.24.52` 的 `gtk-query-immodules`。
        版本行:

            # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.52

        已找到 gtk `3.24.52` 的 fcitx5 输入法模块。

            "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx5.so" 
            "fcitx" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
            "fcitx5" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 

3.  Gtk 输入法模块缓存:

    1.  gtk 2:

        **无法找到 gtk 2 的输入法模块缓存**

        **无法在缓存中找到 gtk 2 的 fcitx5 输入法模块。**

    2.  gtk 3:

        在 `/usr/lib/gtk-3.0/3.0.0/immodules.cache` 找到了 gtk `3.24.52` 的输入法模块缓存。
        版本行:

            # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.52

        已找到 gtk `3.24.52` 的 fcitx5 输入法模块。

            "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx5.so" 
            "fcitx" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 
            "fcitx5" "Fcitx5 (Flexible Input Method Framework5)" "fcitx5" "/usr/locale" "ja:ko:zh:*" 

4.  Gtk 输入法模块文件:

    1.  gtk 2:

        找到的全部 Gtk 2 输入法模块文件均存在。

    2.  gtk 3:

        找到的全部 Gtk 3 输入法模块文件均存在。

    3.  gtk 4:

        找到的全部 Gtk 4 输入法模块文件均存在。

# 配置:
## Fcitx 插件:
1.  插件配置文件目录:

    找到了 fcitx5 的插件配置目录:`/usr/share/fcitx5/addon`。

2.  插件列表:

    1.  找到了 21 个已启用的插件:

            Classic User Interface 5.1.19
            Clipboard 5.1.19
            DBus 5.1.19
            DBus Frontend 5.1.19
            Emoji 5.1.19
            Fcitx4 Frontend 5.1.19
            IBus Frontend 5.1.19
            Input method selector 5.1.19
            Keyboard 5.1.19
            KDE Input Method Panel 5.1.19
            Status Notifier 5.1.19
            Notification 5.1.19
            Quick Phrase 5.1.19
            Rime 5.1.13
            Spell 5.1.19
            Unicode 5.1.19
            DBus Virtual Keyboard 5.1.19
            Wayland 5.1.19
            Wayland Input method frontend 5.1.19
            XCB 5.1.19
            X Input Method Frontend 5.1.19

    2.  找到了 0 个被禁用的插件:

3.  插件库: 

    所有插件所需的库都被找到。

4.  用户界面:

    找到了 3 个已启用的用户界面插件:

        Classic User Interface
        KDE Input Method Panel
        DBus Virtual Keyboard

## 输入法:
1.  `/home/user/.config/fcitx5/profile`:

        [Groups/0]
        # Group Name
        Name=默认
        # Layout
        Default Layout=us
        # Default Input Method
        DefaultIM=rime

        [Groups/0/Items/0]
        # Name
        Name=keyboard-us
        # Layout
        Layout=

        [Groups/0/Items/1]
        # Name
        Name=rime
        # Layout
        Layout=

        [GroupOrder]
        0=默认

# 日志:
1.  `date`:

        2026年 06月 15日 星期一 12:57:26 CST

2.  `/home/user/.config/fcitx5/crash.log`:

    `/home/user/.config/fcitx5/crash.log` 未找到.

**警告:fcitx5-diagnose 的输出可能包含敏感信息,包括发行版名称,内核版本,正在运行的程序名称等。**

**尽管这些信息对于开发者诊断问题有帮助,请在公开发送到在线网站前检查并且根据需要移除的对应信息。**

太奇怪了。不过你试试 env -u WAYLAND_DISPLAY GTK_IM_MODULE=fcitx firefox

老问题,激活文本框以后按 Ctrl + Space 没反应

只有火狐出现这个问题了吗?要不要试试降级到151.0.3-1看看?

但刚刚发现新开了个配置文件就恢复正常了,之前也就动过一个 WebGPU 的高级选项,估计是那是以后就出问题了,恢复了那个选项还是不行,排障模式也不能解决

诶?更奇怪了。那你把prefs.js重命名试试呢?

确实是首选项的锅,只是这样重命名以后很多设置会丢失

接下来你就可以开始二分法查找了:先备份一份原始的prefs.js(或者为了安全起见把整个配置都备份了也行);然后

  1. 复制一份出来
  2. 删掉前一半
  3. 测试
  4. 如果问题复现,则跳转到第1步,否则:
  5. 恢复前一半,删掉后一半,测试确认问题还在,然后跳转到第1步

不好意思,我没有存多少数据,我刚刚图省事把配置文件删了,但现在可以确认的是不是 WebGPU 首选项的问题
再用几天看看会不会复现