Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ubuntu 16.04 启动 TIM 后,无法输入中文 #105

Closed
superleeyom opened this issue May 16, 2018 · 2 comments
Closed

Ubuntu 16.04 启动 TIM 后,无法输入中文 #105

superleeyom opened this issue May 16, 2018 · 2 comments

Comments

@superleeyom
Copy link

无法输入中文,只能输入英文,整体环境:

  • 系统环境:Ubuntu 16.04
  • 输入法:搜狗输入法
  • wine版本:wine-2.4 (Staging)

还希望有解决过的朋友,解答一下。

@superleeyom
Copy link
Author

执行 fcitx-diagnose命令后信息:

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

        Linux leeyom-ubuntu 4.13.0-41-generic #46~16.04.1-Ubuntu SMP Thu May 3 10:06:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

2.  `lsb_release -a`:

        No LSB modules are available.
        Distributor ID:	Ubuntu
        Description:	Ubuntu 16.04.3 LTS
        Release:	16.04
        Codename:	xenial

3.  `lsb_release -d`:

        Description:	Ubuntu 16.04.3 LTS

4.  `/etc/lsb-release`:

        DISTRIB_ID=Ubuntu
        DISTRIB_RELEASE=16.04
        DISTRIB_CODENAME=xenial
        DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

5.  `/etc/os-release`:

        NAME="Ubuntu"
        VERSION="16.04.3 LTS (Xenial Xerus)"
        ID=ubuntu
        ID_LIKE=debian
        PRETTY_NAME="Ubuntu 16.04.3 LTS"
        VERSION_ID="16.04"
        HOME_URL="http://www.ubuntu.com/"
        SUPPORT_URL="http://help.ubuntu.com/"
        BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
        VERSION_CODENAME=xenial
        UBUNTU_CODENAME=xenial

6.  桌面环境:

    桌面环境为 `gnome3`。

7.  Bash 版本:

        BASH_VERSION='4.3.48(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
            C.UTF-8
            en_AG
            en_AG.utf8
            en_AU.utf8
            en_BW.utf8
            en_CA.utf8
            en_DK.utf8
            en_GB.utf8
            en_HK.utf8
            en_IE.utf8
            en_IN
            en_IN.utf8
            en_NG
            en_NG.utf8
            en_NZ.utf8
            en_PH.utf8
            en_SG.utf8
            en_US.utf8
            en_ZA.utf8
            en_ZM
            en_ZM.utf8
            en_ZW.utf8
            POSIX
            zh_CN.utf8
            zh_SG.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/leeyom

    2.  `${XDG_CONFIG_HOME}`:

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

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

    3.  Fcitx 设置目录:

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

5.  当前用户:

    脚本作为 leeyom (1000) 运行。

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

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

2.  版本:

    Fcitx 版本: `4.2.9.1`

3.  进程:

    找到了 2 个 fcitx 进程:

         1436 fcitx
         1482 fcitx-dbus-watc

4.  `fcitx-remote`:

    `fcitx-remote` 工作正常.

# 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}`:

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

2.  qt5 - `${QT_IM_MODULE}`:

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

3.  Qt 输入法模块文件:
    找到了 Qt5 的输入法模块: `/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so`.
    找到了 Qt4 的输入法模块: `/usr/lib/x86_64-linux-gnu/qt4/plugins/inputmethods/qtim-fcitx.so`.

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

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

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.30` 的输入法模块缓存.
        版本行:

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

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

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

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

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

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

        **无法输入法模块缓存 `/usr/lib/i386-linux-gnu/gtk-3.0/3.0.0/immodules.cache` 中找到 fcitx**

4.  Gtk 输入法模块文件:

    1.  gtk 2:

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

    2.  gtk 3:

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

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

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

2.  插件列表:

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

            fcitx-autoeng
            fcitx-autoeng-ng
            fcitx-chttrans
            fcitx-classic-ui
            fcitx-clipboard
            fcitx-cloudpinyin
            fcitx-dbus
            fcitx-freedesktop-notify
            fcitx-fullwidth-char
            fcitx-fullwidth-char-enhance
            fcitx-imselector
            fcitx-ipc
            fcitx-keyboard
            fcitx-kimpanel-ui
            fcitx-lua
            fcitx-notificationitem
            fcitx-pinyin
            fcitx-pinyin-enhance
            fcitx-punc
            fcitx-punc-ng
            fcitx-quickphrase
            fcitx-remote
            fcitx-sogoucloudpinyin
            fcitx-sogoupinyin
            fcitx-spell
            fcitx-sunpinyin
            fcitx-table
            fcitx-unicode
            fcitx-vk
            fcitx-x11
            fcitx-xim
            fcitx-xkb
            fcitx-xkbdbus

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

3.  插件库:

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

4.  用户界面:

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

        fcitx-classic-ui
        fcitx-kimpanel-ui

    Kimpanel 进程:

         2135 sogou-qimpanel

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

        fcitx-keyboard-us
        sogoupinyin

2.  默认输入法:

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

# 日志:
1.  `date`:

        2018年 05月 16日 星期三 10:49:04 CST

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

        总用量 4
        -rw-rw-r-- 1 leeyom leeyom 44 5月  15 20:58 crash.log

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

        fcitx: BadWindow (invalid Window parameter)

@superleeyom
Copy link
Author

目前已经解决,解决方案如下:

  1. 先解压 TIM-x86_64.AppImage,解压命令:./Tim.AppImage --appimage-extract,然后编辑 AppRun,在脚本的最开头(重要),添加以下几行:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
  1. 然后使用appimagetool-x86_64.AppImage重新打包,执行如下的命令:
$ chmod a+x appimagetool-x86_64.AppImage
$ export ARCH=x86_64 ; ./appimagetool-x86_64.AppImage squashfs-root

解压后的文件夹和 appimagetool-x86_64.AppImage 在同级目录。
3. 打包好后,重新启动即可。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant