乐者为王

Do one thing, and do it well.

Ubuntu 8.10英文Locale下安装Fcitx中文输入法

系统装好后首先要做的就是安装中文输入法。在网上找了一些中文输入法的资料,最常用的是Fcitx和SCIM输入法。不过好像SCIM的问题比较多,而且据说Fcitx的功能上也要比SCIM强得多,所以决定采用Fcitx输入法。

卸载SCIM

为了避免安装中出现一些问题,在这之前先要卸载掉系统自带的SCIM输入法:

1
2
3
sudo apt-get remove --purge scim*  # 删除SCIM及其配置文件
sudo apt-get autoremove  # 删除被SCIM依赖的,不再使用的package
sudo apt-get install -f  # 尝试修正安装过程中出现的依赖性关系

注:也可以通过“新立得软件包管理器(Synaptic Package Manager)”来卸载SCIM。

安装Fcitx

下载最新的稳定的预编译包 http://www.fcitx.org/download/fcitx-3.4.2-bin.tar.bz2 ,解压到任意目录。启动命令行,进行该目录执行sudo ./fcitx.install进行安装(只是复制了几个文件到目标目录)。反安装也是在该目录下面执行sudo ./fcitx.uninstall(如果知道安装到哪了直接删除也行)。

因为要在英文Locale下启动Fcitx输入法,所以在/etc/X11/xinit/xinput.d/下新建一个文件en_US,文件内容如下:

1
2
3
4
5
6
7
XMODIFIERS="@im=fcitx"
XIM=fcitx
XIM_PROGRAM=/usr/bin/fcitx
XIM_ARGS=""
GTK_IM_MODULE=XIM
QT_IM_MODULE=XIM
DEPENDS="fcitx"

执行ls -l /etc/X11/xinit/xinput.d命令,输出以下内容:

1
2
3
4
5
6
7
8
9
10
11
total 24
drwxr-xr-x 2 root root 4096 2008-10-30 07:10 .
drwxr-xr-x 3 root root 4096 2008-10-30 07:03 ..
lrwxrwxrwx 1 root root   32 2008-11-05 00:31 all_ALL -> /etc/alternatives/xinput-all_ALL
-rw-r--r-- 1 root root 1152 2008-01-08 18:41 default
-rw-r--r-- 1 root root  601 2008-01-08 18:41 default-xim
-rw-r--r-- 1 root root  601 2008-01-08 18:41 en_US
-rw-r--r-- 1 root root  474 2008-01-08 18:41 none
-rw-r--r-- 1 root root  451 2008-10-27 05:54 scim-bridge
lrwxrwxrwx 1 root root   30 2008-11-05 00:31 th_TH -> /etc/alternatives/xinput-th_TH
-rw-r--r-- 1 root root  610 2008-01-08 18:41 th-xim

重启X Window后Fcitx正常启动,输入条位于屏幕顶端,但是按Ctrl+Space无法调出中文输入,用鼠标点小企鹅也不行。这时需要编辑/usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules文件,找到:

1
"xim" "X Input Method" "gtk20" "/usr/share/locale" "ko:ja:th:zh"

将之改成

1
"xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:th:zh"

使Xim在英文环境下也能启动。保存退出,重启X后中文输入就可以被正常调出了。

安装中文所需的Locale包

现在还有个问题就是输入法尾部出现乱码,输入条下的待选字也是乱码,即只显示一些小方框,如下图:

这是因为缺少中文Locale文件导致,需要安装两个中文Locale包。

1
2
sudo apt-get install language-pack-zh
sudo apt-get install language-pack-gnome-zh

或者,也可以将~/.fcitx/config中的:

1
显示字体(中)=*

改成

1
显示字体(中)=AR PL UMing CN  # 填你喜欢的中文字体

重新启动后就没有乱码了。

Comments