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

2016-12-22 11:10:04 +08:00
 Solitudechn

系统信息:

  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

特此求解

4211 次点击
所在节点    Linux
21 条回复
hosiet
2016-12-22 13:04:36 +08:00
日志写得非常清楚,照着来即可
Solitudechn
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
2016-12-22 15:48:18 +08:00
apt-get install fcitx-*
Solitudechn
2016-12-22 16:15:47 +08:00
@ipwx 那个貌似,我之前写了一下,在某次重启前是可以用的…
bsidb
2016-12-22 22:38:58 +08:00
环境变量没设置好,提示了 QT 相关的环境变量没有设置。
leighton
2016-12-23 03:13:19 +08:00
安装 fcitx-qt4 fcitx-qt5 ,然后在 /etc/profile 或 ~/.xprofile 中添加 export QT_IM_MODULE=fcitx
Solitudechn
2016-12-23 08:54:58 +08:00
@bsidb 亲,我安装了,也添加了…
Solitudechn
2016-12-23 08:55:21 +08:00
@attentionlee06 我真的安装了也添加了,
Solitudechn
2016-12-23 08:55:38 +08:00
先谢谢各位了,我换回 gnome 了…
hosiet
2016-12-23 09:36:54 +08:00
到 ~/.kde/env/ 目录下面创建一个带执行权限的以 .sh 结尾的文件,把上面那几行写进去再试试。还不行就真帮不了你了。目录不存在的话先创建一个。以上使用 KDE Plasma 5 , KDE4 没试过。

总之我先去上游报了个 Bug 跟踪一下这个问题: github.com/fcitx/fcitx/issues/315
hosiet
2016-12-23 09:57:03 +08:00
最后检查 im-config 工具显示的情况,确保选中的都是 fcitx 。
bsidb
2016-12-23 11:10:46 +08:00
@Solitudechn 如果你添加了,但是 fcitx-diagnose 提示还是有环境变量配置错的问题,说明添加的方式不对~
Solitudechn
2016-12-23 13:50:35 +08:00
@hosiet 谢谢,我之前考虑过向上有提问,但是找不到在哪里, bug 追踪,在 debian sid 都有崩溃的可能… im-config 我也配置过了,但是没有任何反应
Solitudechn
2016-12-23 13:51:56 +08:00
@bsidb 我尝试按照提示添加,按照 arch wiki 里的添加,或者添加到 profile 里,但是还真没按照楼上的放到 kde 的配置目录里…晚上做个实验看看还不会出现这种情况,毕竟我是因为 kde 很好开,才去用的 kdw
Solitudechn
2016-12-23 13:52:08 +08:00
@bsidb kde
bsidb
2016-12-23 15:26:13 +08:00
@Solitudechn 最最最大招是把环境变量定义放在.bashrc 里。 配置后自己用 echo 命令就能检查环境变量是不是配置好了~
Solitudechn
2016-12-24 07:27:40 +08:00
@bsidb 我直接 export 也没有用啊…
bsidb
2016-12-24 08:37:30 +08:00
@Solitudechn 是不是输错了?
Solitudechn
2016-12-24 08:42:03 +08:00
@bsidb 其实我想说的是*rc 不能影响 x windows 吧 而且 export 是易失的啊
linux40
2016-12-24 09:19:31 +08:00
可以参考 archwiki 的 fcitx 和 kde 页。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/329351

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX