Input method related environment variables/zh-hans: Difference between revisions

From Fcitx
Jump to navigation Jump to search
No edit summary
Created page with "更新 gtk2 的文件,"
Line 32: Line 32:
  gtk-query-immodules-2.0 > <gtk-2.0 的输入法模块文件>
  gtk-query-immodules-2.0 > <gtk-2.0 的输入法模块文件>


to do update for gtk2.
更新 gtk2 的文件,


Or if your gtk2 version is newer than 2.24.20, you should use
Or if your gtk2 version is newer than 2.24.20, you should use

Revision as of 23:28, 2 February 2016

这个页面介绍了以下环境变量的含义。你不需要理解他们来使用Fcitx,但是以下内容可能会在你遇到问题是帮助你检查哪里出了问题。

XMODIFIERS

这个变量仅影响 XIM。格式为

XMODIFIERS=@im=<xim 服务器名称>

当 XIM 服务器启动时,他会注册一个应当在这里使用的名称。这个名称不能和其他 XIM 服务器相同,因此你无法在同一个 X 服务器下运行两个 Fcitx。通常情况下,Fcitx 的 XIM 服务器名称为 fcitx。

因此对于 Fcitx 来说这个设置应当为

XMODIFIERS=@im=fcitx

在非 CJK 语言环境中,如果这个环境变量没有设置,一些程序中 XIM 将无法工作,这意味这你最好总是设置了这个环境变量。并且 XIM 也需要你有正确的语言环境,这意味着你的语言必须在下面的命令的输出当中

locale -a

你可以通过以下命令检查你当前的语言环境

locale

为了使用 XIM,你的语言不能设置为 C 或者 POSIX。

GTK_IM_MODULE

这会覆盖系统的gtk输入法模块的自动选择。在默认情况下,gtk按照语言选择对应的输入法模块。Fcitx声明它支持 "zh:ja:ko:*"。这些信息将被记录在一个文件当中,在大多数的 linux 系统中,这个文件为 /etc/gtk-2.0/gtk.immodules 和 /etc/gtk-3.0/gtk.immodules,有时会以 -32 或者 -64 结尾。

{{warning|在 Debian 进行了多架构的迁移之后,将使用不同的文件。对应文件将为 /usr/lib/<架构>/gtk-{2,3}.0/gtk.immodules }} 你需要使用

gtk-query-immodules-2.0 > <gtk-2.0 的输入法模块文件>

更新 gtk2 的文件,

Or if your gtk2 version is newer than 2.24.20, you should use

gtk-query-immodules-2.0 --update-cache

instead just like gtk3.

and

gtk-query-immodules-3.0 --update-cache

to do update for gtk3.

Otherwise new im module will not be recognized.

If no im module specified by GTK_IM_MODULE is found, it will fallback to auto select method.

QT_IM_MODULE

Qt's im module is similar with Gtk, but don't need extra file to recognize. If QT_IM_MODULE is not specified, qtconfig (Ubuntu/Debian/ArchLinux qtconfig-qt4) can be used to configure the default one.

Otherwise it will be override by QT_IM_MODULE.

LC_CTYPE

System locale should not be changed in all case. It might brings unpredictable effect.

This should only be used in some case, including emacs and java. Emacs has a historical bug, that under en_US.UTF-8 or similar locale, it will never use XIM (Though emacs is a gtk app, it use XIM). The only way to walkaround this is to use LC_CTYPE to fix this.


For example, to only set this with emacs, run emacs with

LC_CTYPE=zh_CN.UTF-8 emacs

It will not effect the display language of emacs.

Notice, even if you are not using Chinese, you should also try to set it so LC_CTYPE=zh_CN.UTF-8, due to some limitation of XIM.