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

[debian-users:44181] Re: 日本語入力ができません



長南です。たいへんな長文になってしまいました。

# まず忘れないうちに、お願いしておきます。
# できるだけ、スレッドをつないでおいてください。

NANA さんのメールより [debian-users:44179]
> 
> > 何と何を入れて、どういうことをなさったのですか。そのへんをもう少し
> > 詳しくお書きになってください。
> 
> インストールしたのは以下のものです。
> libuim0
> libuim0-nox
> uim-canna
> uim-common
> uim-gtk2.0
> uim-utils
> uim-xim
> そして、~/.xsession に以下のような uim の設定をしました。
> XMODIFIERS=@im=uim-anthy ; export XMODIFIERS
> GTK_IM_MODULE=uim-xim ; export GTK_IM_MODULE
> exec uim-anthy &
> exec uim-helper-toolbar-gtk-systray &

かな漢字変換システムに canna ではなく anthy を、インプットメソッドに
kinput2 ではなく uim を使おうとなさったのですか。

私は anthy を使ったことがないので、その使用法に深入りすることは
できません。でも、上の .xsession の記述の場合、exec という文字を
消さないと、.xsession の実行がそこから先に進まないと思います。
exec については、シェルの内部コマンドですから、man bash で調べてください。

一応ここでは canna + kinput2 の組み合わせで使うことにして、話を
進めます。私はそれしか知りませんから(uim をちょっと使ったことが
ありますけれど)。

> > kinput2 ... を実行したユーザは誰なのですか。root、一般ユーザ?
> 
> root ユーザーで実行していました。

kinput2 は一般ユーザでも実行できますが、root ユーザで日本語入力を
なさりたいということなのでしょうか。それならば、すでに日本語変換が
できる一般ユーザから su で root になるのが、一番簡単だと思います。
思い切って root で set-language-env -R を実行する手もありますけれど
(man set-language-env 参照)、set-language-env が推奨していない
方法ですし……(どんば不都合があるんだろう)。もし実行するのなら、
その前に /root にあるドット・ファイルをバックアップしておいた方が
よいかもしれません。

> いろいろなサイトを閲覧して、少し混乱しているので、認識を確認
> させてください。
> 
> デスクトップ環境を使うには、
> 【 ディスプレイマネージャー 】 と 【 startx 】、2つの方法が
> あり、
> ・ディスプレイマネージャー(xdm gdm kdm)は、~/.xsession なけ
> れば、/etc/X11/Xsession 
>  ※gdm は ~/.gnomerc なければ、/etc/X11/Xsession 
> ・startx は、~/.xinitrc なければ、/etc/X11/xinit/xinitrc 
> をそれぞれ読み込んで起動
 
startx で X を起動する場合については、おっしゃるとおりです。
でも、ディスプレイマネージャ経由で X を使用する場合の方は、
ちょっと違います。

このへんはディストリビューションによってかなり様々です。
ですから、Web で調べて、かえって混乱なさったのも、もっともな
ことだと思います。バージョンによっても違うかもしれませんし。

debian sarge の gdm の場合は、/etc/gdm/gdm.conf に「BaseXsession=
/etc/gdm/Xsession」と書いてあります。つまり、まず /etc/gdm/Xsession
を実行しているわけです。そこで /etc/gdm/Xsession から進行を
たどってみると、/etc/gdm/Xsession が /etc/X11/Xsession.d にある
スクリプトを読み込み、そのスクリプトの中で $HOME/.xsession を
(存在する場合は)実行しているのです。$HOME/.gnomerc が存在する場合も、
やはり /etc/X11/Xsession.d 中のスクリプトで読み込まれています。
実際には gdm から Xsession に与えられる引数があって、話はもっと
複雑なのですけれど。

# gdm で Default System Session 以外を意図的に選ぶと、$HOME/.xsession
# が実行されないようです。X 起動時に(と言うか、グラフィック・ログイン
# 時に)、kinput2 が動いていないとしたら、これが原因かもしれません。

xdm の場合は、/etc/X11/xdm/Xsession --> /etc/X11/Xsession -->
/etc/X11/Xsession.d/* --> $HOME/.xsession という流れになります。

kdm については知りません。

ついでに言うと、/etc/X11/xinit/xinitrc も /etc/X11/Xsession を
読みに行っています。ですから、$HOME/.xsession が存在すれば、
この場合も実行されます。

わかりにくい説明になってしまいましたし、私が何か誤解しているかも
しれません。ご自分で /etc/gdm/Xsession から追ってみてください。

> さらに日本語環境にするには、
> 一般ユーザーで set-langurege-env を実行し、
> 使用したいインプットメソッドと変換エンジンを決め、
> ~/.xsession(~/.gnomerc) または  ~/.xinitrc の始めに、
> 
> LANG=ja_JP.eucJP 
> export LANG
> XMODIFIERS=@im=kinput2; export XMODIFIERS
> exec kinput2 -canna &
> 
> を記述し、インプットメソッドと変換エンジンを指定する
> 
> というような理解でよろしいのでしょうか?

ちょっと揚げ足取りめいていますが、kinput2 を使うなら、上の記述は
set-language-env がやってくれるわけですね。それから、kinput2 を
exec してはいけません。

canna + uim というのを試してみたことがあります。その場合は
$HOME/.xsession をこんなふうに書き換えました。

  XMODIFIERS=@im=uim; export XMODIFIERS
  uim-xim &

それから、$HOME/.Xresources を次のように変更。

  !#define XIM kinput2        # 行頭に ! を付けて、コメントアウトし、
  #define XIM uim             # この行を付け加えた。

$HOME/.bashrc に次の行があるのですが、これは放っておいても問題ない
ようです。

  # XIM サーバーの名前を定義する
  # (XIM は、language-env だけで使うシェル変数です)
  XIM=kinput2

もし、canna 以外の変換エンジンも入れているのなら、$HOME/.uim を
作って、こう書き込む必要があるらしい。試したことはないのですが。

  (define default-im-name 'canna)

以上です。

あちこちに説明しきれなかったり、私自身がよくわかっていなかったりする
ところがあります。なにしろ、debian の X 起動スクリプトを読んだのは、
今回が初めてなんですから。

-- 
長南洋一