|
英文local下输入中文之scim
我在FC1下一直用scim,它的确是一个非常好用的输入法。转到FC2后,以前的安装方法已经不起作用了,经过多次摸索,终于在FC2下安装成功。
首先,安装中文字体(不用多说了吧,已经有很多文章讨论过了。)
然后到以下网址下载scim: http://www.freedesktop.org/~suzhe/download.html
只需两个文件:scim-0.9.7-1.i586.rpm和scim-chinese-0.3.0-1.i586.rpm
如果你想用五笔、仓颉等输入法可以下载scim-tables-zh-0.3.5-1.i586.rpm装上。
接下来主要需要修改一个文件/etc/X11/xinit/xinit/xinitrc.d/xinput
修改后文件内容如下:
#!/bin/bash
# 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.
#
# XIM( X Input Method ) script
#
# Original Korean support contributed by:
# Won-kyu Park <[email protected]>
#
oldterm=$TERM
unset TERM
# Load up the user and system locale settings
if [ -r /etc/profile.d/lang.sh ]; then
. /etc/profile.d/lang.sh
fi
export TERM=$oldterm
tmplang="en_US"
#if test x$GDM_LANG != x ; then
# tmplang=$GDM_LANG
if [ -n "$LC_ALL" ]; then
tmplang=$LC_ALL
elif [ -n "$LC_CTYPE" ]; then
tmplang=$LC_CTYPE
elif [ -n "$LANG" ]; then
tmplang=$LANG
elif [ -r /etc/sysconfig/i18n ]; then
. /etc/sysconfig/i18n
tmplang=$LANG
fi
#
# check to see if the user has a preferred desktop
#
PREFERRED=
# runlevel 5 - checks which session manager it will load
# runlevel 3 - checks which desktop manager it will load
if [ -f /etc/sysconfig/desktop ]; then
# WARNING: This grep regex can be combined when someone has copious spare time.
if grep -q "GNOME" /etc/sysconfig/desktop 2>/dev/null || grep -q "\"\"" /etc/sysconfig/desktop 2>/dev/null; then
# runlevel 5 with gdm - checks for $GDMSESSION and set the $PREFERRED
if [ "$GDMSESSION" = "Default" ]; then
PREFERRED=gnome
elif [ "$GDMSESSION" = "GNOME" ]; then
PREFERRED=gnome
elif [ "$GDMSESSION" = "KDE" ]; then
PREFERRED=kde
else
# applies if no env and runlevel 3
PREFERRED=gnome
fi
elif grep -q "KDE" /etc/sysconfig/desktop 2>/dev/null; then
if [ -z $1 -o "$1" = "default" ]; then
# applies if no arg passed by kdm and runlevel 3
PREFERRED=kde
else
# otherwise assign $PREFERRED from arg
PREFERRED=$1
fi
fi
fi
if [ -z "$PREFERRED" ]; then
GSESSION=gnome-session
STARTKDE=startkde
# by default, we run GNOME.
if which "$GSESSION" > /dev/null 2>&1; then
PREFERRED=gnome
fi
# if GNOME isn't installed, try KDE.
if which "$STARTKDE" > /dev/null 2>&1; then
PREFERRED=kde
fi
fi
#
# check $XIM and set a default $XIM value.
#
# default to iiim if htt server is running
if [ -z "$XIM" ]; then
case $tmplang in ( ar* | be* | ja* | ko* | th* | zh* | *_IN* )
if /sbin/service IIim status 2>/dev/null | /bin/grep -q pid ; then
XIM=htt
fi
;;
esac
fi
# otherwise revert to legacy XIM client
if [ -z "$XIM" ]; then
case $tmplang in
ja*)
# WARNING: This binary should be in /usr/bin, not in /usr/X11R6/bin, because
# /usr/X11R6/bin is strictly for software supplied as an official part of
# X11R6, not for random applications to drop files in.
if [ -x /usr/X11R6/bin/xwnmo ]; then
XIM="_XWNMO"
elif [ -x /usr/bin/uim-xim ]; then
XIM="uim"
# WARNING: This binary should be in /usr/bin, not in /usr/X11R6/bin, because
# /usr/X11R6/bin is strictly for software supplied as an official part of
# X11R6, not for random applications to drop files in.
elif [ -x /usr/X11R6/bin/kinput2 ]; then
XIM="kinput2"
# WARNING: This binary should be in /usr/bin, not in /usr/X11R6/bin, because
# /usr/X11R6/bin is strictly for software supplied as an official part of
# X11R6, not for random applications to drop files in.
elif [ -x /usr/X11R6/bin/skkinput ]; then
XIM="skkinput"
fi
;;
ko*)
if [ -x /usr/bin/nabi ]; then
XIM="nabi"
elif [ -x /usr/bin/ami ]; then
XIM="Ami"
elif [ -x /usr/bin/hanIM ]; then
XIM="hanIM"
fi
;;
zh_CN*)
if [ -x /usr/bin/chinput ]; then
XIM="Chinput"
fi
;;
zh_TW*)
# WARNING: This binary should be in /usr/bin, not in /usr/X11R6/bin, because
# /usr/X11R6/bin is strictly for software supplied as an official part of
# X11R6, not for random applications to drop files in.
if [ -x /usr/X11R6/bin/xcin ]; then
XIM="xcin"
fi
;;
en_US*)
if [ -x /usr/bin/scim ]; then
XIM="SCIM"
fi
;;
esac
fi
#
# set a proper XIM program with respect to $XIM
#
if [ -z "$XIM_PROGRAM" ]; then
case "$XIM" in
Ami)
case "$PREFERRED" in
kde)
if which wmami >/dev/null 2>&1 ; then
XIM_PROGRAM=wmami
XIM_ARGS="-wait"
elif which ami >/dev/null 2>&1 ; then
XIM_PROGRAM=ami
fi
;;
*)
if which ami >/dev/null 2>&1 ; then
XIM_PROGRAM=ami
fi
;;
esac
;;
Chinput)
XIM_PROGRAM=chinput
;;
hanIM)
if which hanIM >/dev/null 2>&1 ; then
XIM_PROGRAM=hanIM
fi
;;
htt)
XIM_PROGRAM=httx
;;
kinput2)
XIM_PROGRAM=kinput2
if [ -z "$XIM_ARGS" ]; then
if /usr/bin/cannaping 2>/dev/null ; then
XIM_ARGS="-canna +kinput -xim"
elif /sbin/service FreeWnn status 2>/dev/null | /bin/grep -q pid
then
XIM_ARGS="-wnn +kinput -xim"
else
XIM_ARGS="+kinput -xim"
fi
fi
;;
nabi)
XIM_PROGRAM=nabi
;;
skkinput)
XIM_PROGRAM=skkinput
;;
uim)
XIM_PROGRAM=uim-xim
;;
_XWNMO)
XIM_PROGRAM=xwnmo
;;
xcin)
XIM_PROGRAM=xcin
XIM_ARGS="-x xcin"
;;
SCIM)
XIM_PROGRAM=scim
XIM_ARGS="-d"
;;
esac
fi
# set default gtk IM module
if [ -z "$GTK_IM_MODULE" ]; then
case "$XIM" in
htt)
GTK_IM_MODULE=iiim
;;
SCIM)
GTK_IM_MODULE=xim
;;
esac
fi
[ -n "$GTK_IM_MODULE" ] && export GTK_IM_MODULE
# setup XMODIFIERS
[ -z "$XMODIFIERS" -a -n "$XIM" ] && export XMODIFIERS="@im=$XIM"
# execute XIM_PROGRAM
which "$XIM_PROGRAM" > /dev/null 2>&1 && LANG="$tmplang" "$XIM_PROGRAM" $XIM_ARGS &
还有一个文件/etc/gtk-2.0/gtk.immodules,这个文件中的很多输入法模块都没用(你在输入文字的地方点右键,会看到Input methods),除了xim模块外全部注释掉(我把它们全删了,省事、方便)。
# GTK+ Input Method Modules file
# Automatically generated file, do not edit
#
# ModulesPath = /root/.gtk-2.0/2.4.0/i386-redhat-linux-gnu/immodules:/root/.gtk-2.0/2.4.0/immodules:/root/.gtk-2.0/i386-redhat-linux-gnu/immodules:/root/.gtk-2.0/immodules:/usr/lib/gtk-2.0/2.4.0/i386-redhat-linux-gnu/immodules:/usr/lib/gtk-2.0/2.4.0/immodules:/usr/lib/gtk-2.0/i386-redhat-linux-gnu/immodules:/usr/lib/gtk-2.0/immodules
#
"/usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so"
"xim" "X Input Method" "gtk20" "/usr/share/locale" "ko:ja:zh"
好了,全部完成,注消一下,scim就可以用了。
不知为甚么,我注消第一次后输入法不能用,注消第二次后才可以。如果你有类似问题,可以试试。 |
|