论坛首页 入门技术论坛

Ubuntu 8.04 下安装fcitx输入法

浏览 13693 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-06-15  

由于要使用系统的虚拟机(主要是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.

 

 

   发表时间:2008-06-15  
其实比较简单.不过这个输入法是个悬浮的,不爽!
0 请登录后投票
   发表时间:2008-06-16  
不错不错。
0 请登录后投票
   发表时间:2008-06-18  
如果不追求en_us,直接用zh_cn,就不会这么麻烦了。跟着wiki做就是了。
0 请登录后投票
   发表时间:2008-06-18  
不过fcitx有一点不如scim的,就是按shift不能切换到英文状态。
0 请登录后投票
   发表时间:2008-06-19  
可以切换英文状态.
不过我的环境是en_US.
不知道是不是环境的问题.
0 请登录后投票
   发表时间:2008-07-02  
最近发现这个fcitx有时候在系统里面会出现僵死情况,在ubuntu论坛上面有详细讲解,我就不再赘述.
http://forum.ubuntu.org.cn/viewtopic.php?p=824798#824798
0 请登录后投票
   发表时间:2008-11-01  
以下是我的配置文件信息 ~/.fcitx/config 写道
[程序]
显示字体(中)=Microsoft YaHei
显示字体(英)=Monospace
显示字体大小=12
主窗口字体大小=10
字体区域=zh_CN.UTF-8
是否使用AA字体=1
是否使用粗体=1

[输出]
数字后跟半角符号=1
Enter键行为=2
分号键行为=2
大写字母输入英文=1
转换英文中的标点=1
联想方式禁止翻页=1

[界面]
候选词个数=5
主窗口是否使用3D界面=0
输入条使用3D界面=0
主窗口隐藏模式=1
显示虚拟键盘=0
是否自动隐藏输入条=1
输入条是否居中=1
首次显示输入条=0
#输入条固定宽度(仅适用于码表输入法),0表示不固定宽度
输入条固定宽度=0
输入条偏移量X=0
输入条偏移量Y=12
序号后加点=1
显示打字速度=0
显示版本=0
光标色=92 210 131
主窗口背景色=8 8 6
主窗口线条色=24 24 24
主窗口输入法名称色=170 170 170 220 220 220 255 255 255
输入窗背景色=8 8 6
输入窗提示色=152 180 245
输入窗用户输入色=255 255 255
输入窗序号色=255 255 255
输入窗第一个候选字色=152 180 245
#该颜色值只用于拼音中的用户自造词
输入窗用户词组色=152 180 245
输入窗提示编码色=255 255 255
#五笔、拼音的单字/系统词组均使用该颜色
输入窗其它文本色=255 255 255
输入窗线条色=0 0 0
输入窗箭头色=220 220 220
虚拟键盘窗背景色=220 220 220
虚拟键盘窗字母色=80 0 0
虚拟键盘窗符号色=0 0 0

#除了“中英文快速切换键”外,其它的热键均可设置为两个,中间用空格分隔
[热键]
#打开关闭输入法:SHIFT_SPACE SHIFT_LCTRL
打开/关闭输入法=SHIFT_LCTRL CTRL_LSHIFT
#中英文快速切换键 可以设置为L_CTRL R_CTRL L_SHIFT R_SHIFT
中英文快速切换键=L_SHIFT
双击中英文切换=0
击键时间间隔=250
光标跟随=CTRL_K
GBK支持=CTRL_M
GBK繁体切换键=CTRL_ALT_F
联想支持=CTRL_L
反查拼音=CTRL_ALT_E
全半角=SHIFT_SPACE
中文标点=ALT_SPACE
上一页=- ,
下一页== .
第二三候选词选择键=SHIFT

[输入法]
使用拼音=1
使用双拼=0
默认双拼方案=自然码
使用区位=0
使用码表=0
提示词库中的词组=1

[拼音]
使用全拼=0
拼音自动组词=1
保存自动组词=1
增加拼音常用字=CTRL_8
删除拼音常用字=CTRL_7
删除拼音用户词组=CTRL_DELETE
#拼音以词定字键,等号后面紧接键,不要有空格
拼音以词定字键=[]
#重码调整方式说明:0-->不调整  1-->快速调整  2-->按频率调整
拼音单字重码调整方式=2
拼音词组重码调整方式=1
拼音常用词重码调整方式=0
是否模糊an和ang=0
是否模糊en和eng=0
是否模糊ian和iang=0
是否模糊in和ing=1
是否模糊ou和u=0
是否模糊uan和uang=0
是否模糊c和ch=1
是否模糊f和h=0
是否模糊l和n=1
是否模糊s和sh=1
是否模糊z和zh=1
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics