LinuxSir.cn,穿越时空的Linuxsir!

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

自动运行fcitx的问题

[复制链接]
发表于 2007-3-1 11:45:21 | 显示全部楼层 |阅读模式
按照下面帖子中的说明配置了/etc/profile:
http://slack.linuxsir.cn/main/?q=node/211
加入了:
export GTK_IM_MODULE=xim
export XMODIFIERS="@im=fcitx"
fcitx &

虽然,fcitx在重启后自动运行了,但是,每开启一次Terminal,都会提示信息:
localhost:~$ Start FCITX error. Another XIM daemon named fcitx is running?

这其中,我没有修改~/.bash_profile ,~/.bashrc,~/.profile等文件。
后来,我发现,原来每启动一次Terminal都要重新读取、运行一次/etc/profile,即启动一次fcitx,因此才有了上面的提示信息。
(系统状况:slackware11 + dropline gnome)

想问问大家,有没有即能自动运行,又不让fcitx伴随每次启动Terminal而开启的解决办法吗??
发表于 2007-3-1 12:25:40 | 显示全部楼层
只要在用户目录写入下面内容到 ~/.profile 文件即可。
  1. export XMODIFIERS="@im=fcitx"
  2. export XIM=fcitx
  3. export XIM_PROGRAM=fcitx
  4. fcitx&
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-3-1 12:37:29 | 显示全部楼层
vi ~/.kde/Autostart/kde-start :

#!/bin/bash
fcitx &


ls -l ~/.kde/Autostart/kde-start :
-rwxr--r-- 1 h2j root 20 2007-02-26 10:30 /home/h2j/.kde/Autostart/kde-start*
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-1 14:29:46 | 显示全部楼层
感谢楼上两位的回复!
[size=+1]二楼holz的办法可行。可见每次开启Terminal的时候没有读取、运行~/.profile,这好像与man bash的说法有些冲突:
当 bash 被调用为一个交互的登录 shell,或者使用 --login 选项作为一个非
交互的 shell 时,它首先从 /etc/profile 读取可执行的命令,如果文件存在
的话。读取之后,再按顺序寻找 ~/.bash_profile,~/.bash_login,和
~/.profile
,顺序读取并执行这些文件如果它存在并且可读...

不知哪位兄弟能解释一下~

另外,我没有装KDE,所以不能.....
回复 支持 反对

使用道具 举报

发表于 2007-3-1 16:31:02 | 显示全部楼层
Post by holz
只要在用户目录写入下面内容到 ~/.profile 文件即可。

  1. export XMODIFIERS="@im=fcitx"
  2. export XIM=fcitx
  3. export XIM_PROGRAM=fcitx

  4. fcitx&
复制代码


这样的缺点就是每次开启一个终端,都会被加载一次.
回复 支持 反对

使用道具 举报

发表于 2007-3-1 22:01:11 | 显示全部楼层
Post by mzli
这样的缺点就是每次开启一个终端,都会被加载一次.


怎么会?我原来用其他方法启动就是遇到每启动一个终端就提示fcitx已经启动云云,后来才发现放/.profile 文件的。

我用xfce4桌面,用了也满长时间了。
回复 支持 反对

使用道具 举报

发表于 2007-3-1 22:36:05 | 显示全部楼层
每次运行startx时,会先检查~/.xinitrc脚本,并运行,将fcitx命令加脚本加到文件末尾就可以了




BTW:可以自己读一读startx脚本,看它运行了哪些程序,系统带X启动时,又运行了哪些程序,看一看对自己大有好处

学习slack多读脚本,肯定收获不少,更能深刻了解linux
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-2 10:11:25 | 显示全部楼层
Post by liweioop
每次运行startx时,会先检查~/.xinitrc脚本,并运行,将fcitx命令加脚本加到文件末尾就可以了


首先我还没有仔细看过startx。
可是,实验发现 slackware11在 带X启动时,好像没有检查~/.xinitrc,因为按照你的说法,fcitx没有自动运行。
回复 支持 反对

使用道具 举报

发表于 2007-3-2 15:26:17 | 显示全部楼层
每次运行startx时,会先检查~/.xinitrc脚本,并运行,将fcitx命令加脚本加到文件末尾就可以了

如果startx检查不到~/.xinitrc,则会使用系统的/etc/X11/xinit/xinitrc,把你的命令加到这个文件的最后就可以了

好久不用slack了,有些具体的情况不太清楚了。当然还有其他的办法
回复 支持 反对

使用道具 举报

发表于 2007-3-2 17:02:40 | 显示全部楼层
在/usr/local/bin下建立一个脚本initrc(把上面的代码放到里面),
然后在/etc/X11/xinit/xinitrc.d/建立一个指向该脚本的链接100inputrc:
ln -s /usr/local/bin/initrc /etc/X11/xinit/xinitrc.d/100inputrc
回复 支持 反对

使用道具 举报

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

本版积分规则

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