長南です。 藤田さんのメールより [vine-users:072506] > > しかし、なぜ > /etc/X11/xinit/xinitrc > が > #!/bin/bash -login > で始まっているのでしょう。 /etc/X11/xinit/xinitrc をログインシェルとして起動しないと (この表現はおかしいかもしれませんが、ご容赦ください)、 /etc/profile そして /etc/profile.d/ime.sh が読み込まれず、 /etc/X11/xinit/xinitrc.d/setime 中で実行される setime が /usr/share/vine/vinelib にある関数ではなく、シェルスクリプトの /usr/bin/setime になります(ランレベル 3 のログイン時に、当然ながら 関数 setime を読み込んでいるのですが、関数 setime は export されて いませんから)。その結果、変数 XMODIFIERS が、X の起動スクリプト中で 設定されるものの、親プロセスに反映せず、X 上で kinput2 による 日本語変換が出来なくなってしまいます。 というのが主な理由だろうと思っています。 # 他のいくつかの変数についても、同じことが言えますが、XMODIFIERS の # 問題が一番はっきりしているので、例として上げました。 私としては、/etc/X11/xinit/xinitrc.d/setime 中の「source /usr/share/ vine/imelib」を「source /usr/share/vine/vinelib」に変更すれば、xinitrc をログインシェルとして実行しなくてもすむのではないかと思うのですが、 やはり何か副作用があるのかもしれません。 あるいは、/etc/X11/xinit/xinitrc を bash ではなく、sh のログインシェル として起動する手もあるかもしれません。そうすれば、/etc/profile は読む けれど、$HOME/.bash_profile は読まないでしょうから。とは言え、これも 副作用が気になりますけれど。 -- 長南洋一