您尚未登录。

#1 2013-08-21 20:36:49

wpjsolo
会员
注册时间: 2013-07-08
帖子: 40

[已解决]Wine中无法使用fcitx输入中文

如题,装了Wine,但是在Wine的程序中(比如记事本)无法使用中文输入法。请问如何设置?

~/.xprofile 的配置如下:
export XIM="fcitx"
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"


如果将GTK_IM_MODULE和QT_IM_MODULE改成xim,那么连Firefox也无法用中文了....

到底该如何设置呀?

最近编辑记录 wpjsolo (2013-08-22 11:56:21)

离线

#2 2013-08-21 23:45:14

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

Re: [已解决]Wine中无法使用fcitx输入中文

贴 fcitx-diagnose 的输出。

离线

#3 2013-08-22 09:58:21

wpjsolo
会员
注册时间: 2013-07-08
帖子: 40

Re: [已解决]Wine中无法使用fcitx输入中文

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

        Linux WPJSOLO 3.10.7-1-ARCH #1 SMP PREEMPT Thu Aug 15 11:55:34 CEST 2013 x86_64 GNU/Linux

2.  `lsb_release`:

    `lsb_release` 未找到.

3.  `/etc/lsb-release`:

    `/etc/lsb-release` 未找到.

4.  `/etc/os-release`:

        NAME="Arch Linux"
        ID=arch
        PRETTY_NAME="Arch Linux"
        ANSI_COLOR="0;36"
        HOME_URL="https://www.archlinux.org/"
        SUPPORT_URL="https://bbs.archlinux.org/"
        BUG_REPORT_URL="https://bugs.archlinux.org/"

5.  桌面环境:

    桌面环境为 `gnome3`。

# 环境:
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
            en_US.utf8
            POSIX
            zh_CN
            zh_CN.gb18030
            zh_CN.gb2312
            zh_CN.gbk
            zh_CN.utf8

    2.  当前 locale:

            LANG=zh_CN.utf8
            LC_CTYPE="zh_CN.utf8"
            LC_NUMERIC=zh_CN.utf8
            LC_TIME=zh_CN.utf8
            LC_COLLATE="zh_CN.utf8"
            LC_MONETARY=zh_CN.utf8
            LC_MESSAGES="zh_CN.utf8"
            LC_PAPER=zh_CN.utf8
            LC_NAME="zh_CN.utf8"
            LC_ADDRESS="zh_CN.utf8"
            LC_TELEPHONE="zh_CN.utf8"
            LC_MEASUREMENT=zh_CN.utf8
            LC_IDENTIFICATION="zh_CN.utf8"
            LC_ALL=

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

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

2.  版本:

    Fcitx 版本: `4.2.8.1`

3.  进程:

    找到了 2 个 fcitx 进程:

         9333 fcitx
         9349 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 服务名称: "ibus" 与环境变量中设置的值 "fcitx" 不同.**

## Qt:
1.  `${QT_IM_MODULE}`:

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

2.  Qt 输入法模块文件:
    找到了 fcitx 的 qt 模块: `/usr/lib/fcitx/qt/libfcitx-quickphrase-editor.so`.
    找到了 Qt5 的输入法模块: `/usr/lib/qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so`.
    找到了 Qt4 的输入法模块: `/usr/lib/qt4/plugins/inputmethods/qtim-fcitx.so`.

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

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

2.  `gtk-query-immodules`:

    1.  gtk 2:

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

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

        已找到 gtk `2.24.20` 的 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.20` 的 `gtk-query-immodules`.
        版本行:

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

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

    2.  gtk 3:

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

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

        已找到 gtk `3.8.2` 的 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/vmware/libconf/etc/gtk-2.0/gtk.immodules` 找到了 gtk `2.20.0` 的输入法模块缓存.
        版本行:

            # Created by gtk-query-immodules-2.0 from gtk+-2.20.0

        **无法输入法模块缓存 `/usr/lib/vmware/libconf/etc/gtk-2.0/gtk.immodules` 中找到 fcitx**

        在 `/usr/lib/vmware-installer/2.1.0/lib/libconf/etc/gtk-2.0/gtk.immodules` 找到了 gtk `2.20.0` 的输入法模块缓存.
        版本行:

            # Created by gtk-query-immodules-2.0 from gtk+-2.20.0

        **无法输入法模块缓存 `/usr/lib/vmware-installer/2.1.0/lib/libconf/etc/gtk-2.0/gtk.immodules` 中找到 fcitx**

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

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

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

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

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

            # Created by gtk-query-immodules-2.0 from gtk+-2.24.20

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

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

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

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

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

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

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

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

4.  Gtk 输入法模块文件:

    1.  gtk 2:

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

    2.  gtk 3:

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

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

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

2.  插件列表:

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

            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-notificationitem
            fcitx-pinyin
            fcitx-pinyin-enhance
            fcitx-punc
            fcitx-quickphrase
            fcitx-remote
            fcitx-sogoupinyin
            fcitx-spell
            fcitx-table
            fcitx-unicode
            fcitx-vk
            fcitx-x11
            fcitx-xim
            fcitx-xkb
            fcitx-xkbdbus

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

            fcitx-qw

    3.  用户界面:

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

            fcitx-classic-ui
            fcitx-kimpanel-ui

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

        fcitx-keyboard-us
        pinyin
        sogou-pinyin

2.  默认输入法:

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

# 日志:
1.  `date`:

        2013年 08月 22日 星期四 09:55:55 CST

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

        总用量 0

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

    `~/.config/fcitx/log/crash.log` 未找到.

离线

#4 2013-08-22 10:52:31

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

Re: [已解决]Wine中无法使用fcitx输入中文

2.  根窗口上的 XIM_SERVERS:

    **Xim 服务名称: "ibus" 与环境变量中设置的值 "fcitx" 不同.**

鉴于你在使用 GNOME 3,试试如下命令?

gsettings set org.gnome.settings-daemon.plugins.keyboard active false 

离线

#5 2013-08-22 11:54:49

wpjsolo
会员
注册时间: 2013-07-08
帖子: 40

Re: [已解决]Wine中无法使用fcitx输入中文

非常感谢!!!已经可以用了!~WineQQ中输入法也正常!
请问是啥原理, 是gnome.settings-daemon的BUG么?这个参数是不让daemon加载XMODIFIERS的意思?
GNOME中输入法问题

百合仙子 说:

2.  根窗口上的 XIM_SERVERS:

    **Xim 服务名称: "ibus" 与环境变量中设置的值 "fcitx" 不同.**

鉴于你在使用 GNOME 3,试试如下命令?

gsettings set org.gnome.settings-daemon.plugins.keyboard active false 

离线

#6 2013-08-22 12:10:04

nopriler
会员
注册时间: 2012-01-03
帖子: 393

Re: [已解决]Wine中无法使用fcitx输入中文

wpjsolo 说:

请问是啥原理, 是gnome.settings-daemon的BUG么?这个参数是不让daemon加载XMODIFIERS的意思?

GNOME3.8集成了iBus,那条命令禁用了iBus模块。(大概)

最近编辑记录 nopriler (2013-08-22 14:04:52)

离线

#7 2013-08-22 13:01:00

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

Re: [已解决]Wine中无法使用fcitx输入中文

原理就是,GNOME 3 要养它家的 ibus,排挤其它输入法框架。这和百度搜索结果中百度自家的结果总是占前排一个道理。

离线

#8 2019-10-28 11:50:37

iriwen
会员
注册时间: 2019-10-28
帖子: 37

Re: [已解决]Wine中无法使用fcitx输入中文

你好, 我机器上中文输入法在wine程序中无法输入,点击也切换不了,最近更新了系统不知道咋引起的这个问题,以下是我的fcitx-diagnose的输出,麻烦帮忙看下可好,谢谢:



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

        Linux arch-pc 5.3.6-1-MANJARO #1 SMP PREEMPT Sat Oct 12 09:30:05 UTC 2019 x86_64 GNU/Linux

2.  `lsb_release -a`:

        LSB Version:    n/a
        Distributor ID:    ManjaroLinux
        Description:    Manjaro Linux
        Release:    18.1.1
        Codename:    Juhraya

3.  `lsb_release -d`:

        Description:    Manjaro Linux

4.  `/etc/lsb-release`:

        DISTRIB_ID=ManjaroLinux
        DISTRIB_RELEASE=18.1.1
        DISTRIB_CODENAME=Juhraya
        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/"

6.  桌面环境:

    桌面环境为 `gnome3`。

7.  Bash 版本:

        BASH_VERSION='5.0.11(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/worker

    2.  `${XDG_CONFIG_HOME}`:

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

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

    3.  Fcitx 设置目录:

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

5.  当前用户:

    脚本作为 worker (1000) 运行。

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

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

2.  版本:

    Fcitx 版本: `4.2.9.7`

3.  进程:

    找到了 2 个 fcitx 进程:

         1283 fcitx
         1293 fcitx-dbus-watc

4.  `fcitx-remote`:

    `fcitx-remote` 工作正常.

5.  DBus 界面:

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

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

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

# 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 Server Name from Environment variable is fcitx.

2.  根窗口上的 XIM_SERVERS:

    XIM server name is the same with that set in the environment variable.

## 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 的输入法模块: `/usr/lib/qt4/plugins/inputmethods/qtim-fcitx.so`.

## 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:*"

    2.  gtk 3:

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

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

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

    2.  gtk 3:

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

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

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

            fcitx-autoeng
            fcitx-autoeng-ng
            fcitx-classic-ui
            fcitx-clipboard
            fcitx-dbus
            fcitx-freedesktop-notify
            fcitx-fullwidth-char
            fcitx-fullwidth-char-enhance
            fcitx-imselector
            fcitx-ipc
            fcitx-ipcportal
            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-sogouwubi
            fcitx-spell
            fcitx-table
            fcitx-unicode
            fcitx-x11
            fcitx-xim
            fcitx-xkb
            fcitx-xkbdbus

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

            fcitx-chttrans
            fcitx-qw
            fcitx-vk

3.  插件库:

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

4.  用户界面:

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

        fcitx-classic-ui
        fcitx-kimpanel-ui

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

        fcitx-keyboard-cn
        pinyin
        sogoupinyin
        sogouwubi

2.  默认输入法:

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

# 日志:
1.  `date`:

        2019年 10月 28日 星期一 11:35:41 CST

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

        总用量 0

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

    `~/.config/fcitx/log/crash.log` 未找到.

离线

#9 2019-10-28 11:51:54

iriwen
会员
注册时间: 2019-10-28
帖子: 37

Re: [已解决]Wine中无法使用fcitx输入中文

依云 说:

2.  根窗口上的 XIM_SERVERS:

    **Xim 服务名称: "ibus" 与环境变量中设置的值 "fcitx" 不同.**

鉴于你在使用 GNOME 3,试试如下命令?

gsettings set org.gnome.settings-daemon.plugins.keyboard active false 

学习了!

离线

页脚