fcitx / fcitx5

maybe a new fcitx.
1.62k stars 118 forks source link

最近的 proton experimental 运行原神游戏内聊天可以弹出候选词窗口但是无法上词 #816

Closed matrikslee closed 1 year ago

matrikslee commented 1 year ago

Describe the bug 通过Steam Play提供的 proton experimental 运行原神游戏,游戏内聊天可以弹出候选词窗口但是无法上词,启动后的第一次可以上词但是之后就再怎么弄都不行了,按键弹出候选词窗口进行,选词后候选词窗口关闭但是文本框不会出现应输入的字/词

To Reproduce

  1. archlinux 登录 kde wayland 用户环境,
  2. 打开steam客户端(native runtime),
  3. 打开个人手动添加到steam里面用proton experimental 运行的非steam游戏—原神
  4. 游戏内好友聊天框,使用alt-shift快捷键切换输入法(中文—拼音),可以弹出输入法切换提示
  5. 选中文本框按键输入字符,可以弹出候选词但是只有第一次输入可以上词到文本框,之后则是每次输入完之后候选词窗口关闭但是文本框没有出现应输入的字/词

Expected behavior 能在游戏内正常输入字/词

Desktop (please complete the following information):

Additional context archlinux系统,一直滚动,以前功能都是正常的,steam 客户端用的是beta测试,proton也是一直追的最新的proton experimental

输入法的设置是能用虚拟键盘就用虚拟键盘(通过kde 内置的输入法设置),不能用的部分才通过环境变量启用

wengxt commented 1 year ago

@matrikslee 听起来不是fcitx的问题

matrikslee commented 1 year ago

系统信息:

  1. uname -a:

    Linux matriks-arch 6.3.9-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 21 Jun 2023 20:46:20 +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://bugs.archlinux.org/"
    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.1.16(1)-release'

环境:

  1. DISPLAY:

    DISPLAY=':0'
    
    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)+capslock(ctrl_modifier)" };
          xkb_geometry  { include "pc(pc105)" };
      };
    2. xprop:

      _XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", "caps:ctrl_modifier"
  3. Locale:

    1. 全部可用 locale:

      C
      C.UTF-8
      en_US.utf8
      POSIX
      zh_CN
      zh_CN.gb18030
      zh_CN.gb2312
      zh_CN.gbk
      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/matrikslee
    2. ${XDG_CONFIG_HOME}:

      环境变量 XDG_CONFIG_HOME 没有设定。

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

    3. Fcitx5 设置目录:

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

  5. 当前用户:

    脚本作为 matrikslee (1000) 运行。

Fcitx 状态:

  1. 可执行文件:

    /usr/bin/fcitx5 找到了 fcitx5。

  2. 版本:

    Fcitx 版本: 5.0.23

  3. 进程:

    找到了 2 个 fcitx5 进程:

       1092 fcitx5
       1111 fcitx5-plasma-t
  4. fcitx5-remote:

    fcitx5-remote 工作正常。

  5. DBus 界面:

    使用 dbus-send 来检查 dbus。

    DBus 名称 org.fcitx.Fcitx5 的所有者是 :1.15

    DBus 名称 org.fcitx.Fcitx5 的 PID 所有者是 1092

    来自 dbus 的调试信息:

       Group [x11::0] has 0 InputContext(s)
    Group [wayland:] has 10 InputContext(s)
      IC [7cee8b2b97b0416e9d60adb5e689c230] program:steam frontend:wayland cap:80052 focus:0
      IC [6d031780797947c8b0b2de3a7a3aa122] program: frontend:ibus cap:12 focus:0
      IC [c5450cce23c54987b6377a451776e1b5] program: frontend:ibus cap:12 focus:0
      IC [394c25a6f99047a9a7644d845c85a64d] program:org.kde.plasmashell frontend:wayland cap:8000d0052 focus:0
      IC [2decd819239947f3906a5d96c9334c0c] program:org.kde.yakuake frontend:wayland cap:52 focus:1
      IC [43e568f9a8af4bcfae969dfb349b15e8] program: frontend:ibus cap:12 focus:0
      IC [c3ebb469acd04fa285be1d47855b6530] program: frontend:ibus cap:12 focus:0
      IC [316a52c867484f29862f64fa835d26e2] program:firefox frontend:wayland cap:52 focus:0
      IC [3e2fe4751ca847868480a763a5a45d3e] program:org.telegram.desktop frontend:wayland cap:8000d0052 focus:0
      IC [ec504ec8d1c84a3f8364114fdb9a21da] program: frontend:wayland cap:52 focus:0
    Input Context without group

Fcitx 配置界面:

  1. 配置工具封装:

    /usr/bin/fcitx5-configtool 找到了 fcitx5-configtool。

  2. Qt 的配置界面:

    /usr/bin/fcitx5-config-qt 找到了 fcitx5-config-qt

  3. KDE 的配置界面:

    找到了 fcitx5 的 kcm 模块。

    kcm_fcitx5                     - 配置输入法

前端设置:

The environment variable checked by this script only shows the environment under current shell. It is still possible that you did not set the environment to the whole graphic desktop session. You may inspect the actual environment variable of a certain process by using xargs -0 -L1 /proc/$PID/environ for a certain process that you find not working.

Xim:

  1. ${XMODIFIERS}:

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

  2. 根窗口上的 XIM_SERVERS:

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

Qt:

  1. qt4 - ${QT4_IM_MODULE}:

    请使用您发行版提供的工具将环境变量 QT_IM_MODULE 设为 "fcitx" 或者将 export QT_IM_MODULE=fcitx 添加到您的 ~/.xprofile 中。参见 输入法相关的环境变量:QT_IM_MODULE

    fcitx5-qt4-immodule-probing 未找到.

  2. qt5 - ${QT_IM_MODULE}:

    请使用您发行版提供的工具将环境变量 QT_IM_MODULE 设为 "fcitx" 或者将 export QT_IM_MODULE=fcitx 添加到您的 ~/.xprofile 中。参见 输入法相关的环境变量:QT_IM_MODULE

    如果您的混成器完全支持 qt5 使用的 text-input 协议,您也可以使用 qt5 内置的 Wayland 模块。

    fcitx5-qt5-immodule-probing 未找到.

  3. qt6 - ${QT_IM_MODULE}:

    请使用您发行版提供的工具将环境变量 QT_IM_MODULE 设为 "fcitx" 或者将 export QT_IM_MODULE=fcitx 添加到您的 ~/.xprofile 中。参见 输入法相关的环境变量:QT_IM_MODULE

    如果您的混成器完全支持 qt6 使用的 text-input 协议,您也可以使用 qt6 内置的 Wayland 模块。

    fcitx5-qt6-immodule-probing 未找到.

  4. Qt 输入法模块文件:

    找到了 fcitx5 的 qt 输入法模块:/usr/lib/qt/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so。 找到了未知的 fcitx qt 模块:/usr/lib/qt/plugins/kcms/kcm_fcitx5.so。 找到了 fcitx5 的 qt6 输入法模块:/usr/lib/qt6/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so。 找到了未知的 fcitx qt 模块:/usr/lib/office6/qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so。 找到了 fcitx5 qt5 模块:/usr/lib/fcitx5/qt5/libfcitx-quickphrase-editor5.so。 找到了 fcitx5 的 qt4 输入法模块:/usr/lib/qt4/plugins/inputmethods/libqtim-fcitx5.so

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

Gtk:

  1. gtk - ${GTK_IM_MODULE}:

    请使用您发行版提供的工具将环境变量 GTK_IM_MODULE 设为 "fcitx" 或者将 export GTK_IM_MODULE=fcitx 添加到您的 ~/.xprofile 中。参见 输入法相关的环境变量:GTK_IM_MODULE

    如果您的混成器完全支持 gtk 使用的 text-input 协议,您也可以使用 gtk 内置的 Wayland 模块。

    Using fcitx5-gtk2-immodule-probing to check the actual im module to be used under current environment:

    GTK_IM_MODULE=xim

    Using fcitx5-gtk3-immodule-probing to check the actual im module to be used under current environment:

    GTK_IM_MODULE=wayland

    Using fcitx5-gtk4-immodule-probing to check the actual im module to be used under current environment:

    GTK_IM_MODULE=gtk-im-context-simple
  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。

    2. gtk 3:

      /usr/bin/gtk-query-immodules-3.0 找到了 gtk 3.24.38gtk-query-immodules。 版本行:

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

      已找到 gtk 3.24.38 的 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.38gtk-query-immodules。 版本行:

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

      无法在 /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:*" 

      /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

    2. gtk 3:

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

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

      已找到 gtk 3.24.38 的 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.38 的输入法模块缓存。 版本行:

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

      无法输入法模块缓存 /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.0.17
      Classic User Interface 5.0.23
      Clipboard 5.0.23
      Cloud Pinyin 5.0.17
      DBus 5.0.23
      DBus Frontend 5.0.23
      Emoji 5.0.23
      Fcitx4 Frontend 5.0.23
      Full width character 5.0.17
      IBus Frontend 5.0.23
      Lua IME API 5.0.10
      Input method selector 5.0.23
      Keyboard 5.0.23
      KDE Input Method Panel 5.0.23
      Lua Addon Loader 5.0.10
      Status Notifier 5.0.23
      Notification 5.0.23
      Pinyin 5.0.17
      Extra Pinyin functionality 5.0.17
      Punctuation 5.0.17
      Quick Phrase 5.0.23
      Spell 5.0.23
      Table 5.0.17
      Unicode 5.0.23
      Wayland 5.0.23
      Wayland Input method frontend 5.0.23
      XCB 5.0.23
      X Input Method Frontend 5.0.23
    2. 找到了 0 个被禁用的插件:

  3. 插件库:

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

  4. 用户界面:

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

    Classic User Interface
    KDE Input Method Panel

输入法:

  1. /home/matrikslee/.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=
    
    [GroupOrder]
    0=默认

日志:

  1. date:

    2023年 06月 25日 星期日 20:37:12 CST
  2. /home/matrikslee/.config/fcitx5/crash.log:

    =========================
    Fcitx 5.0.14 -- Get Signal No.: 11
    Date: try "date -d @1646822802" if you are using GNU date ***
    ProcessID: 1312
    /usr/bin/fcitx5(+0xd204)[0x5581d621d204]
    /usr/lib/libc.so.6(+0x42560)[0x7f534f23d560]
    /usr/lib/libstdc++.so.6(_ZSt11_Hash_bytesPKvmm+0x68)[0x7f534f4c8308]
    /usr/lib/libFcitx5Utils.so.2(+0x30b97)[0x7f534f6bcb97]
    /usr/lib/libFcitx5Utils.so.2(+0x32d79)[0x7f534f6bed79]
    /usr/lib/libFcitx5Utils.so.2(+0x40764)[0x7f534f6cc764]
    /usr/lib/libsystemd.so.0(+0x464e5)[0x7f534f1134e5]
    /usr/lib/libsystemd.so.0(+0x4e9a8)[0x7f534f11b9a8]
    /usr/lib/libsystemd.so.0(+0x79fb4)[0x7f534f146fb4]
    /usr/lib/libsystemd.so.0(sd_event_dispatch+0x13e)[0x7f534f1472ee]
    /usr/lib/libsystemd.so.0(sd_event_run+0x119)[0x7f534f149ff9]
    /usr/lib/libsystemd.so.0(sd_event_loop+0x60)[0x7f534f14a1d0]
    /usr/lib/libFcitx5Utils.so.2(_ZN5fcitx9EventLoop4execEv+0x12)[0x7f534f6d3ca2]
    /usr/lib/libFcitx5Core.so.7(_ZN5fcitx8Instance4execEv+0x57)[0x7f534f7be857]
    /usr/bin/fcitx5(+0xc052)[0x5581d621c052]
    /usr/lib/libc.so.6(+0x2d310)[0x7f534f228310]
    /usr/lib/libc.so.6(__libc_start_main+0x81)[0x7f534f2283c1]
    /usr/bin/fcitx5(+0xc4c5)[0x5581d621c4c5]

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

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

matrikslee commented 1 year ago

最近好像又好了

wengxt commented 1 year ago

@matrikslee 好像最近wine修复了一个问题,可能相关 https://bugs.winehq.org/show_bug.cgi?id=54991