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

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