長南です。 このへんは非常に興味のある問題なので。 小西さんのメールより [vine-users:062514] > > Vine 2.6r1 でXでの日本語入力(kinput2)が出来ないユーザーが > いたのですが、それが解決した、と言う話です。 > > * * * * * * > > Vine 2.6r1 (Vine2.5以降から?)では、ホームディレクトリに > .bashrc と .bash_profile が無いと、 Xでの日本語入力 > (ktermや mozillaでkinput2を用いてのかな漢字変換。emacsでは無い。)が > できなくなるようです。 > bashを使わないユーザーでもそうです。 > /etc/skel/.bash* をホームディレクトリにコピーすれば復旧します。 これは、日本語入力ができるようにするために必要な環境変数を設定したり、 必要なシェル関数を読み込むために、Vine では /etc/X11/xinit/xinitrc や /etc/X11/wdm/Xsession が sh ではなく、bash のシェルスクリプトとして、 それもログインシェルとして実行されているからなのです。以下は大ざっぱな 説明です。 ログインシェルとして起動された場合、bash は /etc/profile を読み、 それから、~/.bash_profile が存在すれば、それを読み込みます。 Vine では、この ~/.bash_profile が ~/.bashrc を読み、~/.bashrc が /etc/bashrc を読みに行き、そして /etc/bashrc が /etc/profile.d/*.sh を読み込みます(うー、ややこしい)。 この /etc/profile.d/*.sh の中で環境変数 LANG を設定したり、 /usr/share/vine/vinelib を読み込んでシェル関数 setime をロードしたりして いるのです。こうして、/etc/X11/xinit/xinitrc や /etc/X11/wdm/Xsession、 およびそこから起動されるスクリプトを実行するためのお膳立てが調います。 そのため、ホームディレクトリに ~/.bash_profile や ~/.bashrc が存在 しないと、X で日本語入力を可能にするための用意ができないことになって しまうのです。 「/etc/skel/.bash* をホームディレクトリにコピー」するのが、一番 間違いのない解決法だと思います。ほかにも手はいろいろ考えられますが、 もしかするとどこかで副作用が出るかもしれませんから。 -- 長南洋一 cyoichi@xxxxxxxxxxxxxxx