source: projects/vutils/tags/vutils-2.2.5/imelib @ 1120

Revision 1120, 20.2 KB checked in by daisuke, 14 years ago (diff)

import vutils-2.2.4 from internal cvs repository

Line 
1#!/bin/bash
2# setime                  by Jun Nishii <jun@vinelinux.org>
3#                    Time-stamp: <2008-03-08 18:44:29 munepi>
4#
5#     atok entry is by Takeshi Isobe <isobe@ps.namco.co.jp>
6
7. /usr/share/vine/functions
8
9##########  Messages #############################
10
11ShowUsage_C() {
12cat <<EOF
13  Usage:  setime {scim|wnn8le|wnn8scim|wnn7xwnmo|wnn6xwnmo|atokx|atokx2|atokx3|vje|uim|ibus|none|status}
14
15     scim:      set SCIM as default input method and start scim
16                 (scim-bridge-{gtk,qt} and scim is automarically selected)
17     wnn8le:    set Wnn8 as default input method and start wnn8le
18     wnn8scim:  set Wnn8 as default input method and start scim
19     wnn7xwnmo: set Wnn7 as default input method and start xwnmo
20     wnn6xwnmo: set Wnn6 as default input method and start xwnmo
21     atokx:     set Atok X as default input method
22     atokx2:    set "ATOK for Linux" as default input method
23     atokx3:    set "ATOK X3 for Linux" as default input method
24     vje:       set VJE-Delta as default input method and start vje
25     skk:       set SKK as default input method and start skkinput
26     uim:       set UIM as default input method and start uim-xim
27     ibus:      set IBus as default input method and start ibus-daemon
28     default:   start default scim
29     none:      do not use input method
30     status:    get information about current environment for Kanji input methods
31
32EOF
33}
34
35ShowUsage_ja() {
36cat <<EOF
37  使用法:  setime [-k]{scim|wnn8le|wnn8scim|wnn7xwnmo|wnn6xwnmo|atokx|atokx2|atokx3|vje|uim|ibus|none|status}
38
39     scim:      SCIM をデフォルトの漢字変換システムとし、scim を起動します
40                 (scim-bridge-{gtk,qt} と scim は自動選択されます)
41     wnn8le:    Wnn8 をデフォルトの漢字変換システムとし、wnn8le を起動します
42     wnn8scim:  Wnn8 をデフォルトの漢字変換システムとし、scim を起動します
43     wnn7xwnmo: Wnn7 をデフォルトの漢字変換システムとし、xwnmo を起動します
44     wnn6xwnmo: Wnn6 をデフォルトの漢字変換システムとし、xwnmo を起動します
45     atokx:     Atok X をデフォルトの漢字変換システムとします
46     atokx2:    "ATOK for Linux" をデフォルトの漢字変換システムとします
47     atokx3:    "ATOK X3 for Linux" をデフォルトの漢字変換システムとします
48     vje:       VJE-Deltaをデフォルトの漢字変換システムとし、vje を起動します
49     skk:       SKKをデフォルトの漢字変換システムとし、skkinput を起動します
50     uim:       UIM をデフォルトの漢字変換システムとし、uim-xim を起動します
51     ibus:      IBus をデフォルトの漢字変換システムとし、ibus-daemon を起動します
52     default:   デフォルトの漢字変換システムを用いて、scim を起動します
53     none:      漢字変換システムは用いない
54     status:    現在のシステムにおける、漢字入力方法に関する情報を表示します
55
56     オプション
57            -k: kinput2 の再起動をしない
58EOF
59}
60
61IMEMsg_ja(){
62cat <<EOF
63環境変数は ~/.vine/system/ime もしくは /etc/sysconfig/ime で設定されています.
64EOF
65}
66
67IMEMsg_C(){
68cat <<EOF
69The Environment Variables are set in ~/.vine/system/ime or /etc/sysconfig/ime.
70EOF
71}
72
73CurIMEMsg_ja(){
74echo "[現在の漢字入力システム]"
75}
76
77CurIMEMsg_C(){
78echo "[Current IME]"
79}
80
81PackageStatMsg_ja(){
82echo "[パッケージのインストール状況]"
83}
84
85PackageStatMsg_C(){
86echo "[Package status]"
87}
88
89EnvVarMsg_ja(){
90echo "[環境変数]"
91}
92
93EnvVarMsg_C(){
94echo "[Environment Variables]"
95}
96
97SettingIMMsg_ja(){
98echo "$1 の設定を行います"
99}
100
101SettingIMMsg_C(){
102    echo "setting up $1..."
103}
104
105WnnNotAliveMsg_ja(){
106cat <<EOF
107    Wnn サーバが走ってません!
108    Wnn サーバを起動して再挑戦してください!
109    終了します...
110EOF
111}
112
113WnnNotAliveMsg_C(){
114cat <<EOF
115    Wnn server is NOT running!
116    Start Wnn server and try again!
117    Aborted...
118EOF
119}
120
121AtokxNotAliveMsg_ja(){
122cat <<EOF
123    Atokx サーバが走ってません!
124    Atokx サーバを起動して再挑戦してください!
125    終了します...
126EOF
127}
128
129AtokxNotAliveMsg_C(){
130cat <<EOF
131    Atokx server is NOT running!
132    Start Atokx server and try again!
133    Aborted...
134EOF
135}
136
137AtokX2NotAliveMsg_ja(){
138cat <<EOF
139    Atok X2 サーバが走ってません!
140    Atok X2 サーバを起動して再挑戦してください!
141    終了します...
142EOF
143}
144
145AtokX2NotAliveMsg_C(){
146cat <<EOF
147    Atok X2 server is NOT running!
148    Start Atok X2 server and try again!
149    Aborted...
150EOF
151}
152
153VjeNotAliveMsg_ja(){
154cat <<EOF
155    VJE サーバが走っていません!
156    VJE サーバを起動して再挑戦してください!
157    終了します...
158EOF
159}
160
161VjeNotAliveMsg_C(){
162cat <<EOF
163    VJE server is NOT running!
164    Start VJE server and try again!
165    Aborted...
166EOF
167}
168
169NoIMMsg_ja(){
170cat <<EOF
171    $1 が見つかりません...
172    設定を終了します.
173EOF
174}
175
176NoIMMsg_C(){
177cat <<EOF
178    not found $1...
179    exit set up.
180EOF
181}
182
183ExitMsg_ja(){
184echo "設定が完了しました."
185echo "設定は、新しく開くシェルから有効になります。"
186isXRunning && (echo "設定を全てのシェルで有効にするには、X window を再起動する必要があります.")
187}
188
189ExitMsg_C(){
190echo "Configuration finished."
191echo "A new configuration is effective on new shells."
192isXRunning && (echo "To effect this configuration to all applications, You should restart X Window System.")
193}
194
195xwnmoWarning_ja(){
196    echo "[Warning!] xwnmo をデフォルトのインプットメソッドにすると,"
197    echo "[Warning!] X window がフリーズする場合があります.フリーズ"
198    echo "[Warning!] したときには Ctrl-Alt-BackSpace で X window を"
199    echo "[Warning!] 終了できます."
200    echo "[Warning!] xwnmo を使いたいときには, X window の起動後に"
201    echo "[Warning!] xwnmo の起動を行う方がトラブルが少ないようです"
202}
203
204xwnmoWarning_C(){
205    echo "[Warning!] Setting xwnmo as default xim is harmful."
206    echo "[Warning!] I recommend to use kinput2 for default input methos."
207}
208
209Wnn8scimCreateDic_ja(){
210    echo "辞書を生成しますので,しばらくお待ち下さい......"
211}
212
213Wnn8scimCreateDic_C(){
214    echo "Now generating your dictionaries. Please wait for a little......"
215}
216
217########## end of Messages #############################3
218
219setLocale(){
220case $LANG in
221    ja*)LOCALE=ja ;;
222    *) LOCALE=C ;;
223esac
224#isXRunning || LOCALE=C
225if [ ${TERM} = "linux" ]; then
226    LOCALE=C
227fi
228}
229
230CheckOption() {
231if [ $# != 1 ] ; then
232    eval ShowUsage_$LOCALE ${0##*/}
233    return -1
234fi
235return 0
236}
237
238CheckXIMStatus() {
239case "$XIM_PROG" in
240        atokx3* | Atokx3*)
241                STATUS=atokx3
242                ;;
243        atokx2* | Atokx2*)
244                STATUS=atokx2
245                ;;
246        atokx* | Atokx*)
247                STATUS=atokx
248                ;;
249        vje*|VJE*)
250                STATUS=vje
251                ;;
252        skk*|SKK*)
253                STATUS=skk
254                ;;
255        uim*|UIM*|anthy*)
256                STATUS=uim
257                ;;
258        scim*|SCIM*)
259                STATUS=scim
260                ;;
261        ibus*|IBUS*)
262                STATUS=ibus
263                ;;
264        No_IM)
265                STATUS=No_IM
266                ;;
267        *)
268                STATUS=unknown
269                return -1
270                ;;
271esac
272return 0
273}
274
275ShowIMEStatus() {
276
277WNN8RPM_S=wnn8-server
278WNN8RPM_C=wnn8-le
279WNN7RPM_S=wnn7-server
280WNN7RPM_C=wnn7-xclients
281WNN6RPM=wnn6
282ATOKXRPM=atokx
283ATOKX2RPM=atokx
284ATOKX3RPM=atokx
285VJERPM=vje-delta
286ANTHYRPM=anthy
287UIMXIMRPM=uim-xim
288UIMRPM=uim
289SCIMRPM=scim
290SCIMBRIDGERPM=scim-bridge
291SCIMANTHYRPM=scim-anthy
292SCIMWNNRPM=scim-wnn
293IBUSRPM=ibus
294
295eval IMEMsg_$LOCALE
296cat<<EOF
297-----------------------------------------
298`eval CurIMEMsg_${LOCALE}`
299${STATUS}
300-----------------------------------------
301`eval PackageStatMsg_${LOCALE}`
302[SCIM]  `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${SCIMRPM} 2>&1`
303[SCIM-Bridge]  `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${SCIMBRIDGERPM} 2>&1`
304[SCIM-Anthy]  `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${SCIMANTHYRPM} 2>&1`
305[SCIM-Wnn]  `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${SCIMWNNRPM} 2>&1`
306[Anthy]  `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${ANTHYRPM} 2>&1`
307[UIM]  `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${UIMRPM} 2>&1`
308[IBUS] `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${IBUSRPM} 2>&1`
309[Wnn]   `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${WNNRPM} 2>&1`
310[Wnn8 server] `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${WNN8RPM_S} 2>&1`
311[Wnn8 client] `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${WNN8RPM_C} 2>&1`
312[Wnn7 server] `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${WNN7RPM_S} 2>&1`
313[Wnn7 client] `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${WNN7RPM_C} 2>&1`
314[Wnn6]  `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${WNN6RPM} 2>&1`
315[Atokx] `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${ATOKXRPM} 2>&1`
316[AtokX2] `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${ATOKX2RPM} 2>&1`
317[AtokX3] `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${ATOKX3RPM} 2>&1`
318[VJE-Delta] `LANG=${LOCALE} LC_ALL=${LOCALE} rpm -q ${VJERPM} 2>&1`
319-----------------------------------------
320`eval EnvVarMsg_${LOCALE}`
321EMACS_IME=${EMACS_IME}
322XIM_PROG=${XIM_PROG}
323CANNA_SERVER=${CANNA_SERVER}
324JSERVER=${JSERVER}
325WNN8_FRONT_END=${WNN8_FRONT_END}
326WNN7_FRONT_END=${WNN7_FRONT_END}
327WNN8_SERVER=${WNN8_SERVER}
328WNN7_SERVER=${WNN7_SERVER}
329WNN6_FRONT_END=${WNN6_FRONT_END}
330WNN6_SERVER=${WNN6_SERVER}
331GTK_IM_MODULE=${GTK_IM_MODULE}
332QT_IM_MODULE=${QT_IM_MODULE}
333-----------------------------------------
334EOF
335}
336
337isWnnAlive(){
338if [ -n "`wnnstat 2>/dev/null| grep wnnstat`" ]; then
339    eval WnnNotAliveMsg_$LOCALE
340    return -1
341fi
342return 0
343}
344
345isAtokxAlive(){
346if ! (/sbin/pidof -s atokmngdaemon >& /dev/null); then
347    eval AtokxNotAliveMsg_$LOCALE
348    return -1
349fi
350return 0
351}
352
353isAtokX2Alive(){
354if ! (/sbin/pidof -s atokx2mngdaemon >& /dev/null); then
355    eval AtokX2NotAliveMsg_$LOCALE
356    return -1
357fi
358return 0
359}
360
361isVjeAlive(){
362if ! (/sbin/pidof -s vjed >& /dev/null) ; then
363    eval VjeNotAliveMsg_$LOCALE
364    return -1
365fi
366return 0
367}
368
369Wnn8Exists(){
370
371if [ -f /usr/lib/wnn8/ja_JP/wnnenvrc ] \
372&& [ -x /usr/sbin/jserver ]; then
373    return 0
374else
375    return -1
376fi
377}
378
379Wnn7Exists(){
380
381if [ -f /usr/lib/wnn7/ja_JP/wnnenvrc ] \
382&& [ -x /usr/sbin/jserver ]; then
383    return 0
384else
385    return -1
386fi
387}
388
389Wnn6Exists(){
390
391#if [ -n "`rpm -q wnn6 2>/dev/null`" ]; then
392if [ -f /etc/wnn6/ja_JP/wnnenvrc -o -f /usr/local/lib/wnn6/ja_JP/wnnenvrc ] \
393&& [ -x /usr/sbin/jserver -o -x /usr/local/bin/jserver \
394                          -o -x /usr/local/bin/Wnn6/jserver ]; then
395    return 0
396else
397    return -1
398fi
399}
400
401AtokX3Exists(){
402if [ -f "/opt/atokx3/lib/client/atokx3auxd" ] ; then
403    return 0
404else
405    return -1
406fi
407}
408
409AtokX2Exists(){
410if [ -f "/opt/atokx2/sbin/atokx2mngdaemon" ] ; then
411    return 0
412else
413    return -1
414fi
415}
416
417AtokxExists(){
418if [ -f "/usr/lib/locale/ja/atokserver/atokmngdaemon" ] ; then
419    return 0
420else
421    return -1
422fi
423}
424
425startUimXim(){
426    if [ -z "`pidofmyproc uim-xim`" ] ; then
427      uim-xim >& /dev/null &
428    fi
429    TK_KCPROTO=xim
430}
431
432startScim(){
433    if [ -z "`pidofmyproc scim-launcher`" ] ; then
434      scim -d >& /dev/null
435    fi
436    TK_KCPROTO=xim
437}
438
439startIbus(){
440    if [ -z "`pidofmyproc ibus-daemon`" ] ; then
441      ibus-daemon -d -x >& /dev/null &
442    fi
443    TK_KCPROTO=xim
444}
445
446setSKK(){
447    XMODIFIERS="@im=skkinput"
448    TK_KCPROTO=kinput2
449    checkStart skkinput
450    return 0
451}
452
453setUIM(){
454    startUimXim
455    XMODIFIERS="@im=uim"
456    GTK_IM_MODULE=uim
457    QT_IM_MODULE=uim
458    rpm -q --quiet uim-qt-immodule || QT_IM_MODULE=xim
459    checkStart uim-xim
460    return 0
461}
462
463setSCIM() {
464    XMODIFIERS="@im=SCIM"
465    GTK_IM_MODULE=scim
466    QT_IM_MODULE=xim
467    rpm -q --quiet scim-bridge-gtk && GTK_IM_MODULE=scim-bridge
468    rpm -q --quiet scim-qtimm && QT_IM_MODULE=scim
469    rpm -q --quiet scim-bridge-qt && QT_IM_MODULE=scim-bridge
470    rpm -q --quiet scim-bridge-qt4 && QT_IM_MODULE=scim-bridge
471    export XMODIFIERS GTK_IM_MODULE QT_IM_MODULE
472    startScim
473    return 0
474}
475
476setIBUS() {
477    XMODIFIERS="@im=ibus"
478    GTK_IM_MODULE=ibus
479    QT_IM_MODULE=ibus
480    export XMODIFIERS GTK_IM_MODULE QT_IM_MODULE
481    startIbus
482    return 0
483}
484
485killXwnmo(){
486    if [ ! -z `pidofmyproc xwnmo` ]; then
487        if [ -x /usr/local/bin/Wnn6/killxwnmo ] ; then
488            /usr/local/bin/Wnn6/killxwnmo
489        else
490            killall xwnmo
491        fi
492    fi
493}
494
495killWnn8le(){
496        killall WnnPaletteAux >/dev/null 2>&1
497        killall httx >/dev/null 2>&1
498        killall WnnMsgDspAux >/dev/null 2>&1
499}
500
501setWnn8(){
502isWnnAlive || return -1
503echo "WNN8_FRONT_END: " $WNN8_FRONT_END
504case "$WNN8_FRONT_END" in
505    le)
506        isXRunning && \
507        (if [ -f ${HOME}/.Xdefaults ]; then
508                xrdb -merge ${HOME}/.Xdefaults
509        elif [ -f ${HOME}/.Xresources ]; then
510                xrdb -merge ${HOME}/.Xresources
511        fi) \
512        && \
513        export XMODIFIERS=@im=htt; export HTT_DISABLE_STATUS_WINDOW=t; \
514        /usr/lib/im/httx -if Wnn8LE -lc_basiclocale ja_JP -xim htt_xbe &
515        XMODIFIERS="@im=htt"
516        HTT_DISABLE_STATUS_WINDOW=t
517        GTK_IM_MODULE=xim
518        QT_IM_MODULE=xim
519        TK_KCPROTO=htt
520        ;;
521    scim)
522        # ## check scim-wnn package
523        # if ! [ -f "/usr/share/scim/icons/scim-wnn.png" ]; then
524        # fi
525
526        ## kill other frontends
527        killXwnmo && killWnn8le
528
529        ## start SCIM
530        setSCIM
531
532        ## generate basic user dictionaries for the first time
533        ## Note: need wnn8-le
534        if test ! -d /var/lib/wnn8/dic/usr/`whoami`/; then
535            Wnn8scimCreateDic_$LOCALE
536            /usr/lib/im/httx -if Wnn8LE -lc_basiclocale ja_JP -xim htt_xbe &
537            while test ! -d /var/lib/wnn8/dic/usr/`whoami`/;
538            do
539                sleep 3
540            done
541            killWnn8le
542        fi
543        ;;
544esac
545return 0
546}
547
548setWnn7(){
549isWnnAlive || return -1
550echo "WNN7_FRONT_END: " $WNN7_FRONT_END
551case "$WNN7_FRONT_END" in
552    xwnmo)
553        XWNMO_PROG=/usr/X11R6/bin/xwnmo
554        XWNMO_RPM=`rpm -q wnn7-xclients`
555        case "$XWNMO_RPM" in
556            wnn7-xclients-1.01-*)
557                # 1.00 doesn't have --gtk_expose_patch option
558                # 1.01 needs --gtk_expose_patch option for Vine's gtk+
559                # after 1.02 doesn't need --gtk_expose_patch option
560                XWNMO_OPT=--gtk_expose_patch
561                ;;
562            wnn7-xclients-1.03-*)
563                # 1.03 needs -map option for nautilus on Gnome2
564                # after 1.03(1.04 or 1.1?), unknown this requirements.
565                XWNMO_OPT=-map
566                ;;
567        esac
568        XWNMO_GEOM=1x1-0-48
569        isXRunning && (checkStart $XWNMO_PROG $XWNMO_OPT -D ${WNN7_SERVER:=localhost} -g $XWNMO_GEOM) && sleep 2
570        XMODIFIERS="@im=_XWNMO"
571        GTK_IM_MODULE=xim
572        QT_IM_MODULE=xim
573        TK_KCPROTO=xim
574        ;;
575esac
576return 0
577}
578
579setWnn6(){
580isWnnAlive || return -1
581echo "WNN6_FRONT_END: " $WNN6_FRONT_END
582case "$WNN6_FRONT_END" in
583    xwnmo)
584        isXRunning || eval xwnmoWarning_$LOCALE
585
586        if [ -x /usr/local/bin/Wnn6/xwnmo ] ; then
587                XWNMO_PROG=/usr/local/bin/Wnn6/xwnmo
588        else
589                XWNMO_PROG=xwnmo
590        fi
591        isXRunning && (checkStart $XWNMO_PROG -D ${WNN6_SERVER:=localhost} &)
592        XMODIFIERS="@im=_XWNMO"
593#       XMODIFIERS="@im=kinput2" # needed for emacs
594        GTK_IM_MODULE=xim
595        QT_IM_MODULE=xim
596        TK_KCPROTO=xim
597        ;;
598esac
599return 0
600}
601
602setAtokx(){
603isAtokxAlive || return -1
604export XMODIFIERS="@im=htt"
605export TK_KCPROTO=htt
606export HTT_DISABLE_STATUS_WINDOW=t
607export HTT_GENERATES_KANAKEY=t
608export HTT_USES_LINUX_XKEYSYM=t
609
610if [ -z "`ps xc | grep httx`" -a -n "$DISPLAY" ]; then
611
612   if [ -f ${HOME}/.Xdefaults ]; then
613      xrdb -merge ${HOME}/.Xdefaults
614    fi
615    if [ -f "/usr/lib/im/locale/ja/atokserver/shift_space" ]; then
616        echo "*conversionOnKeys: Kanji Zenkaku_Hankaku <Shift>space" | /usr/X11R6/bin/xrdb -m
617    else
618        echo "*conversionOnKeys: Kanji Zenkaku_Hankaku <Ctrl>space" | /usr/X11R6/bin/xrdb -m
619    fi
620    LD_PRELOAD=/usr/X11R6/lib/libXi.so.6 /usr/lib/im/httx -if atok12 -lc_basiclocale ja_JP -xim htt_xbe &
621
622    times=0
623
624    while :
625    do
626     if [ -n "`ps xc | grep LookupAux`" ]; then
627#         sleep 1
628         break
629     fi
630     usleep 100000
631     times=$[$times+1]
632     if [ $times -ge "30" ]; then
633         break
634     fi
635    done
636
637fi
638
639return 0
640}
641
642setAtokX2(){
643isAtokX2Alive || return -1
644export XMODIFIERS="@im=htt"
645export TK_KCPROTO=htt
646export HTT_DISABLE_STATUS_WINDOW=t
647export HTT_GENERATES_KANAKEY=t
648export HTT_USES_LINUX_XKEYSYM=t
649export GTK_IM_MODULE=iiim
650export QT_IM_MODULE=xim
651
652if [ -z "`ps xc | grep httx`" -a -n "$DISPLAY" ]; then
653
654   if [ -f ${HOME}/.Xdefaults ]; then
655      xrdb -merge ${HOME}/.Xdefaults
656    fi
657    /usr/lib/im/httx -if atokx2 -xim htt_xbe &
658
659fi
660
661return 0
662}
663
664setAtokX3(){
665export XMODIFIERS="@im=iiimx"
666export HTT_DISABLE_STATUS_WINDOW=t
667export HTT_GENERATES_KANAKEY=t
668export HTT_USES_LINUX_XKEYSYM=t
669export HTT_IGNORES_LOCK_MASK=t
670export JS_FEEDBACK_CONVERT=t
671export GTK_IM_MODULE=iiim
672export QT_IM_MODULE=xim
673
674if [ -z "`ps xc | grep iiimx`" -a -n "$DISPLAY" ]; then
675
676   if [ -f ${HOME}/.Xdefaults ]; then
677      xrdb -merge ${HOME}/.Xdefaults
678    fi
679    /usr/bin/iiimx -iiimd
680
681fi
682
683return 0
684}
685
686setVje(){
687isVjeAlive || return -1
688    XMODIFIERS="@im=vje"
689    GTK_IM_MODULE=xim
690    QAT_IM_MODULE=xim
691    echo "Emacs*useXim: true" | /usr/X11R6/bin/xrdb -m
692    echo "Emacs*useXIM: true" | /usr/X11R6/bin/xrdb -m
693    times=0
694    ( while :
695      do
696        if [ $(ps xc | grep nautilus | wc -l) -ge "2" ]; then
697          sleep 2
698          break
699        fi
700        sleep 1
701        times=$[$times+1]
702        if [ $times -ge "10" ]; then
703          break
704        fi
705      done && PATH=$PATH:/usr/sbin vje ) &
706    return 0
707}
708
709setNone(){
710    return 0
711}
712
713setIME(){
714
715SYSIME=/etc/sysconfig/ime
716USERIMEDIR=$HOME/.vine/system/
717USERIME=${USERIMEDIR}/ime
718
719source ${SYSIME}
720[ -f ${USERIME} ] && source ${USERIME}
721
722#echo ${XIM_PROG}
723if [ "$1" = "default" ]; then
724    TARGET=${XIM_PROG:-scim}
725    FE=${WNN6_FRONT_END}
726else
727    TARGET=$1
728fi
729
730case "$TARGET" in
731        wnn8)
732                eval SettingIMMsg_$LOCALE wnn8
733                WNNTAG=wnn8
734                EMACS_IME=wnn8
735                XIM_PROG=wnn8
736                WNN8_FRONT_END=${FE:=le}
737            setWnn8 ;;
738        wnn7)
739                eval SettingIMMsg_$LOCALE wnn7
740                WNNTAG=wnn7
741                EMACS_IME=wnn7
742                XIM_PROG=wnn7
743                WNN7_FRONT_END=${FE:=xwnmo}
744            setWnn7 ;;
745        wnn6)
746                eval SettingIMMsg_$LOCALE wnn6
747                WNNTAG=wnn6
748                EMACS_IME=wnn6
749                XIM_PROG=wnn6
750                WNN6_FRONT_END=${FE:=kinput2}
751            setWnn6 ;;
752        wnn)
753            XIM_PROG=wnn
754            WNN6_FRONT_END=kinput2
755            WNN7_FRONT_END=xwnmo
756            WNN8_FRONT_END=le
757            if Wnn8Exists ; then
758                eval SettingIMMsg_$LOCALE wnn8
759                WNNTAG=wnn8
760                EMACS_IME=wnn8
761            elif Wnn7Exists ; then
762                eval SettingIMMsg_$LOCALE wnn7
763                WNNTAG=wnn7
764                EMACS_IME=wnn7
765            elif Wnn6Exists ; then
766                eval SettingIMMsg_$LOCALE wnn6
767                WNNTAG=wnn6
768                EMACS_IME=wnn6
769            else
770                eval NoIMMsg_$LOCALE wnn
771                return -1
772            fi
773            case "$WNNTAG" in
774                wnn8) setWnn8 ;;
775                wnn7) setWnn7 ;;
776                wnn6) setWnn6 ;;
777            esac
778            ;;
779        atokx)
780                eval SettingIMMsg_$LOCALE atokx
781                EMACS_IME=atokx
782                XIM_PROG=atokx
783            setAtokx
784            ;;
785        atokx2)
786                eval SettingIMMsg_$LOCALE atokx2
787                EMACS_IME=atokx2
788                XIM_PROG=atokx2
789            setAtokX2
790            ;;
791        atokx3)
792                eval SettingIMMsg_$LOCALE atokx3
793                EMACS_IME=atokx3
794                XIM_PROG=atokx3
795            setAtokX3
796            ;;
797        vje)
798            eval SettingIMMsg_$LOCALE vje
799            EMACS_IME=vje
800            XIM_PROG=vje
801            setVje
802            ;;
803        uim)
804            eval SettingIMMsg_$LOCALE uim
805            EMACS_IME=uim
806            XIM_PROG=uim
807            setUIM
808            ;;
809        scim)
810            eval SettingIMMsg_$LOCALE scim
811            EMACS_IME=scim
812            XIM_PROG=scim
813            setSCIM
814            ;;
815        ibus)
816            eval SettingIMMsg_$LOCALE ibus
817            EMACS_IME=anthy
818            XIM_PROG=ibus
819            setIBUS
820            ;;
821        skk)
822            eval SettingIMMsg_$LOCALE skk
823            EMACS_IME=skk
824            XIM_PROG=skk
825            setSKK
826            ;;
827        none|No_IM)
828            eval SettingIMMsg_$LOCALE No_IM
829            EMACS_IME=No_IM
830            XIM_PROG=No_IM
831            setNone
832            ;;
833esac
834
835[ -d ${USERIMEDIR} ] || mkdir -p ${USERIMEDIR}
836
837CANNA_SERVER=${CANNA_SERVER:=unix}
838
839cat <<EOF >${USERIME}
840EMACS_IME=${EMACS_IME}
841XIM_PROG=${XIM_PROG}
842JSERVER=${JSERVER:=localhost}
843WNN8_FRONT_END=${FE:=le}
844WNN7_FRONT_END=${FE:=xwnmo}
845WNN6_FRONT_END=${FE:=kinput2}
846WNN8_SERVER=${WNN8_SERVER:=localhost}
847WNN7_SERVER=${WNN7_SERVER:=localhost}
848WNN6_SERVER=${WNN6_SERVER:=localhost}
849CANNA_SERVER=${CANNA_SERVER/localhost/unix}
850GTK_IM_MODULE=${GTK_IM_MODULE}
851QT_IM_MODULE=${QT_IM_MODULE}
852XMODIFIERS=${XMODIFIERS}
853EOF
854return 0
855}
856
857unsetImeFuncs(){
858unset -f ShowUsage_C ShowUsage_ja IMEMsg_C IMEMsg_ja
859unset -f CurIMEMsg_ja CurIMEMsg_C PackageStatMsg_ja PackageStatMsg_C
860unset -f EnvVarMsg_ja EnvVarMsg_C SettingIMMsg_ja SettingIMMsg_C
861unset -f WnnNotAliveMsg_ja WnnNotAliveMsg_C
862unset -f AtokxNotAliveMsg_ja AtokxNotAliveMsg_C
863unset -f AtokX2NotAliveMsg_ja AtokX2NotAliveMsg_C
864unset -f VjeNotAliveMsg_ja VjeNotAliveMsg_C
865unset -f NoIMMsg_ja NoIMMsg_C ExitMsg_ja ExitMsg_C xwnmoWarning_ja xwnmoWarning_C
866unset -f Wnn8scimCreateDic_C Wnn8scimCreateDic_ja
867unset -f setLocale CheckOption CheckXIMStatus ShowIMEStatus isWnnAlive
868unset -f isAtokxAlive AtokxExists setAtokx
869unset -f isAtokX2Alive AtokX2Exists setAtokX2
870unset -f AtokX3Exists setAtokX3
871unset -f isVjeAlive setVje
872unset -f Wnn8Exists Wnn7Exists Wnn6Exists killXwnmo
873unset -f setWnn8 setWnn7 setWnn6 setFreeWnn setIME setNone unsetImeFuncs
874unset -f setSKK
875unset -f setUIM startUimXim
876unset -f setSCIM startScim
877unset -f setIBUS startIbus
878}
Note: See TracBrowser for help on using the repository browser.