[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:41497] HOWTO: GDM利用し,UTF-8化とWMやlocalesの自由な切替え+New IMの味見



Sidの日本語環境についてちょっと色々いじってみました。以下参考まで。
アイデアなど有ったらお聞かせ下さい。

基本はXDM+language-envでEUCというのは分かっています。でもここでは、UTF-8
環境とGDMを中心に使う快適環境を追求しました。何と言ってもGDMはグラフィクス
スタート画面にもなるので最もきれいにできます。WDMも結構使えます。
KDMはssh-agentの問題もあるので私は避けています。
(http://lists.debian.org/debian-devel/2004/09/msg01333.html)

これは中間報告です。

目標:
 * Gnome, blackbox, XFce, WindowMaker, KDE などをGDM起動メニューから立ち上げ
   られるようにする。(日本語/英語表示切替含む)
 * Xのアプリの基本をUTF-8系とする。
 * mutt, vim, + ktermでkinput2+ximでの日本語EUC環境が有ること。
 * SCIMをGnome applicationで使えるようにする。(将来はscim-uim, uim-anthy
   と連動。v1.0がアップロードされてからですが。。。)

まず、GDMを使うと~/.xsessionが読み込まれません。つまりlamnguage-envの設定は
効きません。一方最期のexecを除きこれを単に~/.gnomercコピーして使えば
gnome-sessionでは日本語環境が可能ですが、他のsession/window managerで
NGです。

そのうえGDMの設定でUTF-8系(日本語/英語切替え, ja_JP.UTF-8/en_US.UTF-8)
を選ぶとEUC環境が無くなり困ります。

そこで荒技ですが、マニュアルからの類推でMandrake風の ~/.i18nを実装しま
した。(注1)本当はXがこんなスクリプトとともに供給されるべきなんですが。

そこに、簡単な1行編集で起動モードが変えられるスクリプトを書き ugo-xで
おきました。現在の"mix1"モードで使っています。(注2)
(関係ないプログラムも起動しちゃっています。他に適当な所無かったので。)

更に、デビアンのメニューに環境変数付でプログラムが起動されるように
いくつか追加してEUC環境を確保。(注3)

以外と簡単に切替えられる快適環境になりつつ有ります。

ちなみに以下のパッケージ入れています。(aptitudeで'l'を使うと簡単ですよ)

 * scimと付くパッケージ全て
 * kinput2
 * gdm (rootから"dpkg-reconfigure gdm"としてこれをデフォールトに)
 * anthy関連全て,uim-xim
 * xfce4関連全て
 * wmaker、gnustep関連全て
 * blackbox
 * KDE関連全ては始め入れていましたが、GNOMEのメニューに割り込むのが
   嫌なのと、重いので今は消しました。

注意:
 本当にpidof kinput2 等で行っているデーモンの二重起動防止チェック
 が必要かどうか?は定かでありません。

 Anthy関連はこれからです。

 GnomeのアプリでCTRL-SPACEで中国語入力のSCIMが出ますでしょう。


==========================================================
注1:
-------------------
# /etc/X11/Xsession.d/80xfree86-common_i18n
# source ~/.i18n for internationalization of X

I18NRC=$HOME/.i18n
if grep -qs ^allow-i18n "$OPTIONFILE"; then
  if [ -r "$I18NRC" ]; then
    if [ -x "$I18NRC" ]; then
      "$I18NRC"
     else
      . "$I18NRC"
    fi
  fi
fi

==========================================================
注2:
-------------------
# ~/.i18n example
# Sourced by GDM/WDM/XDM startup through /etc/X11/Xsession.d/

# Set start up mode
I18N_MODE="mix1"

case $I18N_MODE in
mix1) # kinput2 + scim way
LC_CTYPE=ja_JP.eucJP
export LC_CTYPE
pidof kinput2 >dev/null || kinput2 &
XMODIFIERS="@im=kinput2"
export XMODIFIERS
LC_CTYPE=en_US.UTF-8
GTK_IM_MODULE="scim"
export LC_CTYPE
export GTK_IM_MODULE
scim -s table -f socket -d 
;;
mix2) # kinput2 + scim way
LC_CTYPE=ja_JP.UTF-8
export LC_CTYPE
pidof uim-xim >dev/null || uim-xim &
XMODIFIERS="@im=uim-xim"
export XMODIFIERS
LC_CTYPE=en_US.UTF-8
GTK_IM_MODULE="scim"
export LC_CTYPE
export GTK_IM_MODULE
scim -s table -f socket -d 
;;
xim) # XIM way
LC_CTYPE=en_US.UTF-8
XMODIFIERS="@im=SCIM"
GTK_IM_MODULE="xim"
export LC_CTYPE
export XMODIFIERS
export GTK_IM_MODULE
scim -s table -d 
;;
scim) # SCIM way
GTK_IM_MODULE="scim"
LC_CTYPE=en_US.UTF-8
export LC_CTYPE
export GTK_IM_MODULE
scim -s table -f socket -d 
;;
kinput2) # kinput
# activate input method for Japanese with kinput2
LC_CTYPE=en_US.ISO-8859-1
pidof kinput2 >dev/null || kinput2 &
XMODIFIERS="@im=kinput2"
export LC_CTYPE
export XMODIFIERS
;;
anthy) # anthy
# activate input method for Japanese with Anthy
LC_CTYPE=ja_JP.UTF-8
uim-xim &
# Not available yet
#uim-helper-toolbar-get-systray &
XMODIFIERS="@im=uim-anthy"
export LC_CTYPE
export XMODIFIERS
;;
*) # None
# activate input method for Japanese with kinput2
XMODIFIERS=""
export XMODIFIERS
;;
esac

# This makes X work when I su to root.
if [ -z "$XAUTHORITY" ]; then
        XAUTHORITY=$HOME/.Xauthority
        export XAUTHORITY
fi

uxterm -geometry 80x40+100-35 &
xeyes -geometry 100x100-35-35 &
xload -geometry 100x100-200-35 &
==========================================================
注3:
-------------------
?package(mutt,kterm):\
 needs="x11"\
 section="/"\
 command="sh -c 'LANG=ja_JP.eucJP \
          LC_CTYPE=ja_JP.eucJP  \
          LC_MESSAGES=en_US.ISO-8859-1 \
          kterm -geometry 80x40 -xim -e mutt'" \
 title=" Mutt (JP)"
?package(mutt,xterm):\
 needs="x11"\
 section="/"\
 command="sh -c 'LANG=en_US.ISO-8859-1 \
          LC_CTYPE=en_US.ISO-8859-1  \
          LC_MESSAGES=en_US.ISO-8859-1 \
          xterm -geometry 80x40 -e mutt'" \
 title=" Mutt (US)"
?package(kterm):\
 needs="x11"\
 section="XShells"\
 command="sh -c 'LANG=ja_JP.eucJP \
          LC_CTYPE=ja_JP.eucJP \
          LC_MESSAGES=en_US.ISO-8859-1 \
          kterm  -xim -T XTrem-E'" \
 title="Kanji Terminal (Message in English)"
?package(kterm):\
 needs="x11"\
 section="XShells"\
 command="sh -c 'LANG=ja_JP.eucJP \
          LC_CTYPE=ja_JP.eucJP \
          PAGER=w3m \
          kterm  -xim -T XTerm-J'" \
 title="Kanji Terminal (Message in Japanese)"