系统中僵死fcitx的解决办法

系统字体配置、中文显示和输入法问题
kemean
帖子: 110
注册时间: 2007-03-06 22:58

系统中僵死fcitx的解决办法

#1

帖子 kemean » 2007-10-27 14:24

下列办法可以消除僵死的fcitx,前提是fcitx已被设置为默认输入法,即要有以下步骤
$ im-switch -s fcitx

下面,再屏蔽掉im-switch启动的输入法:

代码: 全选

#!/bin/sh

IM_SWITCH=/etc/X11/Xsession.d/80im-switch
cp $IM_SWITCH ${IM_SWITCH}.bak
awk "/eval/{system(\"sed -i '\" NR \" s/^/#/' $IM_SWITCH\");}" ${IM_SWITCH}.bak
rm ${IM_SWITCH}.bak 
以root权限运行这段脚本之后,在系统--》首选项--》会话中,点添加,加入fcitx,
即,使fcitx跟gnome一起启动,而不是跟X一起启动。

完成后,重启,
$ ps ax | grep fcitx
5358 ? S 0:02 fcitx
5491 pts/0 R+ 0:00 grep fcitx


此时,已经没有两个fcitx,僵死的消失了。

仅供对系统有洁癖的朋友使用:)
上次由 kemean 在 2007-11-28 21:19,总共编辑 3 次。
wangsen
帖子: 346
注册时间: 2006-11-04 22:16

#2

帖子 wangsen » 2007-10-27 14:39

收藏 ^_^ 我喜欢
头像
windwiny
帖子: 2254
注册时间: 2007-03-13 17:26

#3

帖子 windwiny » 2007-10-27 15:10

果然是有洁癖。。。。建议发给源头。。
kemean
帖子: 110
注册时间: 2007-03-06 22:58

#4

帖子 kemean » 2007-10-27 17:26

如果不装im-switch的话,估计会更有效
做法:
1) $ sudo apt-get remove --purge im-switch
2) 在/etc/profile中加入:
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx

3) 在gnome会话中加入fcitx的启动
yaodao23
帖子: 49
注册时间: 2007-10-16 12:01

#5

帖子 yaodao23 » 2007-10-28 3:19

fcitx可不可以不显示版本号还有打字速度的?还有界面可不可以在哪里改一下的。感觉不是很好看。
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

#6

帖子 aBiNg » 2007-10-28 13:41

yaodao23 写了:fcitx可不可以不显示版本号还有打字速度的?还有界面可不可以在哪里改一下的。感觉不是很好看。

代码: 全选

gedit --encoding=GBK ~/.fcitx/config
kemean
帖子: 110
注册时间: 2007-03-06 22:58

这个界面如何?

#7

帖子 kemean » 2007-10-28 15:45

版本,和速度,在~/.fcitx/config中可以禁止显示,不过禁止了不太好看

[界面]
候选词个数=5
...
显示打字速度=1
显示版本=1

这个界面如何?
附件
fcitx.tar.gz
配置文件
(1.42 KiB) 已下载 199 次
fcitx.png
fcitx.png (1.77 KiB) 查看 8347 次
yaodao23
帖子: 49
注册时间: 2007-10-16 12:01

#8

帖子 yaodao23 » 2007-10-29 11:46

aBiNg 写了:
yaodao23 写了:fcitx可不可以不显示版本号还有打字速度的?还有界面可不可以在哪里改一下的。感觉不是很好看。

代码: 全选

gedit --encoding=GBK ~/.fcitx/config
谢谢,搞定,我原来修改的是安装目录的那个Config,没起作用.
yaodao23
帖子: 49
注册时间: 2007-10-16 12:01

Re: 这个界面如何?

#9

帖子 yaodao23 » 2007-10-29 11:47

kemean 写了:版本,和速度,在~/.fcitx/config中可以禁止显示,不过禁止了不太好看

[界面]
候选词个数=5
...
显示打字速度=1
显示版本=1

这个界面如何?
很好,谢谢了.哈哈
kgdjianhua
帖子: 90
注册时间: 2006-11-24 21:20

#10

帖子 kgdjianhua » 2007-10-30 22:51

好东西。。试试看。。
mtfxdd
帖子: 44
注册时间: 2007-12-16 1:54

#11

帖子 mtfxdd » 2008-02-25 20:58

aBiNg 写了:
yaodao23 写了:fcitx可不可以不显示版本号还有打字速度的?还有界面可不可以在哪里改一下的。感觉不是很好看。

代码: 全选

gedit --encoding=GBK ~/.fcitx/config
非常感谢,今天都找了大半天了..
头像
qianjigui
帖子: 221
注册时间: 2007-06-26 23:50
来自: WHU
联系:

Re: 这个界面如何?

#12

帖子 qianjigui » 2008-07-02 8:39

yaodao23 写了:
kemean 写了:版本,和速度,在~/.fcitx/config中可以禁止显示,不过禁止了不太好看

[界面]
候选词个数=5
...
显示打字速度=1
显示版本=1

这个界面如何?
很好,谢谢了.哈哈
确实是这样,我感觉只要把那个输入框的候选词拢少一点就好了.
头像
qianjigui
帖子: 221
注册时间: 2007-06-26 23:50
来自: WHU
联系:

#13

帖子 qianjigui » 2008-07-02 23:57

大家注意了,我按照楼主修改相关文件后发现了一个小问题,提示那个脚本语法错误.
问题出在第67行:

代码: 全选

# 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
估计是因为if else fi之间没有语句,所以提示了错误.
我的解决方案是完全注释掉:

代码: 全选

# 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
这样就可以了.
同样谢谢楼主.
不能说有洁癖吧,只是很多时候突然无法激活很烦人,而且最近这种僵死情况非常严重.建议大家修改一下.
budaodao
帖子: 49
注册时间: 2005-05-17 18:43
联系:

#14

帖子 budaodao » 2008-09-12 17:23

kemean
老兄按你的脚本用ROOT权限执行了一次直接启动不起来了晕大了现在

我现在在widnows下。。。
头像
qianjigui
帖子: 221
注册时间: 2007-06-26 23:50
来自: WHU
联系:

Re: 系统中僵死fcitx的解决办法

#15

帖子 qianjigui » 2009-02-23 23:03

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

这是我的最终版本。
建议各位先跑一下,看看能否运行,毕竟不是个通用的法则。
回复