如题, Linux 版本战争雷霆(vulkan)无法通过 fcitx 输入法框架输入中文
以下是环境及发行版信息:
Operating System: Arch Linux
KDE Plasma Version: 6.3.5
Kernel Version: 6.14.7-zen2-1-zen (64-bit)
Graphics Platform: Wayland
以下是环境变量信息(全局):
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LOGNAME=ajax
MAIL=/var/spool/mail/ajax
MANAGERPID=936
MEMORY_PRESSURE_WATCH=/sys/fs/cgroup/user.slice/user-1000.slice/[email protected]/session.slice/plasma-kwin_wayland.service/memory.pressure
MEMORY_PRESSURE_WRITE=c29tZSAyMDAwMDAgMjAwMDAwMAA=
MOTD_SHOWN=pam
OLDPWD=/home/ajax
PAM_KWALLET5_LOGIN=/run/user/1000/kwallet5.socket
PATH=/home/ajax/.x-cmd.root/local/data/pkg/sphere/X/l/j/h/bin:/home/ajax/.x-cmd.root/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/ajax/.local/share/pnpm:/home/ajax/Program/miniconda3/bin:/home/ajax/.local/share/gem/ruby/3.3.0/bin:/home/ajax/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/opt/rocm/bin:/opt/rocm/hip/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/rocm/bin:/home/ajax/Program/bin:/home/ajax/.local/share/JetBrains/Toolbox/scripts:/home/ajax/.x-cmd.root/local/data/triarii/bin
PROFILEHOME=
PWD=/home/ajax
QT_AUTO_SCREEN_SCALE_FACTOR=0
QT_IM_MODULE=fcitx
QT_WAYLAND_RECONNECT=1
SDL_IM_MODULE=fcitx
SESSION_MANAGER=local/wzy-workstation:@/tmp/.ICE-unix/1500,unix/wzy-workstation:/tmp/.ICE-unix/1500
SHELL=/usr/bin/zsh
SHELL_SESSION_ID=61a52e2fb72448e282613a870fa9b1b8
SYSTEMD_EXEC_PID=1328
TERM=xterm-256color
USER=ajax
WAYLAND_DISPLAY=wayland-0
WINDOWID=94358563033328
XAUTHORITY=/run/user/1000/xauth_BKAuqZ
XDG_CONFIG_DIRS=/home/ajax/.config/kdedefaults:/etc/xdg
XDG_CURRENT_DESKTOP=KDE
XDG_DATA_DIRS=/home/ajax/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_MENU_PREFIX=plasma-
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=KDE
XDG_SESSION_ID=2
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1
XDG_SESSION_TYPE=wayland
XDG_VTNR=1
XIM=fcitx
XIM_PROGRAM=fcitx
XMODIFIERS=@im=fcitx
输入法框架: fcitx5
这是fcitx5-diagnose工具输出
➜ ~ fcitx5-diagnose
# 系统信息:
1. `uname -a`:
Linux wzy-workstation 6.14.7-zen2-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Thu, 22 May 2025 05:37:13 +0000 x86_64 GNU/Linux
2. `lsb_release -a`:
LSB Version: n/a
Distributor ID: Arch
Description: Arch Linux
Release: rolling
Codename: n/a
3. `lsb_release -d`:
Description: Arch Linux
4. `/etc/lsb-release`:
DISTRIB_ID="Arch"
DISTRIB_RELEASE="rolling"
DISTRIB_DESCRIPTION="Arch Linux"
5. `/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
6. 桌面环境:
桌面环境为 `kde`。
7. XDG 会话类型:
XDG_SESSION_TYPE='wayland'
8. Bash 版本:
BASH_VERSION='5.2.37(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
en_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/ajax
2. `${XDG_CONFIG_HOME}`:
环境变量 `XDG_CONFIG_HOME` 没有设定。
`XDG_CONFIG_HOME` 的当前值是 `~/.config` (`/home/ajax/.config`)。
3. Fcitx5 设置目录:
当前 fcitx5 设置目录是 `~/.config/fcitx5` (`/home/ajax/.config/fcitx5`)。
5. 当前用户:
脚本作为 ajax (1000) 运行。
# Fcitx 状态:
1. 可执行文件:
在 `/usr/bin/fcitx5` 找到了 fcitx5。
2. 版本:
Fcitx 版本: `5.1.12`
3. 进程:
找到了 4 个 fcitx5 进程:
1410 fcitx5-wayland-
1411 fcitx5
1491 fcitx5-plasma-t
11155 fcitx5-config-q
4. `fcitx5-remote`:
`fcitx5-remote` 工作正常。
5. DBus 界面:
使用 `dbus-send` 来检查 dbus。
DBus 名称 `org.fcitx.Fcitx5` 的所有者是 `:1.28`。
DBus 名称 `org.fcitx.Fcitx5` 的 PID 所有者是 `1411`。
来自 dbus 的调试信息:
Group [x11::1] has 1 InputContext(s)
IC [705b47ee32a44994afeedd7854efb1da] program:chromium frontend:dbus cap:6000000020 focus:0
Group [wayland:] has 20 InputContext(s)
IC [b5a7ec59488a49bba390d748acea8927] program:spectacle frontend:dbus cap:1e001800060 focus:0
IC [de9c049cc4df498a87ad0fa0bf03f31f] program:org.kde.spectacle frontend:wayland cap:60 focus:0
IC [35100124be724a2390d27ff1be24ba55] program:konsole frontend:dbus cap:e001820860 focus:1
IC [cf851e6684a241d6893f4a435664f373] program:plasmashell frontend:dbus cap:1e001800060 focus:0
IC [d711794cbb454f45b6ce147e00fa8e64] program:plasmashell frontend:dbus cap:1e001800060 focus:0
IC [343354330fab4fcc9ff6f2078aed3701] program:fcitx5-config-qt frontend:dbus cap:1e001800060 focus:0
IC [688e2d6252c54300a0d7310eb2f57daa] program:org.fcitx.fcitx5-config-qt frontend:wayland cap:60 focus:0
IC [9887248fe2fa4c128b0b83cb62826774] program: frontend:wayland cap:60 focus:0
IC [dd909775f12c48c695656ceaa2d642f3] program:plasmashell frontend:dbus cap:1e001800060 focus:0
IC [76d7f06560b242529c403a6522f12763] program:launcher frontend:wayland cap:60 focus:0
IC [6f3a438c6b3442e29feee5003c99be22] program:org.kde.konsole frontend:wayland cap:60 focus:0
IC [f24391e551974db19564238b4471221e] program:plasmashell frontend:dbus cap:1e001800060 focus:0
IC [604ea3c25b7b426daf60d12cc4568c0b] program:org.kde.konsole frontend:wayland cap:60 focus:0
IC [98745753899b4c57b93460a9f1208f09] program:konsole frontend:dbus cap:e001820860 focus:0
IC [d5dff66ba3cc4518bb61d2da45784e28] program:konsole frontend:dbus cap:e001820860 focus:0
IC [7dd980edc0dd4a11a9304ccfd6195d36] program:Loading... frontend:wayland cap:60 focus:0
IC [eb27258536eb4e66bd68ebe5570d7288] program:systemsettings frontend:wayland cap:60 focus:0
IC [0873688fc7c94e3c8ec2594ed2093a01] program:org.kde.konsole frontend:wayland cap:60 focus:0
IC [3bceb4dca97c4120ba93a88d94af93bc] program:systemsettings frontend:dbus cap:1e001800060 focus:0
IC [e3594221b78a44208f971e8ca0953b22] program:Chromium frontend:wayland cap:60 focus:0
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 来检查在当前环境下将被实际使用的输入法模块:
QT_QPA_PLATFORM=wayland
QT_IM_MODULE=fcitx
IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContext
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 的 qt 输入法模块:`/usr/lib/qt/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so`。
找到了 fcitx5 qt5 模块:`/usr/lib/fcitx5/qt5/libfcitx-quickphrase-editor5.so`。
找到了 fcitx5 qt6 模块:`/usr/lib/fcitx5/qt6/libfcitx-quickphrase-editor5.so`。
下列错误也许并不准确,因为对路径所对应的 Qt 版本的猜测取决于发行版如何打包 Qt。如果您不使用任何对应版本的 Qt 程序,或者在 Wayland 下使用 Qt 的 text-input 支持,下列错误也不是严重问题。
**无法找到 Qt4 的 fcitx5 输入法模块。**
## Gtk:
1. gtk - `${GTK_IM_MODULE}`:
环境变量 GTK_IM_MODULE 已经正确地设为了“fcitx”。
使用 fcitx5-gtk2-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:
GTK_IM_MODULE=fcitx
使用 fcitx5-gtk3-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:
GTK_IM_MODULE=fcitx
使用 fcitx5-gtk4-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:
GTK_IM_MODULE=fcitx
2. `gtk-query-immodules`:
1. gtk 2:
在 `/usr/bin/gtk-query-immodules-2.0` 找到了 gtk `2.24.33` 的 `gtk-query-immodules`。
版本行:
# Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.33
已找到 gtk `2.24.33` 的 fcitx5 输入法模块。
"/usr/lib/gtk-2.0/2.10.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:*"
2. gtk 3:
在 `/usr/bin/gtk-query-immodules-3.0` 找到了 gtk `3.24.49` 的 `gtk-query-immodules`。
版本行:
# Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.49
已找到 gtk `3.24.49` 的 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:*"
在 `/usr/bin/gtk-query-immodules-3.0-32` 找到了 gtk `3.24.49` 的 `gtk-query-immodules`。
版本行:
# Created by /usr/bin/gtk-query-immodules-3.0-32 from gtk+-3.24.49
**无法在 `/usr/bin/gtk-query-immodules-3.0-32` 的输出中找到 fcitx5。**
3. Gtk 输入法模块缓存:
1. gtk 2:
在 `/usr/lib/gtk-2.0/2.10.0/immodules.cache` 找到了 gtk `2.24.33` 的输入法模块缓存。
版本行:
# Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.33
已找到 gtk `2.24.33` 的 fcitx5 输入法模块。
"/usr/lib/gtk-2.0/2.10.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:*"
2. gtk 3:
在 `/usr/lib/gtk-3.0/3.0.0/immodules.cache` 找到了 gtk `3.24.49` 的输入法模块缓存。
版本行:
# Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.49
已找到 gtk `3.24.49` 的 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:*"
在 `/usr/lib32/gtk-3.0/3.0.0/immodules.cache` 找到了 gtk `3.24.49` 的输入法模块缓存。
版本行:
# Created by /usr/bin/gtk-query-immodules-3.0-32 from gtk+-3.24.49
**无法输入法模块缓存 `/usr/lib32/gtk-3.0/3.0.0/immodules.cache` 中找到 fcitx5**
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. 找到了 28 个已启用的插件:
Simplified and Traditional Chinese Translation 5.1.8
Classic User Interface 5.1.12
Clipboard 5.1.12
Cloud Pinyin 5.1.8
DBus 5.1.12
DBus Frontend 5.1.12
Emoji 5.1.12
Fcitx4 Frontend 5.1.12
Full width character 5.1.8
IBus Frontend 5.1.12
Input method selector 5.1.12
Keyboard 5.1.12
KDE Input Method Panel 5.1.12
Status Notifier 5.1.12
Notification 5.1.12
Pinyin 5.1.8
Extra Pinyin functionality 5.1.8
Punctuation 5.1.8
Quick Phrase 5.1.12
Rime 5.1.10
Spell 5.1.12
Table 5.1.8
Unicode 5.1.12
DBus Virtual Keyboard 5.1.12
Wayland 5.1.12
Wayland Input method frontend 5.1.12
XCB 5.1.12
X Input Method Frontend 5.1.12
2. 找到了 0 个被禁用的插件:
3. 插件库:
所有插件所需的库都被找到。
4. 用户界面:
找到了 3 个已启用的用户界面插件:
Classic User Interface
KDE Input Method Panel
DBus Virtual Keyboard
## 输入法:
1. `/home/ajax/.config/fcitx5/profile`:
[Groups/0]
# Group Name
Name=默认
# Layout
Default Layout=us
# Default Input Method
DefaultIM=pinyin
[Groups/0/Items/0]
# Name
Name=keyboard-us
# Layout
Layout=
[Groups/0/Items/1]
# Name
Name=pinyin
# Layout
Layout=us
[GroupOrder]
0=默认
# 日志:
1. `date`:
2025年 05月 28日 星期三 22:28:25 CST
2. `/home/ajax/.config/fcitx5/crash.log`:
=========================
Fcitx 5.1.12 -- Get Signal No.: 6
Date: try "date -d @1741547147" if you are using GNU date ***
ProcessID: 1327
/usr/bin/fcitx5(+0xebfc) [0x58e6c4a48bfc]
/usr/lib/libc.so.6(+0x3dcd0) [0x71309dc4bcd0]
/usr/lib/libc.so.6(+0x97624) [0x71309dca5624]
/usr/lib/libc.so.6(gsignal+0x20) [0x71309dc4bba0]
/usr/lib/libc.so.6(abort+0x26) [0x71309dc33582]
/usr/lib/libc.so.6(+0x263bf) [0x71309dc343bf]
/usr/lib/libc.so.6(+0xa1765) [0x71309dcaf765]
/usr/lib/libc.so.6(+0xa5104) [0x71309dcb3104]
/usr/lib/libc.so.6(malloc+0x10f) [0x71309dcb429f]
/usr/lib/libxkbcommon.so.0(+0x195e4) [0x71309e1ca5e4]
/usr/lib/libxkbcommon.so.0(+0x1e440) [0x71309e1cf440]
/usr/lib/libxkbcommon.so.0(xkb_keymap_new_from_buffer+0x71) [0x71309e1d5331]
/usr/lib/fcitx5/libwaylandim.so(+0x22bf3) [0x71309c4d4bf3]
/usr/lib/fcitx5/libwaylandim.so(+0x363c5) [0x71309c4e83c5]
/usr/lib/libffi.so.8(+0x7976) [0x71309e3e4976]
/usr/lib/libffi.so.8(+0x412c) [0x71309e3e112c]
/usr/lib/libffi.so.8(ffi_call+0x12e) [0x71309e3e3f0e]
/usr/lib/libwayland-client.so.0(+0x48b0) [0x71309e3ec8b0]
/usr/lib/libwayland-client.so.0(+0x5139) [0x71309e3ed139]
/usr/lib/libwayland-client.so.0(wl_display_dispatch_queue_pending+0x73) [0x71309e3ed553]
/usr/lib/fcitx5/libwayland.so(+0x1feea) [0x71309e132eea]
/usr/lib/libFcitx5Utils.so.2(+0x3b5fd) [0x71309e26d5fd]
/usr/lib/libFcitx5Utils.so.2(+0x3212c) [0x71309e26412c]
/usr/lib/libsystemd.so.0(+0x3dcda) [0x71309db28cda]
/usr/lib/libsystemd.so.0(sd_event_dispatch+0x13e) [0x71309db2e64e]
/usr/lib/libsystemd.so.0(sd_event_run+0x119) [0x71309db2e8d9]
/usr/lib/libsystemd.so.0(sd_event_loop+0x68) [0x71309db2eab8]
/usr/lib/libFcitx5Utils.so.2(_ZN5fcitx9EventLoop4execEv+0x2c) [0x71309e28b2ac]
/usr/lib/libFcitx5Core.so.7(_ZN5fcitx8Instance4execEv+0x64) [0x71309e33cfc4]
/usr/bin/fcitx5(+0xcfd8) [0x58e6c4a46fd8]
/usr/lib/libc.so.6(+0x27488) [0x71309dc35488]
/usr/lib/libc.so.6(__libc_start_main+0x8c) [0x71309dc3554c]
**警告:fcitx5-diagnose 的输出可能包含敏感信息,包括发行版名称,内核版本,正在运行的程序名称等。**
**尽管这些信息对于开发者诊断问题有帮助,请在公开发送到在线网站前检查并且根据需要移除的对应信息。**
桌面环境: KDE Plasma 6 (wayland显示系统, 通过XWayland视频桥接程序使用x11的战争雷霆)
这是x11应用程序安全设置排错, 但无法解决问题:
warthunder的独立启动器/steam版本均无法输入中文(确切地说, 完全无法启用输入法框架), 而在除战争雷霆外应用程序表现正常
如果在外部输入并在游戏中粘贴, 会出现"隐形字符"情况, 而游戏中其他中文及utf-8字符正常显示
另外 战争雷霆似乎独占了快捷键
启动器设置: