레드햇 7.1의 xinput 스크립트 입니다.
약간 수정하고, 주석을 달았지만, X를 처음실행시에
뜨는 오류 내용은 변함없습니다.. (또한, 사용시에도 크게
이상은 없습니다.)
아미 srpm 파일을 약간 수정해야 할 것으로 보입니다.
그냥 참고하십시요..
<pre>
#!/bin/sh
# Copyright (C) 1999-2001 Red Hat, Inc.
#
# XIM( X Input Method ) script
#
# Korean part,etc contributed by
# Won-kyu Park <wkpark at chem.skku.ac.kr>
#
# Last Modified by Jong-Hoon, Ryu <queenrjh at chollian.net>
#
#
# 사용할 로케일 값을 정의, 미리 정해진 값이 없으면,
# 기본값으로 "en_US" 를 지정
#
tmplang="en_US"
if test x$LC_ALL != x ; then
tmplang=$LC_ALL
elif test x$LC_CTYPE != x ; then
tmplang=$LC_CTYPE
elif test x$LANG != x ; then
tmplang=$LANG
fi
#
# check to see if the user has a preferred desktop
#
# 설치되어 있는 데스크탑 관리자를 확인하여 PREFERRED 변수를 정의함,
# 크게 'GNOME' 과 'KDE' 두가지로 구분
#
PREFERRED=
if [ -f /etc/sysconfig/desktop ]; then
if grep -q "GNOME" /etc/sysconfig/desktop 2>/dev/null; then
PREFERRED=gnome
elif grep -q "KDE" /etc/sysconfig/desktop 2>/dev/null; then
PREFERRED=kde
fi
fi
#
# PREFERRED 변수 값에 들어갈 데스크탑 관리자가 지정되지 않았을 경우,
# which 명령으로 다시 확인하여 지정함, 결국 확인되지 않을 경우에는
# null 값이 지정됨, "GNOME" 과 "KDE" 관리자 모두 설치되어 있다면,
# "GNOME" 관리자를 우선으로 함
#
if [ -z "$PREFERRED" ]; then
GSESSION=gnome-session
STARTKDE=startkde
if which $GSESSION >/dev/null 2>&1; then
PREFERRED=gnome
elif which $STARTKDE >/dev/null 2>&1; then
PREFERRED=kde
fi
fi
#
# check $XIM and set a default $XIM value.
#
# 로케일 값에 따른 입력기 프로그램 명을 $XIM 변수에 정의, 로케일 값이
# CJK(중,일,한) 이 아니거나, "en_US" 일 경우에는 null 값으로 지정
#
if [ -z "$XIM" ]; then
case $tmplang in
ko*)
if [ -e /usr/bin/ami ]; then
XIM="Ami"
elif [ -e /usr/bin/hanIM ]; then
XIM="hanIM"
fi
;;
ja*)
if [ -e /usr/X11R6/bin/kinput2 ]; then
XIM="kinput2"
fi
;;
zh_CN*)
if [ -e /usr/X11R6/bin/xcin ]; then
export LC_CTYPE=zh_CN.GB2312
XIM="xcin-zh_CN.GB2312"
fi
;;
zh_TW*)
if [ -e /usr/X11R6/bin/xcin ]; then
export LC_CTYPE=zh_TW.Big5
XIM="xcin"
fi
;;
*)
XIM=
;;
esac
fi
#
# set a proper XIM program with respect to $XIM
#
# 앞서 $XIM 변수에 정의된 값을 $PREFERRED 변수의 데스크탑 환경에 맞게
# $XIM_PROGRAM 변수와 $XIM_ARGS 변수에 입력기 프로그램 및 옵션 값을 정의
#
if [ -z "$XIM_PROGRAM" ]; then
case "$XIM" in
Ami)
case "$PREFERRED" in
gnome)
if which ami_applet >/dev/null 2>&1 ; then
XIM_PROGRAM=ami_applet
XIM_ARGS="--activate-goad-server=ami_applet"
elif which ami >/dev/null 2>&1 ; then
XIM_PROGRAM=ami
fi
#
# 만일, ami가 GNOME 패널에 이미 등록되어 있을 경우, ami를 다시 실행시키지 않음
#
if grep -q "=ami_applet"
$HOME/.gnome/panel.d/default/Applet_Config 2>/dev/null ; then
XIM_PROGRAM=/bin/true
XIM_ARGS=
fi
;;
kde)
if which wmami >/dev/null 2>&1 ; then
XIM_PROGRAM=wmami
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
;;
hanIM)
if which hanIM >/dev/null 2>&1 ; then
XIM_PROGRAM=hanIM
fi
;;
xcin*)
XIM_PROGRAM=xcin
;;
kinput2)
XIM_PROGRAM=kinput2
if [ X"`ldd /usr/X11R6/bin/kinput2 | grep libcanna`" = X ]; then
XIM_ARGS="-wnnenvrc /etc/FreeWnn/ja/wnnenvrc"
else
XIM_ARGS="-canna"
fi
;;
*)
XIM_PROGRAM=
;;
esac
fi
#
# set a XMODIFIERS and execute XIM_PROGRAM
#
# $XMODIFIERS 변수 값을 지정한 후, 입력기 프로그램을 실행
#
if [ -z "$XMODIFIERS" -a -n "$XIM_PROGRAM" ]; then
export XMODIFIERS="@im=$XIM"
$XIM_PROGRAM $XIM_ARGS &
fi
# echo for testing
#echo $PREFERRED
#echo $XMODIFIERS
#echo $XIM
#echo $XIM_PROGRAM $XIM_ARGS
</pre>