source: projects/vutils/trunk/imelib @ 7962

Revision 7962, 20.5 KB checked in by iwaim, 10 years ago (diff)

IME追加: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    export XMODIFIERS GTK_IM_MODULE
507    startFcitx
508    return 0
509}
510
511killXwnmo(){
512    if [ ! -z `pidofmyproc xwnmo` ]; then
513        if [ -x /usr/local/bin/Wnn6/killxwnmo ] ; then
514            /usr/local/bin/Wnn6/killxwnmo
515        else
516            killall xwnmo
517        fi
518    fi
519}
520
521killWnn8le(){
522        killall WnnPaletteAux >/dev/null 2>&1
523        killall httx >/dev/null 2>&1
524        killall WnnMsgDspAux >/dev/null 2>&1
525}
526
527setWnn8(){
528isWnnAlive || return 1
529echo "WNN8_FRONT_END: " $WNN8_FRONT_END
530case "$WNN8_FRONT_END" in
531    le)
532        isXRunning && \
533        (if [ -f ${HOME}/.Xdefaults ]; then
534                xrdb -merge ${HOME}/.Xdefaults
535        elif [ -f ${HOME}/.Xresources ]; then
536                xrdb -merge ${HOME}/.Xresources
537        fi) \
538        && \
539        export XMODIFIERS=@im=htt; export HTT_DISABLE_STATUS_WINDOW=t; \
540        /usr/lib/im/httx -if Wnn8LE -lc_basiclocale ja_JP -xim htt_xbe &
541        XMODIFIERS="@im=htt"
542        HTT_DISABLE_STATUS_WINDOW=t
543        GTK_IM_MODULE=xim
544        QT_IM_MODULE=xim
545        TK_KCPROTO=htt
546        ;;
547    scim)
548        # ## check scim-wnn package
549        # if ! [ -f "/usr/share/scim/icons/scim-wnn.png" ]; then
550        # fi
551
552        ## kill other frontends
553        killXwnmo && killWnn8le
554
555        ## start SCIM
556        setSCIM
557
558        ## generate basic user dictionaries for the first time
559        ## Note: need wnn8-le
560        if test ! -d /var/lib/wnn8/dic/usr/`whoami`/; then
561            Wnn8scimCreateDic_$LOCALE
562            /usr/lib/im/httx -if Wnn8LE -lc_basiclocale ja_JP -xim htt_xbe &
563            while test ! -d /var/lib/wnn8/dic/usr/`whoami`/;
564            do
565                sleep 3
566            done
567            killWnn8le
568        fi
569        ;;
570esac
571return 0
572}
573
574setWnn7(){
575isWnnAlive || return 1
576echo "WNN7_FRONT_END: " $WNN7_FRONT_END
577case "$WNN7_FRONT_END" in
578    xwnmo)
579        XWNMO_PROG=/usr/X11R6/bin/xwnmo
580        XWNMO_RPM=`rpm -q wnn7-xclients`
581        case "$XWNMO_RPM" in
582            wnn7-xclients-1.01-*)
583                # 1.00 doesn't have --gtk_expose_patch option
584                # 1.01 needs --gtk_expose_patch option for Vine's gtk+
585                # after 1.02 doesn't need --gtk_expose_patch option
586                XWNMO_OPT=--gtk_expose_patch
587                ;;
588            wnn7-xclients-1.03-*)
589                # 1.03 needs -map option for nautilus on Gnome2
590                # after 1.03(1.04 or 1.1?), unknown this requirements.
591                XWNMO_OPT=-map
592                ;;
593        esac
594        XWNMO_GEOM=1x1-0-48
595        isXRunning && (checkStart $XWNMO_PROG $XWNMO_OPT -D ${WNN7_SERVER:=localhost} -g $XWNMO_GEOM) && sleep 2
596        XMODIFIERS="@im=_XWNMO"
597        GTK_IM_MODULE=xim
598        QT_IM_MODULE=xim
599        TK_KCPROTO=xim
600        ;;
601esac
602return 0
603}
604
605setWnn6(){
606isWnnAlive || return 1
607echo "WNN6_FRONT_END: " $WNN6_FRONT_END
608case "$WNN6_FRONT_END" in
609    xwnmo)
610        isXRunning || eval xwnmoWarning_$LOCALE
611
612        if [ -x /usr/local/bin/Wnn6/xwnmo ] ; then
613                XWNMO_PROG=/usr/local/bin/Wnn6/xwnmo
614        else
615                XWNMO_PROG=xwnmo
616        fi
617        isXRunning && (checkStart $XWNMO_PROG -D ${WNN6_SERVER:=localhost} &)
618        XMODIFIERS="@im=_XWNMO"
619#       XMODIFIERS="@im=kinput2" # needed for emacs
620        GTK_IM_MODULE=xim
621        QT_IM_MODULE=xim
622        TK_KCPROTO=xim
623        ;;
624esac
625return 0
626}
627
628setAtokx(){
629isAtokxAlive || return 1
630export XMODIFIERS="@im=htt"
631export TK_KCPROTO=htt
632export HTT_DISABLE_STATUS_WINDOW=t
633export HTT_GENERATES_KANAKEY=t
634export HTT_USES_LINUX_XKEYSYM=t
635
636if [ -z "`ps xc | grep httx`" -a -n "$DISPLAY" ]; then
637
638   if [ -f ${HOME}/.Xdefaults ]; then
639      xrdb -merge ${HOME}/.Xdefaults
640    fi
641    if [ -f "/usr/lib/im/locale/ja/atokserver/shift_space" ]; then
642        echo "*conversionOnKeys: Kanji Zenkaku_Hankaku <Shift>space" | /usr/X11R6/bin/xrdb -m
643    else
644        echo "*conversionOnKeys: Kanji Zenkaku_Hankaku <Ctrl>space" | /usr/X11R6/bin/xrdb -m
645    fi
646    LD_PRELOAD=/usr/X11R6/lib/libXi.so.6 /usr/lib/im/httx -if atok12 -lc_basiclocale ja_JP -xim htt_xbe &
647
648    times=0
649
650    while :
651    do
652     if [ -n "`ps xc | grep LookupAux`" ]; then
653#         sleep 1
654         break
655     fi
656     usleep 100000
657     times=$[$times+1]
658     if [ $times -ge "30" ]; then
659         break
660     fi
661    done
662
663fi
664
665return 0
666}
667
668setAtokX2(){
669isAtokX2Alive || return 1
670export XMODIFIERS="@im=htt"
671export TK_KCPROTO=htt
672export HTT_DISABLE_STATUS_WINDOW=t
673export HTT_GENERATES_KANAKEY=t
674export HTT_USES_LINUX_XKEYSYM=t
675export GTK_IM_MODULE=iiim
676export QT_IM_MODULE=xim
677
678if [ -z "`ps xc | grep httx`" -a -n "$DISPLAY" ]; then
679
680   if [ -f ${HOME}/.Xdefaults ]; then
681      xrdb -merge ${HOME}/.Xdefaults
682    fi
683    /usr/lib/im/httx -if atokx2 -xim htt_xbe &
684
685fi
686
687return 0
688}
689
690setAtokX3(){
691export XMODIFIERS="@im=iiimx"
692export HTT_DISABLE_STATUS_WINDOW=t
693export HTT_GENERATES_KANAKEY=t
694export HTT_USES_LINUX_XKEYSYM=t
695export HTT_IGNORES_LOCK_MASK=t
696export JS_FEEDBACK_CONVERT=t
697export GTK_IM_MODULE=iiim
698export QT_IM_MODULE=xim
699
700if [ -z "`ps xc | grep iiimx`" -a -n "$DISPLAY" ]; then
701
702   if [ -f ${HOME}/.Xdefaults ]; then
703      xrdb -merge ${HOME}/.Xdefaults
704    fi
705    /usr/bin/iiimx -iiimd
706
707fi
708
709return 0
710}
711
712setVje(){
713isVjeAlive || return 1
714    XMODIFIERS="@im=vje"
715    GTK_IM_MODULE=xim
716    QAT_IM_MODULE=xim
717    echo "Emacs*useXim: true" | /usr/X11R6/bin/xrdb -m
718    echo "Emacs*useXIM: true" | /usr/X11R6/bin/xrdb -m
719    times=0
720    ( while :
721      do
722        if [ $(ps xc | grep nautilus | wc -l) -ge "2" ]; then
723          sleep 2
724          break
725        fi
726        sleep 1
727        times=$[$times+1]
728        if [ $times -ge "10" ]; then
729          break
730        fi
731      done && PATH=$PATH:/usr/sbin vje ) &
732    return 0
733}
734
735setNone(){
736    return 0
737}
738
739setIME(){
740
741SYSIME=/etc/sysconfig/ime
742USERIMEDIR=$HOME/.vine/system/
743USERIME=${USERIMEDIR}/ime
744
745source ${SYSIME}
746[ -f ${USERIME} ] && source ${USERIME}
747
748#echo ${XIM_PROG}
749if [ "$1" = "default" ]; then
750    TARGET=${XIM_PROG:-ibus}
751    FE=${WNN6_FRONT_END}
752else
753    TARGET=$1
754fi
755
756case "$TARGET" in
757        wnn8)
758                eval SettingIMMsg_$LOCALE wnn8
759                WNNTAG=wnn8
760                EMACS_IME=wnn8
761                XIM_PROG=wnn8
762                WNN8_FRONT_END=${FE:=le}
763            setWnn8 ;;
764        wnn7)
765                eval SettingIMMsg_$LOCALE wnn7
766                WNNTAG=wnn7
767                EMACS_IME=wnn7
768                XIM_PROG=wnn7
769                WNN7_FRONT_END=${FE:=xwnmo}
770            setWnn7 ;;
771        wnn6)
772                eval SettingIMMsg_$LOCALE wnn6
773                WNNTAG=wnn6
774                EMACS_IME=wnn6
775                XIM_PROG=wnn6
776                WNN6_FRONT_END=${FE:=kinput2}
777            setWnn6 ;;
778        wnn)
779            XIM_PROG=wnn
780            WNN6_FRONT_END=kinput2
781            WNN7_FRONT_END=xwnmo
782            WNN8_FRONT_END=le
783            if Wnn8Exists ; then
784                eval SettingIMMsg_$LOCALE wnn8
785                WNNTAG=wnn8
786                EMACS_IME=wnn8
787            elif Wnn7Exists ; then
788                eval SettingIMMsg_$LOCALE wnn7
789                WNNTAG=wnn7
790                EMACS_IME=wnn7
791            elif Wnn6Exists ; then
792                eval SettingIMMsg_$LOCALE wnn6
793                WNNTAG=wnn6
794                EMACS_IME=wnn6
795            else
796                eval NoIMMsg_$LOCALE wnn
797                return 1
798            fi
799            case "$WNNTAG" in
800                wnn8) setWnn8 ;;
801                wnn7) setWnn7 ;;
802                wnn6) setWnn6 ;;
803            esac
804            ;;
805        atokx)
806                eval SettingIMMsg_$LOCALE atokx
807                EMACS_IME=atokx
808                XIM_PROG=atokx
809            setAtokx
810            ;;
811        atokx2)
812                eval SettingIMMsg_$LOCALE atokx2
813                EMACS_IME=atokx2
814                XIM_PROG=atokx2
815            setAtokX2
816            ;;
817        atokx3)
818                eval SettingIMMsg_$LOCALE atokx3
819                EMACS_IME=atokx3
820                XIM_PROG=atokx3
821            setAtokX3
822            ;;
823        vje)
824            eval SettingIMMsg_$LOCALE vje
825            EMACS_IME=vje
826            XIM_PROG=vje
827            setVje
828            ;;
829        uim)
830            eval SettingIMMsg_$LOCALE uim
831            EMACS_IME=uim
832            XIM_PROG=uim
833            setUIM
834            ;;
835        scim)
836            eval SettingIMMsg_$LOCALE scim
837            EMACS_IME=scim
838            XIM_PROG=scim
839            setSCIM
840            ;;
841        ibus)
842            eval SettingIMMsg_$LOCALE ibus
843            EMACS_IME=ibus-el
844            XIM_PROG=ibus
845            setIBUS
846            ;;
847        fcitx)
848            eval SettingIMMsg_$LOCALE fcitx
849            XIM_PROG=fcitx
850            setFcitx
851            ;;
852        skk)
853            eval SettingIMMsg_$LOCALE skk
854            EMACS_IME=skk
855            XIM_PROG=skk
856            setSKK
857            ;;
858        none|No_IM)
859            eval SettingIMMsg_$LOCALE No_IM
860            EMACS_IME=No_IM
861            XIM_PROG=No_IM
862            setNone
863            ;;
864esac
865
866[ -d ${USERIMEDIR} ] || mkdir -p ${USERIMEDIR}
867
868CANNA_SERVER=${CANNA_SERVER:=unix}
869
870cat <<EOF >${USERIME}
871EMACS_IME=${EMACS_IME}
872XIM_PROG=${XIM_PROG}
873JSERVER=${JSERVER:=localhost}
874WNN8_FRONT_END=${FE:=le}
875WNN7_FRONT_END=${FE:=xwnmo}
876WNN6_FRONT_END=${FE:=kinput2}
877WNN8_SERVER=${WNN8_SERVER:=localhost}
878WNN7_SERVER=${WNN7_SERVER:=localhost}
879WNN6_SERVER=${WNN6_SERVER:=localhost}
880CANNA_SERVER=${CANNA_SERVER/localhost/unix}
881GTK_IM_MODULE=${GTK_IM_MODULE}
882QT_IM_MODULE=${QT_IM_MODULE}
883XMODIFIERS=${XMODIFIERS}
884EOF
885return 0
886}
887
888unsetImeFuncs(){
889unset -f ShowUsage_C ShowUsage_ja IMEMsg_C IMEMsg_ja
890unset -f CurIMEMsg_ja CurIMEMsg_C PackageStatMsg_ja PackageStatMsg_C
891unset -f EnvVarMsg_ja EnvVarMsg_C SettingIMMsg_ja SettingIMMsg_C
892unset -f WnnNotAliveMsg_ja WnnNotAliveMsg_C
893unset -f AtokxNotAliveMsg_ja AtokxNotAliveMsg_C
894unset -f AtokX2NotAliveMsg_ja AtokX2NotAliveMsg_C
895unset -f VjeNotAliveMsg_ja VjeNotAliveMsg_C
896unset -f NoIMMsg_ja NoIMMsg_C ExitMsg_ja ExitMsg_C xwnmoWarning_ja xwnmoWarning_C
897unset -f Wnn8scimCreateDic_C Wnn8scimCreateDic_ja
898unset -f setLocale CheckOption CheckXIMStatus ShowIMEStatus isWnnAlive
899unset -f isAtokxAlive AtokxExists setAtokx
900unset -f isAtokX2Alive AtokX2Exists setAtokX2
901unset -f AtokX3Exists setAtokX3
902unset -f isVjeAlive setVje
903unset -f Wnn8Exists Wnn7Exists Wnn6Exists killXwnmo
904unset -f setWnn8 setWnn7 setWnn6 setFreeWnn setIME setNone unsetImeFuncs
905unset -f setSKK
906unset -f setUIM startUimXim
907unset -f setSCIM startScim
908unset -f setIBUS startIbus
909}
Note: See TracBrowser for help on using the repository browser.