LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1591|回复: 5

比较fcitx安装后的不同启动设置方式

[复制链接]
发表于 2009-2-15 00:30:00 | 显示全部楼层 |阅读模式
本文是我在fedora上使用fcitx的一点试验,开始是想解决注销后重登录fcitx的CPU占用率高的问题,对于本文,希望大家多多讨论,各位大侠能不吝赐教,另外请勿转载本文。
                                                                             ──by realasking

对于如何设置fcitx作为系统输入法一 直有几种办法,以fedora为例,一种是修改$home/.bashrc文件,然后在相应桌面环境的自动启动目录中建立.desktop或者系统链接文 件,一种是修改/etc/X11/xinit/xinput.d 中的文件并且将修改的文件拷贝为/etc/X11/xinit/xinputrc文件。对于这两种方法,网上一般认为区别仅在特定用户/特定桌面环境和所 有用户/所有桌面环境可以使用而已,且在fedora 10上,由于imsetting和fcitx冲突而必须卸载imswitch,已经失效,因此实际能采用的方法应该是第一种方法(见hades兄的 fedora 10 英文环境不能激活fcitx的解决方法,地址是:www.linuxsir.cn/bbs/showthread.php

我也一直使用fcitx,采用的方法正是该文中所说的,但是最近在fedora 10的KDE 4.2桌面上使用时发现注销后重新登录系统,CPU第二个核心的占用率一直在100%,如果再次注销,则第一个核心的占用率也是100%。于是我使用 google搜索,但没有发现解决方案,对于这个问题,也仅有一处提及:www.linuxsir.cn/bbs/thread325820.html 但未能解决。另外,按这种设置方式,对于不同的桌面和不同的用户均需分别设置fcitx的启动环境,感觉也有些麻烦,就想到是否和fcitx的启动设置方式有关,于是就做了以下的比较。

1.环境变量值:
export LANG="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=xim
export XMODIFIERS="@im=fcitx"
这个设置采用hades兄的设置值,这一部分在以下两种设置中都是一样的,只是放的文件不同。

2.设置在$home/.bashrc中
方法是将1放到$home/.bashrc中,然后ln -s $home/.kde/Autostart/fcitx fcitx,或者建立一个.desktop文件。区别:前者启动的时候不会在KDE状态栏显示,后者会有一个跳动的齿轮,直到启动成功为止。
这种方法的优点是:
a.不同用户和不同桌面环境可以有不同的XIM设置
b.如果机器安装了zhcon并设置了进入控制台自动启动zhcon,init 3切换模式fcitx会退出,不会冲突
这种方法的缺点是:
a.同优点的a点
b.注销桌面后fcitx不退出,再次登录CPU占用高

3.全局设置
在fedora 10中通过修改/etc/X11/xinit/xinputrc来实现加载fcitx我没有能成功的实现,但是考虑到profile.d文件夹可以设置全 局的环境变量,这样不论桌面环境启动多少次,fcitx可以始终只启动一次,于是在/etc/profile.d文件夹中建立以下脚本:
export LANG="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=xim
export XMODIFIERS="@im=fcitx"
teststr="`ps -e | grep fcitx |awk '{print $4}'|uniq`"
if [ "${teststr}" != "fcitx" ]; then
         fcitx
fi
存为fcitx.sh并加执行权限。其中的teststr和判断来源于www.lslnet.com/linux/dosc1/37/linux-274352.htm (因为自己写的几行语句比之差了不少,所以就用这个网页上的了)。加上判断的目的是防止桌面的虚拟终端启动时再次尝试启动fcitx从而报错。
优点:
a.所有桌面和用户均能使用fcitx
b.注销重登录不会导致CPU占用率不正常升高
c.卸载imsetting后也能启动fcitx
缺点:
a.同优点a
b.字符界面登录也会启动fcitx,只不过会报错,同时占用资源,对于做计算不利。
c.安装zhcon后从X切换到终端可能fcitx可能会报错或者和zhcon冲突(取决于zhcon的设置方式)

我的一点想法:对于fcitx在注销后不会被kill掉我觉得有些疑惑,不知道yuking大侠能否讲解一下原因,因为用类似的方法设置conky在注销后是会关闭的,但是fcitx却没有关闭。不知道这点能否得到修改?现在采用第二种设置方法也能避免CPU占用率不正常升高的问题,但是还是希望采用第一种方法设置,希望yuking大侠和开发小组能考虑一下。
发表于 2009-2-15 18:28:34 | 显示全部楼层
谢谢分享!收藏备用
回复 支持 反对

使用道具 举报

发表于 2009-2-16 12:03:56 | 显示全部楼层
FC10还这么麻烦吗?
三年前,mandriva就是在/etc/sysconfig/i18n下设定输入法的启动参数了。
回复 支持 反对

使用道具 举报

发表于 2009-2-16 20:12:19 | 显示全部楼层
Post by 神游九州;1948223
FC10还这么麻烦吗?
三年前,mandriva就是在/etc/sysconfig/i18n下设定输入法的启动参数了。



/etc/sysconfig/i18n 这里可以设置输入法的启动参数?

还真第一次听说的,真的。
回复 支持 反对

使用道具 举报

发表于 2009-2-17 17:23:04 | 显示全部楼层
嗯,谢谢楼主的仔细。我们正在检查这个问题,希望能尽快解决这个问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-17 22:35:05 | 显示全部楼层
谢谢yuking大侠的回复,
期待早日解决啊~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表