求助! idea 启用原生 wayland 后无法使用 fcitx 中文输入法
~/.config/JetBrains/IntelliJIdea2024.3/idea64.vmoption 配置
-Dawt.toolkit.name=WLToolkit 添加了这行,使用 xwayland 时输入法可用
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
-Xmx4096m
-Dide.managed.by.toolbox=/home/falser/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox
-Dsun.java2d.uiScale.enabled=true
-Dtoolbox.notification.token=1f048724-9f7a-4a09-8c0c-df9d44ad8fda
-Dtoolbox.notification.portFile=/home/falser/.cache/JetBrains/Toolbox/ports/d3924f5b-a107-45fc-be02-dd3ccead9373.port
-Dawt.toolkit.name=WLToolkit
hyprctl clients,可以看到是运行到 wayland 下了
Window 5fcf54171d60 -> tongpulsar_console – ~/.config/JetBrains/IntelliJIdea2024.3/idea64.vmoptions:
mapped: 1
hidden: 0
at: 10,47
size: 2028,1095
workspace: 5 (5)
floating: 0
pseudo: 0
monitor: 0
class: jetbrains-idea
title: tongpulsar_console – ~/.config/JetBrains/IntelliJIdea2024.3/idea64.vmoptions
initialClass: jetbrains-idea
initialTitle:
pid: 83963
xwayland: 0
pinned: 0
fullscreen: 0
fullscreenClient: 0
grouped: 0
tags:
swallowing: 0
focusHistoryID: 5
inhibitingIdle: 0
请问下各位大佬有解决办法吗
用 fcitx5 ?
是的,这是我的# 系统信息:
uname -a
:Linux archlinux 6.13.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 22 Feb 2025 00:37:05 +0000 x86_64 GNU/Linux
lsb_release -a
:LSB Version: n/a
Distributor ID: Arch
Description: Arch Linux
Release: rolling
Codename: n/alsb_release -d
:Description: Arch Linux
/etc/lsb-release
:DISTRIB_ID="Arch"
DISTRIB_RELEASE="rolling"
DISTRIB_DESCRIPTION="Arch Linux"/etc/os-release
:NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL=" archlinux.org/"
DOCUMENTATION_URL=" wiki.archlinux.org/"
SUPPORT_URL=" bbs.archlinux.org/"
BUG_REPORT_URL=" gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL=" terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo桌面环境:
无法确定桌面环境。
XDG 会话类型:
XDG_SESSION_TYPE='wayland'
Bash 版本:
BASH_VERSION='5.2.37(1)-release'
# 环境:
DISPLAY:
DISPLAY=':1'
WAYLAND_DISPLAY='wayland-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)" };
};xprop
:
_XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", ""
Locale:
- 全部可用 locale:
C
C.utf8
en_US.utf8
POSIX
zh_CN.utf8- 当前 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=目录:
- 主目录:
/home/falser
${XDG_CONFIG_HOME}
:
环境变量
XDG_CONFIG_HOME
是设定为/home/falser/.config
。XDG_CONFIG_HOME
的当前值是~/.config
(/home/falser/.config
)。- Fcitx5 设置目录:
当前 fcitx5 设置目录是
~/.config/fcitx5
(/home/falser/.config/fcitx5
)。当前用户:
脚本作为 falser (1000) 运行。
# Fcitx 状态:
可执行文件:
在
/usr/bin/fcitx5
找到了 fcitx5 。版本:
Fcitx 版本:
5.1.12
进程:
找到了 1 个 fcitx5 进程:
1923 fcitx5
fcitx5-remote
:fcitx5-remote
工作正常。DBus 界面:
使用
dbus-send
来检查 dbus 。DBus 名称
org.fcitx.Fcitx5
的所有者是:1.57
。DBus 名称
org.fcitx.Fcitx5
的 PID 所有者是1923
。来自 dbus 的调试信息:
Group [wayland:] has 8 InputContext(s)
IC [f752447188e442f6a5c5ca9a475b6835] program:Microsoft-edge frontend:wayland_v2 cap:72 focus:0
IC [4e7d8373a09f4de79d478d003de70ba3] program:zen frontend:wayland_v2 cap:72 focus:0
IC [20de7386f9ed484ab47190baeed0b200] program:wechat frontend:wayland_v2 cap:100000072 focus:0
IC [b4340167e2ec40a1ac9c8016e77b40ed] program:jetbrains-idea frontend:wayland_v2 cap:100000072 focus:0
IC [221ed0f1d4094aedbc9c367c0a03ab8b] program:clash-verge frontend:wayland_v2 cap:100000072 focus:0
IC [04937c402873485e94731b323c8fc0d6] program:kitty frontend:wayland_v2 cap:100000072 focus:1
IC [0af76c523f9f405aab41ec0985f135ea] program:Feishu frontend:wayland_v2 cap:100000072 focus:0
IC [f7daf61527764077a4c8f25a26c74b5c] program: frontend:wayland_v2 cap:100000072 focus:0
Group [x11::1] has 3 InputContext(s)
IC [2c1f7e758b4742feab0da104ea948313] program:microsoft-edge frontend:dbus cap:6000000032 focus:0
IC [fa590881e7964ceba0b5a7859b59cd8a] program:wechat frontend:fcitx4 cap:800072 focus:0
IC [630896dfafa74a928f3b7b95b84c2bf4] program:feishu frontend:dbus cap:6000000032 focus:0
Input Context without group
# 前端设置:
此脚本检查的环境变量仅能显示当前命令行的环境。仍有可能您的环境并没有应用于整个桌面。您可以通过使用命令对某个无法正常工作的进程使用命令 xargs -0 -L1 /proc/$PID/environ
检查此进程的实际的环境变量。
## Xim:
${XMODIFIERS}
:环境变量 XMODIFIERS 已经正确地设为了“@im=fcitx”。
从环境变量中获取的 Xim 服务名称为 fcitx.根窗口上的 XIM_SERVERS:
Xim 服务的名称与环境变量中设置的相同。
## Qt:
qt4 -
${QT4_IM_MODULE}
:环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。
fcitx5-qt4-immodule-probing
未找到.qt5 -
${QT_IM_MODULE}
:环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。
使用 fcitx5-qt5-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:
QT_QPA_PLATFORM=wayland
QT_IM_MODULE=fcitx
IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContextqt6 -
${QT_IM_MODULE}
:环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。
使用 fcitx5-qt6-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:
QT_QPA_PLATFORM=wayland
QT_IM_MODULE=fcitx
IM_MODULE_CLASSNAME=fcitx::QFcitxPlatformInputContextQt 输入法模块文件:
找到了 fcitx5 的 qt 输入法模块:
/usr/lib/qt/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so
。
找到了未知的 fcitx qt 模块:/usr/lib/office6/qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
。
找到了 fcitx5 qt6 模块:/usr/lib/fcitx5/qt6/libfcitx-quickphrase-editor5.so
。
找到了 fcitx5 qt5 模块:/usr/lib/fcitx5/qt5/libfcitx-quickphrase-editor5.so
。
找到了未知的 fcitx qt 模块:/usr/lib/qt6/plugins/plasma/kcms/systemsettings/kcm_fcitx5.so
。
找到了 fcitx5 的 qt6 输入法模块:/usr/lib/qt6/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so
。下列错误也许并不准确,因为对路径所对应的 Qt 版本的猜测取决于发行版如何打包 Qt 。如果您不使用任何对应版本的 Qt 程序,或者在 Wayland 下使用 Qt 的 text-input 支持,下列错误也不是严重问题。
无法找到 Qt4 的 fcitx5 输入法模块。
## Gtk:
gtk -
${GTK_IM_MODULE}
:请使用您发行版提供的工具将环境变量 GTK_IM_MODULE 设为 "fcitx" 或者将
export GTK_IM_MODULE=fcitx
添加到您的~/.xprofile
中。参见 输入法相关的环境变量:GTK_IM_MODULE。如果您的混成器完全支持 gtk 使用的 text-input 协议,您也可以使用 gtk 内置的 Wayland 模块。
使用 fcitx5-gtk2-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:
GTK_IM_MODULE=xim
使用 fcitx5-gtk3-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:
GTK_IM_MODULE=wayland
使用 fcitx5-gtk4-immodule-probing 来检查在当前环境下将被实际使用的输入法模块:
GTK_IM_MODULE=wayland
gtk-query-immodules
:- gtk 2:
在
/usr/bin/gtk-query-immodules-2.0
找到了 gtk2.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:*"
在/usr/bin/gtk-query-immodules-2.0-32
找到了 gtk2.24.33
的gtk-query-immodules
。
版本行:# Created by /usr/bin/gtk-query-immodules-2.0-32 from gtk+-2.24.33
无法在
/usr/bin/gtk-query-immodules-2.0-32
的输出中找到 fcitx5 。- gtk 3:
在
/usr/bin/gtk-query-immodules-3.0
找到了 gtk3.24.48
的gtk-query-immodules
。
版本行:# Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.48
已找到 gtk
3.24.48
的 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:*"Gtk 输入法模块缓存:
- gtk 2:
在
/usr/lib/gtk-2.0/2.10.0/immodules.cache
找到了 gtk2.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:*"
在/usr/lib32/gtk-2.0/2.10.0/immodules.cache
找到了 gtk2.24.33
的输入法模块缓存。
版本行:# Created by /usr/bin/gtk-query-immodules-2.0-32 from gtk+-2.24.33
无法输入法模块缓存
/usr/lib32/gtk-2.0/2.10.0/immodules.cache
中找到 fcitx5- gtk 3:
在
/usr/lib/gtk-3.0/3.0.0/immodules.cache
找到了 gtk3.24.48
的输入法模块缓存。
版本行:# Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.48
已找到 gtk
3.24.48
的 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:*"Gtk 输入法模块文件:
- gtk 2:
找到的全部 Gtk 2 输入法模块文件均存在。
- gtk 3:
找到的全部 Gtk 3 输入法模块文件均存在。
- gtk 4:
找到的全部 Gtk 4 输入法模块文件均存在。
以上为 fcitx5-diagnose 的输出
github.com/hyprwm/Hyprland/discussions/421
I use kde btw ,linux 桌面太分裂了,选个主流的坑少。
我也想回 kde 了,hyprland 动画好看
我现在基本已经放弃在 wayland 上使用输入法了。只能等应用 wayland 的支持更好一点再说。
现在要么使用 wayland 就干脆不输入中文,要么就使用 x11 打开应用。
目前我知道的包括 chrome 系列( chromium/brave )、Electron 框架的 app (比如 vscode 、Electronmail )、jetbrain 系列等等都无法在 wayland 上使用输入法。但是 firefox 系列、thunderbird 可以。
反正 kde 的 Wayland 支持还可以了,chromium 系、Electron 系按照 archlinux wiki 设置,Wayland 下 fcitx5 输入中文没有任何问题了。jetbrain 不清楚。 现在的 Wayland 我认为是比较成熟了,一两年前确实还是一坨,现在是我觉得是正常可用了
youtrack.jetbrains.com/issue/JBR-5672/Wayland-support-input-methods
可能 WLToolkit 还不支持 Input-Method-V3 或 V1 。
的确,我发现 chromium 系列和 electron 系列去年添加了 text-input-v3 的支持,可以正常使用输入法了。jetbrain 的似乎还没有。
Ubuntu 24.04 + wayland + gnome + ibus + rime ,没遇到过输入法问题
text-input-v3 有 bug ,说是 “由于对 text-input-v3 协议的理解不同,在使用 KWin 时会出现一些问题”,chrome 看 B 站长按右方向键快进无效,会变成连续跳跃几秒进度条。所以我还是用的 text-input-v1
#7 这些应用其实也能用中文输入法, 但是问题很多, 经常输入法候选框不在输入的光标处, 甚至经常在另一个屏幕上, 十分难受.
我用的 gnome+fcitx5 ,自从 electron33 开启 text-input-v3 之后你说的问题通通消失了
我记得之前 ibus 有漏字的问题(主要是 chrome 系严重),现在已经解决了吗。
linux 上我直接就没装中文输入法.
能英文尽量英文,不能英文就用谷歌的网页输入法.
jb 系列软件的 wayland 是测试版,还不支持输入法,官方回复已经在新建文件夹了
目前还不支持。早就说在开发中了,结果到现在杳无音讯。不知道为啥这么慢:
youtrack.jetbrains.com/issue/JBR-5672/Wayland-support-input-methods
sway 也是,后来干脆切 kde 了
说难听的,wayland 和 wayland 之间的差异比 x11 和 xwayland 之间的差异还大,wayland 生态就是个畸形的、到处分裂的怪胎,这一切都源于 wayland 开发团队的自以为是。说正经的,你光说在 wayland 下怎么怎么样,没有任何意义,你必须带上你的发行版和桌面环境信息,同样一个号称支持了 wayland 的程序,完全有可能在 GNOME 是好的,在其他桌面环境就是彻底不能用的
我好像没遇到过
这两天,杀毒软件又出事了。还记得2007年5月,那次是Norton把简体中文Windows下的netapi32.dll 和 lsasrv.dll。最近的一次是,2008年11月…
9 月更新后,最近几天我打开了一个 RAR 压缩文件,没想到 Windows 跳了个列表出来,提示我可以选择其他应用程序打开该文件,我仔细一看,发现列表内有 Windows 资…
作为程序员,能 hold 得住开源本地化的就尽量用开源本地化(且免费)的吧,闭源或云端必有出事锁死的一天。 所以推荐: AFFiNE github.com/toeveryt…