您尚未登录。

#1 2020-03-14 18:09:38

josedfgxx
会员
注册时间: 2019-07-28
帖子: 5

Linux KDE输入法输入中文卡死只能重启

大家好,早在之前我就遇到了一些奇怪的问题,在网上查了也没有相关的信息,直到现在也不知道怎么解决

问题:
我的笔记本电脑类型:惠普 HP ENVY laptop 13-aq0xxx,集成显卡是Intel i5-8265U,独立显卡是NVIDIA GeForce MX250。

我第一次重装为ArchLinux KDE操作系统后发现,无论是搜狗输入法、Google输入法、Rime输入法都是存在这样一个问题:在打字的时候一段时间后会卡死,此时ctrl+alt+f2切换控制台终止输入法程序也没有用,只能重启电脑。

这种情况在输入中文时候发生的概率大于输入英文。无奈之下重装操作系统为Manjaro KDE,结果也是一样的。起初我以为是显卡问题,于是禁掉NVIDIA后发现问题还会发生,之后我怀疑可能是KDE的问题,但是我在VirtualBox里面安装Archlinux或者Manjaro都可以正常输入中文而不会卡死。

请问这到底是什么原因呢?难道这是笔记本电脑本身的问题?
Thanks!

离线

#2 2020-03-14 18:10:52

josedfgxx
会员
注册时间: 2019-07-28
帖子: 5

Re: Linux KDE输入法输入中文卡死只能重启

还有,我刚才在manjaro论坛发了这个问题没人回应...

离线

#3 2020-03-14 19:07:50

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 6,041
个人网站

Re: Linux KDE输入法输入中文卡死只能重启

收集日志吧。

此时ctrl+alt+f2切换控制台终止输入法程序也没有用,只能重启电脑。

这一点很可疑。别的、未正在使用输入法的程序呢?

另外你需要更准确地描述现象:卡死的是什么?从描述中我可以知道切换到 tty 还是可以的。我假定你无法再输入东西了。那么:软件窗口的更新还在继续吗?(视频和动画还在放吗?时间还在更新吗?聊天窗口的消息还能显示出来吗?)鼠标还能动吗?能动的话,能切换到其它窗口吗?

你使用的是什么输入法框架?fcitx4?fcitx5?ibus?版本是多少呢?

离线

#4 2020-03-14 22:05:56

josedfgxx
会员
注册时间: 2019-07-28
帖子: 5

Re: Linux KDE输入法输入中文卡死只能重启

目前只使用RIME中州韵输入法(fcitx-rime+fcitx4)。我感觉也不能说是卡死,这种情况就好像屏幕被锁定一样,键盘无法使用,但只有鼠标可以移动,估计后台程序还在运行(网易云还可以播放音乐)

另外我在journalctl中发现:
could not establish screen lock,trying again in 10 ms
不知道什么意思


# 系统信息:
1.  `uname -a`:

        Linux system 5.4.24-1-MANJARO #1 SMP PREEMPT Thu Mar 5 20:29:25 UTC 2020 x86_64 GNU/Linux

2.  `lsb_release -a`:

        LSB Version:    n/a
        Distributor ID: ManjaroLinux
        Description:    Manjaro Linux
        Release:        19.0.2
        Codename:       Kyria

3.  `lsb_release -d`:

        Description:    Manjaro Linux

4.  `/etc/lsb-release`:

        DISTRIB_ID=ManjaroLinux
        DISTRIB_RELEASE=19.0.2
        DISTRIB_CODENAME=Kyria
        DISTRIB_DESCRIPTION="Manjaro Linux"

5.  `/etc/os-release`:

        NAME="Manjaro Linux"
        ID=manjaro
        ID_LIKE=arch
        PRETTY_NAME="Manjaro Linux"
        ANSI_COLOR="1;32"
        HOME_URL="https://www.manjaro.org/"
        SUPPORT_URL="https://www.manjaro.org/"
        BUG_REPORT_URL="https://bugs.manjaro.org/"
        LOGO=manjarolinux

6.  桌面环境:

    桌面环境为 `kde`。

7.  Bash 版本:

        BASH_VERSION='5.0.16(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+cn+inet(evdev)"     };
                xkb_geometry  { include "pc(pc105)"     };
            };

    2.  `xprop`:

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

3.  Locale:

    1.  全部可用 locale:

            C
            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/jox

    2.  `${XDG_CONFIG_HOME}`:

        环境变量 `XDG_CONFIG_HOME` 没有设定。

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

    3.  Fcitx 设置目录:

        当前 fcitx 设置目录是 `~/.config/fcitx` (`/home/jox/.config/fcitx`)。

5.  当前用户:

    脚本作为 jox (1000) 运行。

# Fcitx 状态:
1.  可执行文件:

    在 `/usr/bin/fcitx` 找到了 fcitx.

2.  版本:

    Fcitx 版本: `4.2.9.7`

3.  进程:

    找到了 2 个 fcitx 进程:

           1640 fcitx
           1649 fcitx-dbus-watc

4.  `fcitx-remote`:

    `fcitx-remote` 工作正常.

5.  DBus 界面:

    使用 `dbus-send` 来检查 dbus。

    DBus 名称 `org.fcitx.Fcitx` 的所有者是 `:1.71`。

    DBus 名称 `org.fcitx.Fcitx` 的 PID 所有者是 `1640`。

# Fcitx 配置界面:
1.  配置工具封装:

    在 `/usr/bin/fcitx-configtool` 找到了 fcitx-configtool。

2.  用于 GTK+-2.0 的配置界面:

    **未找到 gtk2 的配置界面.**

3.  用于 GTK+-3.0 的配置界面:

    在 `/usr/bin/fcitx-config-gtk3` 找到了 `fcitx-config-gtk3`。

4.  KDE 的配置界面:

    **`kcmshell4` 未找到.**

# 前端设置:
## Xim:
1.  `${XMODIFIERS}`:

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

2.  根窗口上的 XIM_SERVERS:

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

## Qt:
1.  qt4 - `${QT4_IM_MODULE}`:

    环境变量 QT_IM_MODULE 已经正确地设为了 "fcitx".

2.  qt5 - `${QT_IM_MODULE}`:

    环境变量 QT_IM_MODULE 已经正确地设为了 "fcitx".

3.  Qt 输入法模块文件:

    找到了 fcitx 的 qt 模块: `/usr/lib/fcitx/qt/libfcitx-quickphrase-editor5.so`.
    找到了 Qt5 的输入法模块: `/usr/lib/qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so`.
    **无法找到 Qt4 的 fcitx 输入法模块.**

## Gtk:
1.  gtk - `${GTK_IM_MODULE}`:

    环境变量 GTK_IM_MODULE 已经正确地设为了 "fcitx".

2.  `gtk-query-immodules`:

    1.  gtk 2:

        在 `/usr/bin/gtk-query-immodules-2.0` 找到了 gtk `2.24.32` 的 `gtk-query-immodules`.
        版本行:

            # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.32

        已找到 gtk `2.24.32` 的 fcitx 输入法模块.

            "/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

        在 `/usr/bin/gtk-query-immodules-2.0-32` 找到了 gtk `2.24.32` 的 `gtk-query-immodules`.
        版本行:

            # Created by /usr/bin/gtk-query-immodules-2.0-32 from gtk+-2.24.32

        **无法在 `/usr/bin/gtk-query-immodules-2.0-32` 的输出重找到 fcitx.**

    2.  gtk 3:

        在 `/usr/bin/gtk-query-immodules-3.0` 找到了 gtk `3.24.14` 的 `gtk-query-immodules`.
        版本行:

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

        已找到 gtk `3.24.14` 的 fcitx 输入法模块.

            "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

3.  Gtk 输入法模块缓存:

    1.  gtk 2:

        在 `/usr/lib/gtk-2.0/2.10.0/immodules.cache` 找到了 gtk `2.24.32` 的输入法模块缓存.
        版本行:

            # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.32

        已找到 gtk `2.24.32` 的 fcitx 输入法模块.

            "/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

        在 `/usr/lib32/gtk-2.0/2.10.0/immodules.cache` 找到了 gtk `2.24.32` 的输入法模块缓存.
        版本行:

            # Created by usr/bin/gtk-query-immodules-2.0-32 from gtk+-2.24.32

        **无法输入法模块缓存 `/usr/lib32/gtk-2.0/2.10.0/immodules.cache` 中找到 fcitx**

    2.  gtk 3:

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

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

        已找到 gtk `3.24.14` 的 fcitx 输入法模块.

            "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

4.  Gtk 输入法模块文件:

    1.  gtk 2:

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

    2.  gtk 3:

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

# 配置:
## Fcitx 插件:
1.  插件配置文件目录:

    找到了 fcitx 插件配置目录: `/usr/share/fcitx/addon`.

2.  插件列表:

    1.  找到了 27 个已启用的插件:

            fcitx-autoeng
            fcitx-chttrans
            fcitx-classic-ui
            fcitx-clipboard
            fcitx-dbus
            fcitx-freedesktop-notify
            fcitx-fullwidth-char
            fcitx-imselector
            fcitx-ipc
            fcitx-ipcportal
            fcitx-keyboard
            fcitx-kimpanel-ui
            fcitx-notificationitem
            fcitx-pinyin
            fcitx-pinyin-enhance
            fcitx-punc
            fcitx-quickphrase
            fcitx-remote
            fcitx-rime
            fcitx-spell
            fcitx-table
            fcitx-unicode
            fcitx-vk
            fcitx-x11
            fcitx-xim
            fcitx-xkb
            fcitx-xkbdbus

    2.  找到了 1 个被禁用的插件:

            fcitx-qw

3.  插件库: 

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

4.  用户界面:

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

        fcitx-classic-ui
        fcitx-kimpanel-ui

## 输入法:
1.  找到了 3 个启用的输入法:

        fcitx-keyboard-cn
        rime

2.  默认输入法:

    您已经正确的将一个键盘输入法 "fcitx-keyboard-cn" 设为默认.

# 日志:
1.  `date`:

        2020年 03月 14日 星期六 21:50:56 CST

2.  `~/.config/fcitx/log/`:

        总用量 4
        -rw-r--r-- 1 jox jox 44  3月  9 09:04 crash.log

3.  `~/.config/fcitx/log/crash.log`:

        fcitx: BadWindow (invalid Window parameter)

离线

#5 2020-03-14 22:20:20

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 6,041
个人网站

Re: Linux KDE输入法输入中文卡死只能重启

所以就是输入事件被卡住了。
鼠标点击,特别是点别的程序有反应吗?如果有,试试切换到别的程序之后还能输入吗?

PS: 我没有用 rime。可能和它有关。按理说,你打字的时候正在使用,不应该会触发锁屏的呀。

离线

#6 2020-03-14 22:34:25

josedfgxx
会员
注册时间: 2019-07-28
帖子: 5

Re: Linux KDE输入法输入中文卡死只能重启

鼠标只能移动,无法点击如何窗口程序,键盘就好像只能Ctrl+Alt+Fx管用,我觉得不关rime的事,因为我之前搜狗,google输入法都有过这种情况,总觉得是我的笔记本显卡和KDE两者之间有什么猫腻。打算换GNOME,但是有不想再折腾一次了 sad
这种情况网上又很难找到相关信息 sad

离线

#7 2020-03-14 23:00:59

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 6,041
个人网站

Re: Linux KDE输入法输入中文卡死只能重启

如果你还能继续调试的话:
htop 看一下情况。开 CPU 详细视图,按进程状态排序,注意 load、是否有持续 R 和 D 状态的进程,CPU 使用率多少。sudo htop,然后 strace 看一下 Xorg 在干什么。

对了,你还没看系统日志呢。

离线

#8 2020-03-15 16:15:40

josedfgxx
会员
注册时间: 2019-07-28
帖子: 5

Re: Linux KDE输入法输入中文卡死只能重启

抱歉这么晚才回复...emmmm...我就只是 strace -T -tt -p $(pidof Xorg) |less ,太多内容了...系统日志的话也没发现什么相关信息。不过我重新安装NVIDIA驱动,如果还是使用集成显卡的话那么还是会出现卡死情况,当切换到nvidia就不会出现这种情况。总之我也不知道为什么会这样。下面是nvidia信息

% nvidia-smi
Sun Mar 15 16:12:04 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64       Driver Version: 440.64       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce MX250       Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   49C    P0    N/A /  N/A |    368MiB /  2002MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1224      G   /usr/lib/Xorg                                180MiB |
|    0      1390      G   /usr/bin/kwin_x11                             50MiB |
|    0      1396      G   /usr/bin/plasmashell                          54MiB |
|    0      1410      G   /usr/bin/latte-dock                           21MiB |
+-----------------------------------------------------------------------------+


% inxi -G
Graphics:  Device-1: Intel UHD Graphics 620 driver: i915 v: kernel 
           Device-2: NVIDIA GP108BM [GeForce MX250] driver: nvidia v: 440.64 
           Display: x11 server: X.Org 1.20.7 driver: modesetting,nvidia resolution: 1920x1080~60Hz 
           OpenGL: renderer: GeForce MX250/PCIe/SSE2 v: 4.6.0 NVIDIA 440.64 

% mhwd -li
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
video-hybrid-intel-nvidia-440xx-prime            2019.10.25               false            PCI


Warning: No installed USB configs!

离线

#9 2020-08-14 10:26:23

MKQ
(喵~
注册时间: 2018-09-15
帖子: 3

Re: Linux KDE输入法输入中文卡死只能重启

我这里用fcitx5 加默认的拼音输入法也遇到了这个问题, 但目前只发生在deepin的TIM上,
Linux mkq-surface 5.7.12-arch1-1-surface #1 SMP PREEMPT Mon, 03 Aug 2020 16:43:32 +0000 x86_64 GNU/Linux
情况与上面的描述完全一致,
这台机子最近重装了一下arch,之前的系统中fcitx4没遇到这样的问题

离线

#10 2020-08-14 10:29:59

MKQ
(喵~
注册时间: 2018-09-15
帖子: 3

Re: Linux KDE输入法输入中文卡死只能重启

系统的信息大致是这样子的
```

                   -`                 
                  .o+`                 mkq@mkq-surface
                 `ooo/                 OS: Arch Linux 
                `+oooo:                Kernel: x86_64 Linux 5.7.12-arch1-1-surface
               `+oooooo:               Uptime: 9m
               -+oooooo+:              Packages: 1301
             `/:-:++oooo+:             Shell: fish 3.1.2
            `/++++/+++++++:            Resolution: 2736x1824
           `/++++++++++++++:           DE: GNOME 3.36.4
          `/+++ooooooooooooo/`         WM: Deepin WM
         ./ooosssso++osssssso+`        WM Theme: deepin-dark
        .oossssso-````/ossssss+`       GTK Theme: Adwaita [GTK2/3]
       -osssssso.      :ssssssso.      Icon Theme: Adwaita
      :osssssss/        osssso+++.     Font: Cantarell 11
     /ossssssss/        +ssssooo/-     Disk: 25G / 75G (34%)
   `/ossssso+/:-        -:/+osssso+-   CPU: Intel Core i5-6300U @ 4x 3GHz [39.0°C]
  `+sso+:-`                 `.-/+oso:  GPU: HD Graphics 520
 `++:.                           `-/+/ RAM: 2754MiB / 3862MiB
 .`                                 `/

离线

#11 2020-10-16 23:17:51

archion
会员
注册时间: 2020-10-16
帖子: 2

Re: Linux KDE输入法输入中文卡死只能重启

我也经常遇到这个问题,刚刚在vim里打中文又碰到了,无奈只能重启。用的是awesomewm+xf86-video-intel+fcitx,现在用的是fcitx5,不过问题应该在上一个版本fcitx就存在,印象中应该起码有一两年了。在wps或者vim中多打些中文就会出现,感觉是出现在切换输入法的时候。。。

离线

#12 2020-10-16 23:31:14

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 6,041
个人网站

Re: Linux KDE输入法输入中文卡死只能重启

卡死的时候你可以试试切换到 tty 然后登录进去杀掉 fcitx。

离线

#13 2020-10-16 23:42:57

archion
会员
注册时间: 2020-10-16
帖子: 2

Re: Linux KDE输入法输入中文卡死只能重启

依云 说:

卡死的时候你可以试试切换到 tty 然后登录进去杀掉 fcitx。

之前试过应该是没用,感觉就像图形界面冻住了,除了鼠标其它都没任何响应,切换到tty下一切正常。等下次出现再仔细观察下。

离线

页脚