V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Solitudechn
V2EX  ›  Linux

求助 debian 使用 kde 的时候几乎所有 qt 的程序都无法切换输入法

  •  
  •   Solitudechn · 2016-12-22 11:10:04 +08:00 · 4246 次点击
    这是一个创建于 2927 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统信息:

    1. uname -a:

      Linux solitudechn-work 4.8.0-2-amd64 #1 SMP Debian 4.8.11-1 (2016-12-02) x86_64 GNU/Linux
      
    2. lsb_release -a:

      No LSB modules are available.
      Distributor ID: Debian
      Description:    Debian GNU/Linux unstable (sid)
      Release:        unstable
      Codename:       sid
      
    3. lsb_release -d:

      Description:    Debian GNU/Linux unstable (sid)
      
    4. /etc/lsb-release:

      /etc/lsb-release 未找到.

    5. /etc/os-release:

      PRETTY_NAME="Debian GNU/Linux stretch/sid"
      NAME="Debian GNU/Linux"
      ID=debian
      HOME_URL="https://www.debian.org/"
      SUPPORT_URL="https://www.debian.org/support"
      BUG_REPORT_URL="https://bugs.debian.org/"
      
    6. 桌面环境:

      桌面环境为 kde

    7. Bash Version:

      BASH_VERSION='4.4.5(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
        C.UTF-8
        en_US.utf8
        POSIX
        zh_CN.utf8
        
      2. 当前 locale:

        LANG=zh_CN.UTF-8
        LANGUAGE=zh_CN:zh
        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/solitudechn
        
      2. ${XDG_CONFIG_HOME}:

        环境变量 XDG_CONFIG_HOME 没有设定。

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

      3. Fcitx 设置目录:

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

    5. 当前用户:

      脚本作为 solitudechn (1000) 运行。

    Fcitx 状态:

    1. 可执行文件:

      /usr/bin/fcitx 找到了 fcitx.

    2. 版本:

      Fcitx 版本: 4.2.9.1

    3. 进程:

      找到了 2 个 fcitx 进程:

        931 fcitx
       3572 fcitx-dbus-watc
      
    4. fcitx-remote:

      fcitx-remote 工作正常.

    5. DBus interface:

      Using dbus-send to check dbus.

      Owner of DBus name org.fcitx.Fcitx is :1.79.

      PID of DBus name org.fcitx.Fcitx owner is 931.

    Fcitx 配置界面:

    1. 配置工具封装:

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

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

      未找到 gtk2 的配置界面.

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

      未找到 gtk3 的配置界面.

    4. KDE 的配置界面:

      无法找到一个图形界面的配置工具,请安装 kcm-fcitxfcitx-config-gtk2fcitx-config-gtk3 之一。

    前端设置:

    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.

    2. qt5 - ${QT_IM_MODULE}:

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

    3. Qt 输入法模块文件:

      找到了 Qt5 的输入法模块: /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so. 找到了未知的 fcitx qt 模块: /usr/lib/x86_64-linux-gnu/qt5/plugins/kcm_fcitx.so. 找到了 Qt4 的输入法模块: /usr/lib/x86_64-linux-gnu/qt4/plugins/inputmethods/qtim-fcitx.so.

    Gtk:

    1. gtk - ${GTK_IM_MODULE}:

      环境变量 GTK_IM_MODULE 的值被设为了 "xim" 而不是 "fcitx". 请检查您是否在某个初始化文件中错误的设置了它的值. 您正在 gtk 程序中使用 xim.

      您可以在 Linux 输入法支持耻辱堂 找到一些会在使用 xim 时出现问题的应用程序. 包括应用程序卡死在内的更多使用 xim 可能出现的普遍问题请参见 这里.

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

    2. gtk-query-immodules:

      1. gtk 2:

        无法找到 gtk 2 的 gtk-query-immodules.

        无法找到 gtk 2 的 fcitx 输入法模块.

      2. gtk 3:

        无法找到 gtk 3 的 gtk-query-immodules.

        无法找到 gtk 3 的 fcitx 输入法模块.

    3. Gtk 输入法模块缓存:

      1. gtk 2:

        /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules.cache 找到了 gtk 2.24.31 的输入法模块缓存. 版本行:

        # Created by /usr/lib/x86_64-linux-gnu/libgtk2.0-0/gtk-query-immodules-2.0 from gtk+-2.24.31
        

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

        "/usr/lib/x86_64-linux-gnu/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/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache 找到了 gtk 3.22.5 的输入法模块缓存. 版本行:

        # Created by /usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0 from gtk+-3.22.5
        

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

        "/usr/lib/x86_64-linux-gnu/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. 找到了 24 个已启用的插件:

        fcitx-autoeng
        fcitx-chttrans
        fcitx-classic-ui
        fcitx-clipboard
        fcitx-dbus
        fcitx-freedesktop-notify
        fcitx-fullwidth-char
        fcitx-imselector
        fcitx-ipc
        fcitx-keyboard
        fcitx-kimpanel-ui
        fcitx-lua
        fcitx-notificationitem
        fcitx-punc
        fcitx-quickphrase
        fcitx-remote
        fcitx-rime
        fcitx-spell
        fcitx-unicode
        fcitx-vk
        fcitx-x11
        fcitx-xim
        fcitx-xkb
        fcitx-xkbdbus
        
      2. 找到了 0 个被禁用的插件:

    3. 插件库:

      无法找到插件 fcitx-xkbdbus 的文件 fcitx-xkbdbus.so

      无法找到插件 fcitx-autoeng 的文件 fcitx-autoeng.so

      无法找到插件 fcitx-x11 的文件 fcitx-x11.so

      无法找到插件 fcitx-quickphrase 的文件 fcitx-quickphrase.so

      无法找到插件 fcitx-fullwidth-char 的文件 fcitx-fullwidth-char.so

      无法找到插件 fcitx-rime 的文件 fcitx-rime.so

      无法找到插件 fcitx-kimpanel-ui 的文件 fcitx-kimpanel-ui.so

      无法找到插件 fcitx-clipboard 的文件 fcitx-clipboard.so

      无法找到插件 fcitx-dbus 的文件 fcitx-dbus.so

      无法找到插件 fcitx-remote 的文件 fcitx-remote-module.so

      无法找到插件 fcitx-keyboard 的文件 fcitx-keyboard.so

      无法找到插件 fcitx-vk 的文件 fcitx-vk.so

      无法找到插件 fcitx-classic-ui 的文件 fcitx-classic-ui.so

      无法找到插件 fcitx-notificationitem 的文件 fcitx-notificationitem.so

      无法找到插件 fcitx-lua 的文件 fcitx-lua.so

      无法找到插件 fcitx-unicode 的文件 fcitx-unicode.so

      无法找到插件 fcitx-spell 的文件 fcitx-spell.so

      无法找到插件 fcitx-xim 的文件 fcitx-xim.so

      无法找到插件 fcitx-freedesktop-notify 的文件 fcitx-freedesktop-notify.so

      无法找到插件 fcitx-punc 的文件 fcitx-punc.so

      无法找到插件 fcitx-xkb 的文件 fcitx-xkb.so

      无法找到插件 fcitx-imselector 的文件 fcitx-imselector.so

      无法找到插件 fcitx-ipc 的文件 fcitx-ipc.so

      无法找到插件 fcitx-chttrans 的文件 fcitx-chttrans.so

    4. 用户界面:

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

      fcitx-classic-ui
      fcitx-kimpanel-ui
      

    输入法:

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

      fcitx-keyboard-cn
      rime
      
    2. 默认输入法:

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

    日志:

    1. date:

      2016 年 12 月 22 日 星期四 11:02:13 CST
      
    2. ~/.config/fcitx/log/:

      总用量 4
      -rwxrwxrwx 1 solitudechn solitudechn 1 12 月 20 17:27 crash.log*
      
    3. ~/.config/fcitx/log/crash.log:

    cat .xprofile ~@solitudechn-work export QT_IM_MODULE=fcitx export GTK_IM_MODULE=fcitx

    之前刚安装完的时候是没有问题,使用 opensuse 相同的配置也是没有问题的,在一次重启之后就出现了这个问题, GTK 下使用是没有问题的,有问题的包括不限于 kde 所有自有组件, virtualbox , shadosocks-qt5 ,

    已安装了所有源中的 fcitx qt5 组件

    fcitx-frontend-qt5/unstable,unstable,now 1.0.5-1+b1 amd64 [已安装,自动] Free Chinese Input Toy of X - Qt5 IM Module frontend

    fcitx-libs-qt5/unstable,unstable,now 1.0.5-1 all [已安装] transitional dummy package

    libfcitx-qt5-1/unstable,unstable,now 1.0.5-1+b1 amd64 [已安装,自动] Free Chinese Input Toy of X - D-Bus client libraries for Qt5

    libfcitx-qt5-dbg/unstable,unstable,now 1.0.5-1+b1 amd64 [已安装] Free Chinese Input Toy of X - Debugging symbols for libfcitx-qt5

    libfcitx-qt5-dev/unstable,unstable,now 1.0.5-1+b1 amd64 [已安装] Free Chinese Input Toy of X - Devel files for libfcitx-qt5

    特此求解

    21 条回复    2016-12-24 21:22:38 +08:00
    hosiet
        1
    hosiet  
       2016-12-22 13:04:36 +08:00 via Android
    日志写得非常清楚,照着来即可
    Solitudechn
        2
    Solitudechn  
    OP
       2016-12-22 15:38:53 +08:00
    @hosiet 很抱歉,不知道你所说的日志是什么?
    ~/.config/fcitx/log/crash.log ?
    > cat ~/.config/fcitx/log/crash.log ~@solitudechn-work

    > ~@solitudechn-work


    很抱歉,日志为空





    gtk - ${GTK_IM_MODULE}:

    环境变量 GTK_IM_MODULE 的值被设为了 "xim" 而不是 "fcitx". 请检查您是否在某个初始化文件中错误的设置了它的值. 您正在 gtk 程序中使用 xim.

    您可以在 Linux 输入法支持耻辱堂 找到一些会在使用 xim 时出现问题的应用程序. 包括应用程序卡死在内的更多使用 xim 可能出现的普遍问题请参见 这里.

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


    这样的报告?

    很抱歉,我已经加进去了,但是没有任何用处
    ipwx
        3
    ipwx  
       2016-12-22 15:48:18 +08:00
    apt-get install fcitx-*
    Solitudechn
        4
    Solitudechn  
    OP
       2016-12-22 16:15:47 +08:00 via Android
    @ipwx 那个貌似,我之前写了一下,在某次重启前是可以用的…
    bsidb
        5
    bsidb  
       2016-12-22 22:38:58 +08:00 via Android
    环境变量没设置好,提示了 QT 相关的环境变量没有设置。
    leighton
        6
    leighton  
       2016-12-23 03:13:19 +08:00
    安装 fcitx-qt4 fcitx-qt5 ,然后在 /etc/profile 或 ~/.xprofile 中添加 export QT_IM_MODULE=fcitx
    Solitudechn
        7
    Solitudechn  
    OP
       2016-12-23 08:54:58 +08:00 via Android
    @bsidb 亲,我安装了,也添加了…
    Solitudechn
        8
    Solitudechn  
    OP
       2016-12-23 08:55:21 +08:00 via Android
    @attentionlee06 我真的安装了也添加了,
    Solitudechn
        9
    Solitudechn  
    OP
       2016-12-23 08:55:38 +08:00 via Android
    先谢谢各位了,我换回 gnome 了…
    hosiet
        10
    hosiet  
       2016-12-23 09:36:54 +08:00 via Android
    到 ~/.kde/env/ 目录下面创建一个带执行权限的以 .sh 结尾的文件,把上面那几行写进去再试试。还不行就真帮不了你了。目录不存在的话先创建一个。以上使用 KDE Plasma 5 , KDE4 没试过。

    总之我先去上游报了个 Bug 跟踪一下这个问题: github.com/fcitx/fcitx/issues/315
    hosiet
        11
    hosiet  
       2016-12-23 09:57:03 +08:00 via Android
    最后检查 im-config 工具显示的情况,确保选中的都是 fcitx 。
    bsidb
        12
    bsidb  
       2016-12-23 11:10:46 +08:00 via Android
    @Solitudechn 如果你添加了,但是 fcitx-diagnose 提示还是有环境变量配置错的问题,说明添加的方式不对~
    Solitudechn
        13
    Solitudechn  
    OP
       2016-12-23 13:50:35 +08:00 via Android
    @hosiet 谢谢,我之前考虑过向上有提问,但是找不到在哪里, bug 追踪,在 debian sid 都有崩溃的可能… im-config 我也配置过了,但是没有任何反应
    Solitudechn
        14
    Solitudechn  
    OP
       2016-12-23 13:51:56 +08:00 via Android
    @bsidb 我尝试按照提示添加,按照 arch wiki 里的添加,或者添加到 profile 里,但是还真没按照楼上的放到 kde 的配置目录里…晚上做个实验看看还不会出现这种情况,毕竟我是因为 kde 很好开,才去用的 kdw
    Solitudechn
        15
    Solitudechn  
    OP
       2016-12-23 13:52:08 +08:00 via Android
    @bsidb kde
    bsidb
        16
    bsidb  
       2016-12-23 15:26:13 +08:00 via Android
    @Solitudechn 最最最大招是把环境变量定义放在.bashrc 里。 配置后自己用 echo 命令就能检查环境变量是不是配置好了~
    Solitudechn
        17
    Solitudechn  
    OP
       2016-12-24 07:27:40 +08:00 via Android
    @bsidb 我直接 export 也没有用啊…
    bsidb
        18
    bsidb  
       2016-12-24 08:37:30 +08:00 via Android
    @Solitudechn 是不是输错了?
    Solitudechn
        19
    Solitudechn  
    OP
       2016-12-24 08:42:03 +08:00 via Android
    @bsidb 其实我想说的是*rc 不能影响 x windows 吧 而且 export 是易失的啊
    linux40
        20
    linux40  
       2016-12-24 09:19:31 +08:00 via Android
    可以参考 archwiki 的 fcitx 和 kde 页。
    bsidb
        21
    bsidb  
       2016-12-24 21:22:38 +08:00 via Android
    @Solitudechn .bashrc 影响很大的,会影响 X 的环境变量。 在.bashrc 中 export 是整个会话全局有效的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4042 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 05:25 · PVG 13:25 · LAX 21:25 · JFK 00:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.