|
发表于 2004-12-25 13:53:38
|
显示全部楼层
#!/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
1,8 Top
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/scim ]; then
XIM="SCIM"
elif [ -e /usr/X11R6/bin/xcin ]; then
export LC_CTYPE=zh_CN.GB2312
XIM="xcin-zh_CN.GB2312"
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
;;
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
;;
SCIM)
XIM_PROGRAM=scim
XIM_ARGS="-d"
;;
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"
;;
*)
XIM_PROGRAM=/bin/true
;;
esac
fi
# set default gtk IM module
if [ -z "$GTK_IM_MODULE" ]; then
case "$XIM" in
htt)
GTK_IM_MODULE=iiim
;;
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 &
输入法可以调出来,就是没有选字诓,有托盘时候才有
这配置文件这么复杂,能看吗 |
|