第 15 章 常见问题

15.1. 遭遇了4.1之前不曾遇到的输入问题(非输入法不能启用,而是例如删除文本错误,或者已经启用输入法但是无法输入)
15.2. 编译时说找不到文件X11/Xlib.h
15.3. 编译安装完成后,按ctrl_space无法打开fcitx的输入条啊?
15.4. 界面的颜色怎么那么难看?
15.5. 我将fcitx加到gnome的自动启动后,gnome怎么启动那么慢?
15.6. 为什么有时候fcitx会卡几秒?
15.7. 为什么我只按了一个键,输入条上却出现两个相同的字符?
15.8. 当我使用en_US.UTF-8时,为什么无法激活fcitx?
15.9. fcitx的默认字体并不是我常用字体
15.10. 有些皮肤周围为什么有不透明的黑边
15.11. fcitx启动后图标背景为黑色,但关闭后手动启动背景颜色正常
15.12. 有时Firefox中输入的第一个字母会丢失
15.13. fcitx在某些的程序中无法光标跟随/光标跟随存在问题
15.14. 在flash中无法输入
15.15. 我对于fcitx拼音词库很不满
15.16. 我是kde4用户,kimpanel的问题太多了,可是我又想界面协调
15.17. 我想输入日语怎么办?
15.18. 我想输入颜文字
15.19. 我在使用vnc/nomachine远程连接时,fcitx好像不太好使?
15.20. 我发现了 fcitx 的 bug 怎么办?

15.1.

遭遇了4.1之前不曾遇到的输入问题(非输入法不能启用,而是例如删除文本错误,或者已经启用输入法但是无法输入)

如果是gtk或者qt程序的问题,请先尝试ctrl+alt+p关掉预编辑嵌入模式。

如果是x程序,请尝试关掉xim的On The Spot支持(需要重启输入法)。

15.2.

编译时说找不到文件X11/Xlib.h

这个信息是说编译程序没有找到X的头文件,一般是因为您没有安装X的开发包(在RH/MDK中名为XF*-devel-*或xorg-*-devel-*)。

15.3.

编译安装完成后,按ctrl_space无法打开fcitx的输入条啊?

这个的原因有很多并且十分复杂。你可能需要一一排查以下情况:

如果其他程序可以成功使用fcitx,只有单独某个程序不能使用,那么也许是ctrl space的快捷键被抢占了,想办法设置保证不冲突。

如果一类程序(GTK,或者QT),或者全部的程序都不能输入,你需要检查环境变量。

打开一个终端,输入

echo $XMODIFIERS
echo $GTK_IM_MODULE
echo $QT_IM_MODULE
					

检查是不是你想要的值。具体值参见配置环境。 如果是,先尝试从终端中启动程序看是否可以输入。如果不可以,有以下可能,你的locale没有生成,需要通过 locale -a 查看你当期的locale是否存在。

对于GTK程序,可以通过 gtk-query-immodules-2.0/gtk-query-immodules-3.0 检查是否有 xim 以及 fcitx 。如果有,但是不能输入,你也许应该继续检查 /etc/gtk-2.0/gtk.immodules 和 /usr/lib/gtk-3.0/3.0.0/immodules.cache (不同发行版和cpu架构可能路径不同) 是否和之前的命令输出相同。如果没有 xim 模块(这一般出现在opensuse上,因为它单独打包了xim的im module)。

如果终端中启动的程序可以,但是桌面启动的程序不行,那么你的环境变量可能仅仅设置在shell里面,而不是启动桌面的时候设置的环境变量,可以管用的位置有 ~/.xprofile (通过gdm或者kdm启动时),或者 ~/.xinitrc (通过slim或者startx启动时)

检查 GTK 程序使用的输入模块。首先开启一个普通的gtk程序(不可以是firefox),比如gtk-demo就是一个不错的选择。在输入框右键单击,在输入法菜单里面检查是否是xim或者fcitx,如果不是,那么说明gtk没有选择fcitx支持的方式进行输入。需要设置 GTK_IM_MODULE=xim 或者 fcitx (4.1以后)才可以。

检查 QT 程序使用的输入模块。执行qtconfig 看选中的输入法模块,可以使用的是xim和fcitx,xim在 4.0.1之前只支持over the spot。 还可能存在的问题就是 /usr/share/X11/locale/ 没有你的locale(在一些自行编译的嵌入式系统上可能出现)。

检查是否正在使用fcitx im module 最简单的办法是执行 dbus-monitor,观察是否有org.fcitx.Fcitx 的内容。

15.4.

界面的颜色怎么那么难看?

欢迎你贡献你自己觉得更好的配色。

15.5.

我将fcitx加到gnome的自动启动后,gnome怎么启动那么慢?

~/.gnome2/session-manual里面0,Priority=31的31换成50即可。

15.6.

为什么有时候fcitx会卡几秒?

fcitx是在第一次输入时读入码表,如果码表比较大的话,读入的时间可能会比较久一些,感觉有些卡,但后面输入就不会再有这种现象了(如果切换了输入法的话,切换后的第一次输入也会重新读入码表)。

15.7.

为什么我只按了一个键,输入条上却出现两个相同的字符?

这种情况一般出现在KDE中。应该是QT的XIM支持出现问题。出现这个现象时,请在窗口管理器的标题栏按鼠标右键弹出系统菜单,然后按ctrl_space关闭输入法,重新回到应用程序就可以了。

15.8.

当我使用en_US.UTF-8时,为什么无法激活fcitx?

参加前面的环境配置faq

15.9.

fcitx的默认字体并不是我常用字体

由于fcitx并没有使用一些高层的字体处理,默认字体仅仅是利用Fontconfig找到的一个系统当中的中文字体(并无优先级关系,也不服从/etc/fonts.conf)。 可以通过配置文件指定具体的字体解决。或者你应该考虑编译时enable-pango,这样字体设置就有更好的支持了。

15.10.

有些皮肤周围为什么有不透明的黑边

由于Xserver需要可以支持混成的窗口管理器才能处理真透明效果,因此需要对窗口管理器本身进行设置。相应的开启混成之后会消耗更多的CPU和GPU性能,因此是否开启这个效果请自己权衡。

分为以下情况:

  1. Gnome

    Metacity可以支持混成,但由于不是所有的显卡和驱动程序都能很好地支持混成,因此混成在gnome中默认是未开启的。如果你的显卡和驱动程序支持3D加速,则可以开启之。

    使用gconf-editor进行编辑,编辑/apps/metacity/general/compositing_manager,设置为真即可。

    或者直接使用下面的命令启用:

    gconftool-2 -s --type bool /apps/metacity/general/compositing_manager true

    如果你想禁用它,修改“true”为“false”,并重新执行该命令。

  2. KDE4

    Kwin可以支持混成,在系统设置,桌面效果内设置。

  3. XFCE

    Xfwm4支持混成,在高级窗口管理器内进行设置。

  4. Compiz

    Compiz >= 0.9.0可能默认没有开启混成,可以通过安装ccsm进行配置。

  5. 其他

    其他窗口管理器可以通过一个额外的混成管理器xcompmgr进行混成管理。只需要安装它即可。另外也可以将之前所述的窗口管理器在不开启混成的情形下同时使用xcompmgr,但相应的可能不如原生的效果那么好。

15.11.

fcitx启动后图标背景为黑色,但关闭后手动启动背景颜色正常

你可以通过设置DelayStart延迟几秒启动fcitx,在支持混成的窗口管理器和面板启动之后再启动fcitx。

15.12.

有时Firefox中输入的第一个字母会丢失

请使用GTK IM Module,参见环境配置

15.13.

fcitx在某些的程序中无法光标跟随/光标跟随存在问题

请使用IM Module,以及调整xim的style,参见环境配置

15.14.

在flash中无法输入

请使用GTK IM Module,参见环境配置

15.15.

我对于fcitx拼音词库很不满

有两个折中的解决方案。

  1. 利用createPYMB创建自己的词库,放在~/.config/fcitx/pinyin下面。

  2. 尝试fcitx-sunpinyin,sunpinyin是一个基于语言模型的pinyin开源输入法项目,对于整句输入有很大提升。

15.16.

我是kde4用户,kimpanel的问题太多了,可是我又想界面协调

你可以尝试这里的小工具http://csslayer.tk/wordpress/fcitx开发/fcitx-skingenerator/

15.17.

我想输入日语怎么办?

你可以尝试这里:http://forum.ubuntu.org.cn/viewtopic.php?f=8&t=290712&start=0 5楼的码表。 或者请等待基于anthy的fcitx的输入法wrapper,这个项目目前在计划中。

15.18.

我想输入颜文字

fcitx的QuickPhrase?在你有想象力的前提下,可以发挥很多功能,例如用来输入颜文字,例如用来根据Latex的标记输入特殊符号。

15.19.

我在使用vnc/nomachine远程连接时,fcitx好像不太好使?

vnc下fcitx似乎确实有问题,但我们尚未验证是否这是基于xim的通病。 nomachine/nx下是没有问题的,不过由于你可能是使用windows进行远程连接,那么ctrl+space会被windows的输入法抢走而不会传递到远程的计算机上,你可以考虑将fcitx 的输入法切换快捷键设置为shift+space。在linux的nx客户端没有问题。

15.20.

我发现了 fcitx 的 bug 怎么办?

  1. 确认你发现的问题不在常见问题列表里。

  2. Issues 中查询, 确认尚未有人报告该问题; 如果已经有人报告了该问题, 但是你想补充更多信息, 可以回复进行补充。

  3. 如果确认了不是已知问题,那么不必拘束,在 Issues 中 New issue 提交 bug 的详细情况,我们将尽快确认。

    如果是导致 fcitx 退出的错误, 你可以查看 ~/.config/fcitx/log/crash.log 中是否有相关信息, 同时将这个信息和你的 fcitx 已经编译的二进制文件发上来。