woodrock 发表于 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 &
                                                                                                                           
输入法可以调出来,就是没有选字诓,有托盘时候才有
这配置文件这么复杂,能看吗

sutie 发表于 2004-12-25 14:07:15

帮你改了

#!/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/scim ]; then
                XIM="SCIM"
          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
        ;;
      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 &

sutie 发表于 2004-12-25 14:08:25

我去掉了一行

elif [ -e /usr/X11R6/bin/xcin ]; then
export LC_CTYPE=zh_CN.GB2312
XIM="xcin-zh_CN.GB2312"

sutie 发表于 2004-12-25 14:08:53

你试一下!!

sutie 发表于 2004-12-25 14:10:47

当年我来公社的时候,也有朋友给我改过代码!! :wink::wink:

大家互相帮助嘛~~ :mrgreen::mrgreen:

woodrock 发表于 2004-12-25 16:57:21

我太感激你了,老乡
可是重启X什么也没变,还是老样子
你改的地方好象是先判断一下,然后改变一些环境变量
能解释一下吗?
我也想学学

我现在打字全靠关联和记忆,普通应用没问题,
环境逼人进步啊,速度也不慢

桔子学姐 发表于 2004-12-25 18:17:31

sutie哥哥,在办公一版好像是专门讲这一类问题的置顶,你看过吗?

sutie 发表于 2004-12-25 21:29:49

sutie哥哥,在办公一版好像是专门讲这一类问题的置顶,你看过吗?

哦,我没看到!! 8O8O

sutie 发表于 2004-12-25 21:33:07

我太感激你了,老乡
可是重启X什么也没变,还是老样子
你改的地方好象是先判断一下,然后改变一些环境变量
能解释一下吗?
我也想学学

我现在打字全靠关联和记忆,普通应用没问题,
环境逼人进步啊,速度也不慢

我主要是参照我的帮你改的,

学语言的时候这个地方本来就不过关!!

再加上本来的专业也不是这个,所以 :?:?:?:?

你等一等,我去办公区帮你看看!!

sutie 发表于 2004-12-25 21:48:19

我看了一下,没有什么太大的收获!!

这样,你先把scim卸掉,rpm -e scim

重启一次,再装上!!

woodrock 发表于 2004-12-26 13:41:01

好吧,我试一试

woodrock 发表于 2004-12-26 15:57:51

搞了半天也没搞好,
等学好知识,将来彻底解决它吧

长春冷吗,就要回家了,得准备几件过冬的衣服了

sutie 发表于 2004-12-26 15:59:19

我现在也不在长春,不过前几天听说下了很大的雪!!

sutie 发表于 2004-12-26 16:05:22

我想这个输入法出问题可能是多方面的!

比如:如果你使用了某些汉化的方法就会导致不同的结果!

我的汉化是直接导入了一个修改过得sumsun字库,重启之后就OK了!

这样的话对系统改动比较少,我也不是说打汉化包不好!!

但是,一般打了包之后问题会很多,主要是一些其他的相关方面!

解决起来几乎问题是无穷无尽的!!

从纯应用来讲这是给自己找麻烦!! :-):-)

woodrock 发表于 2004-12-26 16:47:31

可我还没打汉化包,就这样了
埃,能打汉字就不错了
页: 1 [2] 3
查看完整版本: fc2不能输入中文,郁闷中啊