Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1020348
  • 博文数量: 326
  • 博客积分: 10135
  • 博客等级: 上将
  • 技术积分: 2490
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-22 23:53
文章分类

全部博文(326)

文章存档

2014年(1)

2012年(4)

2011年(1)

2010年(4)

2009年(41)

2008年(44)

2007年(63)

2006年(168)

我的朋友

分类: LINUX

2006-10-27 15:49:06

在输入法版和这里看到不少同学和我一样,对配置fcitx和scim有点模糊。总是出现出现输入法的图标却无法使用的情况。下面我对我阵子折腾这两个输入法的体会跟大家分享一下:)

这两个输入法的共同点是都需要设定 XMODIFIERS 这个环境变量,而且都需要在 X 启动配置中设置,如果只写在 .bashrc 中是不起作用的,因为当 X 启动时并不读取这个文件。

X 的启动不外乎这几种方式: startx, kdm, gdm, xdm,,所以,输入法的设置就需要从这几种 X 管理的方式着手。

1. 对于 startx
这个比较简单,只需要设置用户目录下的 .xsession 就可以了,下面的是我的一个例子:
export XMODIFIERS="@im=SCIM"
scim -d
#export XMODIFIERS="@im=fcitx"
#exec fcitx &
exec x-session-manager
注意 scim 和 fcitx 的启动方式的不同,而且,根据scim官方网站的提示,这里的SCIM是需要大写的!

2. 对于 kdm
kdm的配置文件在/etc/kde3/kdm/kdmrc,其中有这段配置:
# Default is "/usr/X11R6/bin/xterm -ls -T"
Session=/etc/kde3/kdm/Xsession
然后查看/etc/kde3/kdm/Xsession,其内容为:
#! /bin/sh
# Xsession - run as user
# invoke global X session script
. /etc/X11/Xsession
可见,其启动脚本为/etc/X11/Xsession
在这个文件中可以看到,启动
SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]; then
for SESSIONFILE in $SESSIONFILES; do
. $SESSIONFILE
done
fi
这里的SYSSESSIONDIR就是/etc/X11/Xsession.d/目录,这个下面有几个以数字开头的文件,前面的数字就是他们的启动顺序,其中一个文件为:
30xfree86-common_xresources
其中有这样的脚本:
if grep -qs ^allow-user-resources "$OPTIONFILE"; then
if [ -f "$USRRESOURCES" ]; then
xrdb -merge $USRRESOURCES
fi
fi
这里的USERRESOURCES在前面的Xsession中是这样定义的:
USRRESOURCES=$HOME/.Xresources
所以,对于kdm来说,配置文件是家目录下的 .Xresources文件。只要把下面的脚本写在这里就可以了:
export XMODIFIERS="@im=SCIM"
scim -d
#export XMODIFIERS="@im=fcitx"
#exec fcitx &
exec x-session-manager

3. gdm
gdm的配置文件在/etc/gdm,由类似于分析上面kde的方式,最后发现它的配置文件是 $HOME/.xsession

4. xdm
这个没有用过,方法应该类似。

5. 小结
上面这些是困扰了好久之后静下心来慢慢找出来的。由于大家使用的发行版本不同,配置文件的形式也会有所变化,需要自己动手试试,多发现一下。俗语说的好: 纸上得来终觉浅,决知此事要躬行。自己的理解还是需要自己动手才知道。很多时候,官方网站上的安装教程对于自己也往往未必适用,这个时候就需要自己动动脑 筋了:)


ps:呵呵,现在fcitx3.2根本不用这么麻烦了
只要apt-get install im-switch
就会自动启动了
阅读(1525) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~