分页: 1 / 2
系统中僵死fcitx的解决办法
发表于 : 2007-10-27 14:24
由 kemean
下列办法可以消除僵死的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,僵死的消失了。
仅供对系统有洁癖的朋友使用:)
发表于 : 2007-10-27 14:39
由 wangsen
收藏 ^_^ 我喜欢
发表于 : 2007-10-27 15:10
由 windwiny
果然是有洁癖。。。。建议发给源头。。
发表于 : 2007-10-27 17:26
由 kemean
如果不装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的启动
发表于 : 2007-10-28 3:19
由 yaodao23
fcitx可不可以不显示版本号还有打字速度的?还有界面可不可以在哪里改一下的。感觉不是很好看。
发表于 : 2007-10-28 13:41
由 aBiNg
yaodao23 写了:fcitx可不可以不显示版本号还有打字速度的?还有界面可不可以在哪里改一下的。感觉不是很好看。
代码: 全选
gedit --encoding=GBK ~/.fcitx/config
这个界面如何?
发表于 : 2007-10-28 15:45
由 kemean
版本,和速度,在~/.fcitx/config中可以禁止显示,不过禁止了不太好看
[界面]
候选词个数=5
...
显示打字速度=1
显示版本=1
这个界面如何?
发表于 : 2007-10-29 11:46
由 yaodao23
aBiNg 写了:yaodao23 写了:fcitx可不可以不显示版本号还有打字速度的?还有界面可不可以在哪里改一下的。感觉不是很好看。
代码: 全选
gedit --encoding=GBK ~/.fcitx/config
谢谢,搞定,我原来修改的是安装目录的那个Config,没起作用.
Re: 这个界面如何?
发表于 : 2007-10-29 11:47
由 yaodao23
kemean 写了:版本,和速度,在~/.fcitx/config中可以禁止显示,不过禁止了不太好看
[界面]
候选词个数=5
...
显示打字速度=1
显示版本=1
这个界面如何?
很好,谢谢了.哈哈
发表于 : 2007-10-30 22:51
由 kgdjianhua
好东西。。试试看。。
发表于 : 2008-02-25 20:58
由 mtfxdd
aBiNg 写了:yaodao23 写了:fcitx可不可以不显示版本号还有打字速度的?还有界面可不可以在哪里改一下的。感觉不是很好看。
代码: 全选
gedit --encoding=GBK ~/.fcitx/config
非常感谢,今天都找了大半天了..
Re: 这个界面如何?
发表于 : 2008-07-02 8:39
由 qianjigui
yaodao23 写了:kemean 写了:版本,和速度,在~/.fcitx/config中可以禁止显示,不过禁止了不太好看
[界面]
候选词个数=5
...
显示打字速度=1
显示版本=1
这个界面如何?
很好,谢谢了.哈哈
确实是这样,我感觉只要把那个输入框的候选词拢少一点就好了.
发表于 : 2008-07-02 23:57
由 qianjigui
大家注意了,我按照楼主修改相关文件后发现了一个小问题,提示那个脚本语法错误.
问题出在第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
这样就可以了.
同样谢谢楼主.
不能说有洁癖吧,只是很多时候突然无法激活很烦人,而且最近这种僵死情况非常严重.建议大家修改一下.
发表于 : 2008-09-12 17:23
由 budaodao
kemean
老兄按你的脚本用ROOT权限执行了一次直接启动不起来了晕大了现在
我现在在widnows下。。。
Re: 系统中僵死fcitx的解决办法
发表于 : 2009-02-23 23:03
由 qianjigui
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
这是我的最终版本。
建议各位先跑一下,看看能否运行,毕竟不是个通用的法则。