Ubuntu 8.04 下安装fcitx输入法

由于要使用系统的虚拟机(主要是vbox),我发现我的输入法scim和虚拟机相互冲突,无赖之下我只好投奔fcitx了。

现在就来讲述一下fcitx的痛苦安装过程(主要怪自己没有认真看wiki)。

为了不误导大家,建议大家可以参阅帖子:

http://forum.ubuntu.org.cn/viewtopic.php?p=649597&sid=d159d93db3587b62b08d2d86eae9aee2

里面有地方讲到了wiki相关地址。

 

以下是我的一些方法。

这种方法是在没有删除scim输入法的情况下选择使用输入法的一种方式。如果你不习惯用fcitx的话可以换回去而无须安装。

首先和wiki一样使用apt安装了fcitx

sudo apt-get install im-switch fcitx 

 不过前一个im-switch已经装好了。

其次就是主要环节了。我比较喜欢en_US的环境所有要首先解决en环境下输入法的调度问题.

wiki中写道
编辑 /etc/gtk-2.0/gtk.immodules(如果存在的话) 或者 /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules 文件,在xim 的 local 增加 en 也就是说:

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

改成

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

 由于ubuntu 8.04没有前面一个文件,所以就需要修改后面那个了.我这里配置文件的修改地方在文件最后一行.

 

然后是解决自动启动的问题了.

通过分析我了解到X系统的启动是需要经过一系列xsession的,其中有一些地方涉及到了输入法的装入:

/etc/X11/Xsession.d 目录下面就是需要加载的程式.其中的 80im-switch脚本文件引起了我的注意.

打开文件我发现这里就是输入法的装载信息:

80im-switch 写道
#!/bin/sh
# Copyright (C) 2005 Kenshi Muto <kmuto@debian.org>
# Modified for Debian package.
# Copyright (C) 1999 - 2004 Red Hat, Inc. All rights reserved. This
# copyrighted material is made available to anyone wishing to use, modify,
# copy, or redistribute it subject to the terms and conditions of the
# GNU General Public License version 2.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# X Input method setup script

# Keep original values related to IM
_XIM=$XIM
_XIM_PROGRAM=$XIM_PROGRAM
_XIM_ARGS=$XIM_ARGS
_XMODIFIERS=$XMODIFIERS
_GTK_IM_MODULE=$GTK_IM_MODULE
_QT_IM_MODULE=$QT_IM_MODULE

# $LNG is locale <language>_<region> without .<encoding> and .<encoding>@EURO
LNG=${LC_ALL:-${LC_CTYPE:-${LANG}}}
LNG=${LNG%@*}
LNG=${LNG%.*}

[ -z "$LNG" ] && LNG="all_ALL" || true

echo "Setting IM through im-switch for locale=$LNG."

# Source first found configuration under $LNG locale
for f in "$HOME/.xinput.d/${LNG}" \
"$HOME/.xinput.d/all_ALL" \
"/etc/X11/xinit/xinput.d/${LNG}" \
"/etc/X11/xinit/xinput.d/all_ALL" \
"/etc/X11/xinit/xinput.d/default" ; do
if [ -f "$f" -a -r "$f" ]; then
echo "Start IM through $f linked to $(readlink -f $f)."
. "$f"
break
fi
done

unset LNG

# Revibe IM related environment if other values were set.
[ "$_XIM" ] && XIM=$_XIM || true
[ "$_XIM_PROGRAM" ] && XIM_PROGRAM=$_XIM_PROGRAM || true
[ "$_XIM_ARGS" ] && XIM_ARGS=$_XIM_ARGS || true
[ "$_XMODIFIERS" ] && XMODIFIERS=$_XMODIFIERS ||true
[ "$_GTK_IM_MODULE" ] && GTK_IM_MODULE=$_GTK_IM_MODULE || true
[ "$_QT_IM_MODULE" ] && QT_IM_MODULE=$_QT_IM_MODULE || true


[ -n "$GTK_IM_MODULE" ] && export GTK_IM_MODULE || true
[ -n "$QT_IM_MODULE" ] && export QT_IM_MODULE || true

# setup XMODIFIERS
[ -z "$XMODIFIERS" -a -n "$XIM" ] && XMODIFIERS="@im=$XIM" || true
[ -n "$XMODIFIERS" ] && export XMODIFIERS || true

# execute XIM_PROGRAM
if [ -n "$XIM_PROGRAM" -a -x "$XIM_PROGRAM" ]; then
if [ -z "$XIM_PROGRAM_SETS_ITSELF_AS_DAEMON" ]; then
eval "$XIM_PROGRAM $XIM_ARGS &" || true
else
eval "$XIM_PROGRAM $XIM_ARGS" || true
fi
fi
# execute XIM_PROGRAM_XTRA
[ -n "$XIM_PROGRAM_XTRA" ] && eval "$XIM_PROGRAM_XTRA &" || true

 其中的红地方是值得注意的,它在加载的时候其实是按照用户的配置文件行使的,进入 "$HOME/.xinput.d/" 目录,我们看到里面就是一个link文件(名字应该是en_US,因为我的默认环境是en_US).在这里我们初步判定系统加载输入法的时候可能就是通过locale来判定位置,然后根据各自的不同位置来加载配额文件.我跟踪这个link文件发现其就是链接到了/etc/X11/xinit/xinput.d 目录下的scim文件(里面是scim输入法需要加载时候的相关配置信息).至此我们希望把其改成fcitx输入法,在/etc/X11/xinit/xinput.d 目录里面我又发现了fcitx的配置文件.这样好了我们就直接改那个link文件到这个配置文件fcitx就可以了.

 

如此以来重启x,再进入系统应该就可以使用fcitx输入法了.

 

这样一来我们在没有删除scim输入法,和保留我们以往的语言环境的情况下使用上了fcitx.

 

 

阅读更多
个人分类: Linux 零散小知识
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭