LinuxSir.cn,穿越时空的Linuxsir!

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

我的fcitx为什么在gnome下可以直接切换出来,但在kde下就不行!为何??

[复制链接]
发表于 2004-5-5 22:47:42 | 显示全部楼层 |阅读模式
GDM+gnome/kde+fcitx2.01

已经修改了.gnomerc和 .xinitrc(.xsession)
都加入以下内容:
LANGUAGE=zh_CN.GBK  
LANG=zh_CN.GBK  
LC_ALL=zh_CN.GBK  
export XMODIFIERS=@im=fcitx  
fcitx&


在gnome下可以直接切换出fcitx,但是在kde下就必须运行fcitx,怎么没自动加载呢??
发表于 2004-5-5 23:45:48 | 显示全部楼层
其实可以参考一下瓜兄的方法,这个方法个人觉得更通用。
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=105660
 楼主| 发表于 2004-5-6 10:03:46 | 显示全部楼层
/etc/profile.d/input.sh

没有这个目录,新建一个???
发表于 2004-5-6 10:51:10 | 显示全部楼层
最初由 mmdx 发表
/etc/profile.d/input.sh

没有这个目录,新建一个???

这大可不必。因为瓜兄说的是rh,其实用户登录时,bash首先由/etc/profile初始化,这是系统级的配置文件。
注意到rh的profile中有一段代码:

  1. for i in /etc/profile.d/*.sh ; do
  2.     if [ -r "$i" ]; then
  3.         . $i
  4.     fi
  5. done
复制代码

可见,/etc/profile.d是由/etc/profile调用的。

Debian没有这个目录,我们大可以在/etc/profile里添加关于输入法设置的代码。
修正如下(红色为添加代码):

  1. ...
  2. umask 022

  3. [color=red]# Set fcitx the default INPUT tool
  4. INPUT=fcitx
  5. export XMODIFIERS=@im=$INPUT
  6. export XIM=$INPUT
  7. export XIM_PROGRAM=$INPUT
  8. if ! [ -f $HOME/.kde/Autostart/$INPUT ] ; then
  9.         ln -sf /usr/bin/$INPUT $HOME/.kde/Autostart/
  10. fi
  11. if ! [ -f $HOME/.gnome2/session-manual ] && ! grep -i "RestartCommand=$INPUT" $HOME/.gnome2/session-manual >/dev/null 2>&1  ; then
  12.         mv -f $HOME/.gnome2/session-manual $HOME/.gnome2/session-manual.old
  13.         cat > $HOME/.gnome2/session-manual << EOF
  14. [Default]
  15. num_clients=1
  16. 0,RestartStyleHint=3
  17. 0,Priority=50
  18. 0,RestartCommand=$INPUT
  19. EOF
  20. fi[/color]
复制代码
发表于 2004-5-6 17:35:43 | 显示全部楼层
鉴于Debian关于bash初始化的特殊性(如kdm不执行/etc/profile),还有瓜兄的脚本存在的bug,我给出修正版本如下。
把代码放在你的/etc/environment文件里,这是Debian的特色哦。

  1. # Set fcitx the default INPUT tool
  2. INPUT=fcitx
  3. export XMODIFIERS=@im=$INPUT
  4. export XIM=$INPUT
  5. export XIM_PROGRAM=$INPUT
  6. if ! [ -e $HOME/.confirm ] ; then
  7.         ln -sf /usr/bin/$INPUT $HOME/.kde/Autostart/
  8.         [ -e $HOME/.gnome2/session-manual -a -f $HOME/.gnome2/session-manual ] && mv -f $HOME/.gnome2/session-manual $HOME/.gnome2/session-manual.old
  9.         cat > $HOME/.gnome2/session-manual << EOF
  10. [Default]
  11. num_clients=1
  12. 0,RestartStyleHint=3
  13. 0,Priority=50
  14. 0,RestartCommand=$INPUT
  15. EOF
  16.         touch $HOME/.confirm
  17. fi
复制代码
 楼主| 发表于 2004-5-7 12:18:37 | 显示全部楼层
谢啦,但是我试了,好象不行阿
gnome和kde下都自动切换不出来了
发表于 2004-5-7 12:23:05 | 显示全部楼层
最初由 mmdx 发表
谢啦,但是我试了,好象不行阿
gnome和kde下都自动切换不出来了

嗯?我这边可以啊。
你把上面的脚本放在/etc/environment了吗?这个文件要自己创建哦。
要重新进入两次X才行。
 楼主| 发表于 2004-5-7 12:54:40 | 显示全部楼层
两次???
干吗要两次?
我进了一次不行就干掉了哦
我再试试啊
发表于 2004-5-7 13:37:48 | 显示全部楼层
晕,这段代码的意思是创建X随机启动条目(也只创建一次)的意思,第一次启动X创建条目,第二次启动则按条目执行fcitx,当然就需要两次啦。
建议到shell版区温习,呵呵~~~~~
发表于 2004-5-7 18:20:58 | 显示全部楼层
我再重申一遍,重启两次X即可见到效果。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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