Skip to content

Emacs + Fcitx5 导致 Chrome 卡顿 #235

@manateelazycat

Description

@manateelazycat

重现步骤:

  1. 切换到Emacs(X11版本)窗口后再切换到Chrome窗口
  2. Chrome切换标签和鼠标点击事件卡顿
  3. 但是从非 Emacs 窗口切换到 Chrome 窗口,Chrome标签切换很流畅

补丁 9d65334 之前的版本,这样组合使用的时候,会导致整个系统卡死,我是打字手速很快的那种。

期望的行为
从Emacs切入到Chrome窗口,Chrome窗口不卡顿

环境
Manjaro Linux
Gnome3/Wayland 3.38.3
Fcitx5 更新到补丁 cf12761
GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.26, cairo version 1.17.4) of 2021-02-28

fctix5-diagnose

系统信息:

  1. uname -a:

    Linux manjaro 5.9.16-1-MANJARO #1 SMP PREEMPT Mon Dec 21 22:00:46 UTC 2020 x86_64 GNU/Linux
    
  2. lsb_release -a:

    LSB Version:	n/a
    Distributor ID:	ManjaroLinux
    Description:	Manjaro Linux
    Release:	20.2.1
    Codename:	Nibia
    
  3. lsb_release -d:

    Description:	Manjaro Linux
    
  4. /etc/lsb-release:

    DISTRIB_ID=ManjaroLinux
    DISTRIB_RELEASE=20.2.1
    DISTRIB_CODENAME=Nibia
    DISTRIB_DESCRIPTION="Manjaro Linux"
    
  5. /etc/os-release:

    NAME="Manjaro Linux"
    ID=manjaro
    ID_LIKE=arch
    BUILD_ID=rolling
    PRETTY_NAME="Manjaro Linux"
    ANSI_COLOR="32;1;24;144;200"
    HOME_URL="https://manjaro.org/"
    DOCUMENTATION_URL="https://wiki.manjaro.org/"
    SUPPORT_URL="https://manjaro.org/"
    BUG_REPORT_URL="https://bugs.manjaro.org/"
    LOGO=manjarolinux
    
  6. 桌面环境:

    桌面环境为 gnome3

  7. Bash 版本:

    BASH_VERSION='5.1.0(1)-release'
    

环境:

  1. DISPLAY:

    DISPLAY=':0'
    
  2. 键盘布局:

    1. setxkbmap:

      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
      de_DE.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=zh_CN.UTF-8
      
  4. 目录:

    1. 主目录:

      /home/andy
      
    2. ${XDG_CONFIG_HOME}:

      环境变量 XDG_CONFIG_HOME 没有设定。

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

    3. Fcitx5 设置目录:

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

  5. 当前用户:

    脚本作为 andy (1000) 运行。

Fcitx 状态:

  1. 可执行文件:

    /usr/bin/fcitx5 找到了 fcitx5。

  2. 版本:

    Fcitx 版本: 5.0.5

  3. 进程:

    找到了 1 个 fcitx5 进程:

       1876 fcitx5
    
  4. fcitx5-remote:

    fcitx5-remote 工作正常。

  5. DBus 界面:

    使用 dbus-send 来检查 dbus。

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

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

Fcitx 配置界面:

  1. 配置工具封装:

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

  2. Qt 的配置界面:

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

  3. KDE 的配置界面:

    kcmshell5 未找到.

前端设置:

Xim:

  1. ${XMODIFIERS}:

    环境变量 XMODIFIERS 的值被设为了“@im=fcitx5”而不是“@im=fcitx”。请检查您是否在某个初始化文件中错误的设置了它的值。

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

    从环境变量中获取的 Xim 服务名称为 fcitx5.

  2. 根窗口上的 XIM_SERVERS:

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

Qt:

  1. qt4 - ${QT4_IM_MODULE}:

    环境变量 QT_IM_MODULE 的值被设为了“fcitx5”而不是“fcitx”。请检查您是否在某个初始化文件中错误的设置了它的值。
    您可能会在 qt4 程序中使用 fcitx 时遇到问题.

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

  2. qt5 - ${QT_IM_MODULE}:

    环境变量 QT_IM_MODULE 的值被设为了“fcitx5”而不是“fcitx”。请检查您是否在某个初始化文件中错误的设置了它的值。
    您可能会在 qt5 程序中使用 fcitx 时遇到问题.

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

  3. Qt 输入法模块文件:

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

Gtk:

  1. gtk - ${GTK_IM_MODULE}:

    环境变量 GTK_IM_MODULE 的值被设为了“fcitx5”而不是“fcitx”。请检查您是否在某个初始化文件中错误的设置了它的值。
    您可能会在 gtk 程序中使用 fcitx 时遇到问题.

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

  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:*"
      
    2. gtk 3:

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

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

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

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

      无法在 /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.24 的输入法模块缓存。
      版本行:

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

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

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

      无法输入法模块缓存 /usr/lib32/gtk-3.0/3.0.0/immodules.cache 中找到 fcitx5

    3. gtk 4:

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

      无法在缓存中找到 gtk 4 的 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. 找到了 27 个已启用的插件:

      Simplified and Traditional Chinese Translation
      Classic User Inteface
      Clipboard
      Cloud Pinyin
      DBus
      DBus Frontend
      Emoji
      Fcitx4 Frontend
      Full width character
      IBus Frontend
      Input method selector
      Keyboard
      KDE Input Method Panel
      Status Notifier
      Notification
      Pinyin
      Extra Pinyin functionality
      Punctuation
      Quick Phrase
      Rime
      Spell
      Table
      Unicode
      Wayland
      Wayland Input method frontend
      XCB
      X Input Method Frontend
      
    2. 找到了 0 个被禁用的插件:

  3. 插件库:

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

  4. 用户界面:

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

    Classic User Inteface
    KDE Input Method Panel
    

日志:

  1. date:

    2021年 02月 28日 星期日 18:27:32 CST
    
  2. /home/andy/.config/fcitx5/crash.log:

    /crash.log 未找到.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions