~/.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 ?

是的,这是我的# 系统信息:

  1. 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

  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=" 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

  6. 桌面环境:

    无法确定桌面环境。

  7. XDG 会话类型:

    XDG_SESSION_TYPE='wayland'

  8. Bash 版本:

    BASH_VERSION='5.2.37(1)-release'

# 环境:

  1. DISPLAY:

    DISPLAY=':1'

    WAYLAND_DISPLAY='wayland-1'

  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)" };
    };

    1. xprop:

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

  3. Locale:

    1. 全部可用 locale:

    C
    C.utf8
    en_US.utf8
    POSIX
    zh_CN.utf8

    1. 当前 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/falser

    1. ${XDG_CONFIG_HOME}:

    环境变量 XDG_CONFIG_HOME 是设定为 /home/falser/.config

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

    1. Fcitx5 设置目录:

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

  5. 当前用户:

    脚本作为 falser (1000) 运行。

# Fcitx 状态:

  1. 可执行文件:

    /usr/bin/fcitx5 找到了 fcitx5 。

  2. 版本:

    Fcitx 版本: 5.1.12

  3. 进程:

    找到了 1 个 fcitx5 进程:

    1923 fcitx5

  4. fcitx5-remote:

    fcitx5-remote 工作正常。

  5. 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:

  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 的 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:

  1. 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

  2. gtk-query-immodules:

    1. gtk 2:

    /usr/bin/gtk-query-immodules-2.0 找到了 gtk 2.24.33gtk-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 找到了 gtk 2.24.33gtk-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 。

    1. gtk 3:

    /usr/bin/gtk-query-immodules-3.0 找到了 gtk 3.24.48gtk-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:*"

  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:*"
    /usr/lib32/gtk-2.0/2.10.0/immodules.cache 找到了 gtk 2.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

    1. gtk 3:

    /usr/lib/gtk-3.0/3.0.0/immodules.cache 找到了 gtk 3.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:*"

  4. Gtk 输入法模块文件:

    1. gtk 2:

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

    1. gtk 3:

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

    1. 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 是好的,在其他桌面环境就是彻底不能用的

我好像没遇到过