【 Topics 】

ブログを引っ越しました。こちらのブログは現状のまま凍結します。(2020年10月14日)

引越し先: Operation Normal ? (v2)(同一サイト内です)

どうしようかなぁ・・・

pclinuxos-ZEN-mini-2011-7 の日本語化作業をしている過程で気が付いたことなのですが、X 起動時に GDM_LANG という環境変数が設定されている場合には、/etc/sysconfig/i18n や ~/.i18n の内容を全く読んでくれません。

具体的には、/etc/X11/Xsession から呼び出されている /etc/profile.d/10lang.sh の 15〜19 行目で $GDM_LANG による判定が行われています。

拙作のインプットメソッド切り替えツールの setime では、/etc/sysconfig/i18n または ~/.i18n にインプットメソッドに関する環境変数を記述していますが、X 起動時にこれらのファイルが読み込まれないと日本語入力が出来なくなってしまいます。

実際、pclinuxos-ZEN-mini-2011-7 の日本語化作業では setime で ibus を入力メソッドとして設定したのですが、ユーザーログインしてみると ibus は起動していませんでした。(ちなみに root でログインした場合には何故か $GDM_LANG が設定されておらず、ibus は正常に動作していました)

デフォルトのディスプレイマネージャーが gdm である ZEN-mini 版や gnome 版では、GDM_LANG という環境変数が設定されている可能性があり、その場合には現在のままの setime ではインプットメソッドを切り替えるという本来の役目を果たすことができません。

現時点で考えられるこの問題への回避策は次の3通りかなと思います。(他に良い方法が有ればアドバイスをお願いします)

  1. インプットメソッドに関する環境変数の設定を ~/.bash_profile に記述する。
  2. インプットメソッドに関する環境変数の設定を /usr/share/X11/xdm/Xsession に記述すると共に、/etc/xdg/autostart/ 下に自動起動用の desktop ファイルを配置する。
  3. /etc/profile.d/10lang.sh の 15〜19行目をコメントアウトして、$GDM_LANG の設定の有無にかかわらず常に /etc/sysconfig/i18n または ~/.i18n を強制的に読み込む様にする。

1. の場合には各ユーザー毎の設定のみとなり、システムワイドな設定ができません。
2. の場合には 1. の場合と逆でシステムワイドな設定のみとなり、ユーザー毎の設定は不可となります。setime では過去にこの方法を用いていたことがあります。
3. の場合には、ユーザー毎・システムワイド のどちらの設定にも対応できますが、/etc/profile.d/10lang.sh がアップデートされる度に修正を行う必要が出てきます。

ちなみに addlocale で日本語化を行った場合には scim-bridge がデフォルトになっていますが、その設定方法は 2. となっています。

addlocale の方法に合わせて setime でも 2. の回避策を採るのがベターなのかなとも思いますが、ユーザー毎の設定が出来ないというのがちょっと気になり、1, の方法も捨て難いと迷っています。さーて、どうしましょうかね・・・

PCLinuxOS | comments (19) | -