source: projects/vutils/trunk/imelib @ 8509

Revision 8509, 20.5 KB checked in by daisuke, 10 years ago (diff)

set EMACS_IME=mozc for fcitx

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