您尚未登录。

#1 2024-03-10 21:55:09

Cukoo
会员
注册时间: 2024-03-10
帖子: 4

[已解决] kde桌面环境下在konsole、vim等软件中不能切换输入法

使用是fcitx
在非kde自带的软件(如浏览器、代码编辑器)使用正常
但是在konsole、vim、dolphin等kde自带软件都不能切换输入法
已经在etc/environment中设置过相关环境变量

最近编辑记录 Cukoo (2024-03-11 00:03:21)

离线

#2 2024-03-10 21:55:36

Cukoo
会员
注册时间: 2024-03-10
帖子: 4

Re: [已解决] kde桌面环境下在konsole、vim等软件中不能切换输入法

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

        Linux Cukoo-PC 6.7.9-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 08 Mar 2024 01:59:01 +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://gitlab.archlinux.org/groups/archlinux/-/issues"
        PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
        LOGO=archlinux-logo

6.  桌面环境:

    桌面环境为 `kde`。

7.  Bash 版本:

        BASH_VERSION='5.2.26(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(pc104)"     };
            };

    2.  `xprop`:

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

3.  Locale:

    1.  全部可用 locale:

            C
            C.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/Cukoo

    2.  `${XDG_CONFIG_HOME}`:

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

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

    3.  Fcitx 设置目录:

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

5.  当前用户:

    脚本作为 Cukoo (1000) 运行。

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

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

2.  版本:

    Fcitx 版本: `4.2.9.9`

3.  进程:

    找到了 2 个 fcitx 进程:

           1638 fcitx
           1669 fcitx-dbus-watc

4.  `fcitx-remote`:

    `fcitx-remote` 工作正常.

5.  DBus 界面:

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

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

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

# 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/office6/qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.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.33` 的 `gtk-query-immodules`.
        版本行:

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

        已找到 gtk `2.24.33` 的 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:*" 

    2.  gtk 3:

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

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

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

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

        已找到 gtk `2.24.33` 的 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:*" 

    2.  gtk 3:

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

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

        已找到 gtk `3.24.41` 的 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.  找到了 29 个已启用的插件:

            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-sogoupinyin
            fcitx-sogoupinyinhdm
            fcitx-sogoupinyinhxm
            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.  找到了 2 个启用的输入法:

        fcitx-keyboard-us
        sogoupinyin

2.  默认输入法:

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

# 日志:
1.  `date`:

        2024年 03月 10日 星期日 21:33:54 CST

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

        总计 4
        -rw-r--r-- 1 Cukoo Cukoo 1449  3月 7日 20:34 crash.log

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

        =========================
        FCITX 4.2.9.9 -- Get Signal No.: 6
        Date: try "date -d @1709814878" if you are using GNU date ***
        ProcessID: 1995
        fcitx(+0x1875)[0x63b0e7d2f875]
        /usr/lib/libc.so.6(+0x3c770)[0x7fa48ad62770]
        /usr/lib/libc.so.6(+0x8d32c)[0x7fa48adb332c]
        /usr/lib/libc.so.6(gsignal+0x18)[0x7fa48ad626c8]
        /usr/lib/libc.so.6(abort+0xd7)[0x7fa48ad4a4b8]
        /usr/lib/libstdc++.so.6(+0x9ca6f)[0x7fa489c9ca6f]
        /usr/lib/libstdc++.so.6(+0xb011c)[0x7fa489cb011c]
        /usr/lib/libstdc++.so.6(+0xb0189)[0x7fa489cb0189]
        /usr/lib/libstdc++.so.6(+0xb03ed)[0x7fa489cb03ed]
        /usr/lib/libstdc++.so.6(_ZSt19__throw_logic_errorPKc+0x44)[0x7fa489ca00a9]
        /usr/lib/libstdc++.so.6(+0xfe232)[0x7fa489cfe232]
        /usr/lib/libstdc++.so.6(_ZNSsC2EPKcRKSaIcE+0x36)[0x7fa489cfe6f6]
        /usr/lib/fcitx/fcitx-sogoupinyin.so(+0x45fb5)[0x7fa486045fb5]
        /usr/lib/fcitx/fcitx-sogoupinyin.so(+0x4cf34)[0x7fa48604cf34]
        /usr/lib/libfcitx-core.so.0(+0xf292)[0x7fa48af45292]
        /usr/lib/libfcitx-core.so.0(+0x11879)[0x7fa48af47879]
        /usr/lib/libfcitx-core.so.0(+0x11a6f)[0x7fa48af47a6f]
        /usr/lib/libfcitx-core.so.0(FcitxInstanceUpdateIMList+0x4d8)[0x7fa48af48238]
        /usr/lib/libfcitx-core.so.0(+0x13074)[0x7fa48af49074]
        /usr/lib/libfcitx-core.so.0(+0x14ee2)[0x7fa48af4aee2]
        /usr/lib/libfcitx-core.so.0(FcitxInstanceRun+0x5f)[0x7fa48af4bc3f]
        fcitx(+0x11d5)[0x63b0e7d2f1d5]
        /usr/lib/libc.so.6(+0x25cd0)[0x7fa48ad4bcd0]
        /usr/lib/libc.so.6(__libc_start_main+0x8a)[0x7fa48ad4bd8a]
        fcitx(+0x12d5)[0x63b0e7d2f2d5]

最近编辑记录 Cukoo (2024-03-10 22:04:06)

离线

#3 2024-03-10 23:04:09

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

Re: [已解决] kde桌面环境下在konsole、vim等软件中不能切换输入法

KDE 默认使用 Wayland 会话了,fcitx4 不支持 Wayland。请升级到 fcitx5。
(不过你这问题,应该是没装 qt6 模块造成的。GTK 和 Qt 的 IM 模块不依赖具体窗口协议。

最近编辑记录 依云 (2024-03-10 23:05:46)

离线

#4 2024-03-10 23:59:18

Cukoo
会员
注册时间: 2024-03-10
帖子: 4

Re: [已解决] kde桌面环境下在konsole、vim等软件中不能切换输入法

依云 说:

KDE 默认使用 Wayland 会话了,fcitx4 不支持 Wayland。请升级到 fcitx5。
(不过你这问题,应该是没装 qt6 模块造成的。GTK 和 Qt 的 IM 模块不依赖具体窗口协议。

感谢大佬!安装fcitx-qt6过后就解决了!
想过升级fcitx5,但是fcitx5的搜狗拼音似乎不太好用?习惯使用搜狗拼音了。

离线

#5 2024-03-11 00:00:21

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

Re: [已解决] kde桌面环境下在konsole、vim等软件中不能切换输入法

换 fcitx5 自带的拼音吧。习惯习惯就好了。

离线

页脚