setime-0.42

拙作のインプットメソッド切り替えツールである setime を更新して 野良リポジトリ に投入しました。

このバージョンでは、こちらのエントリで書いた「X 起動時に GDM_LANG という環境変数が設定されている場合には、/etc/sysconfig/i18n や $HOME/.i18n の内容を全く読んでくれない」、つまり、「インプットメソッドを使えない」という問題に対応しました。

この問題に対応する為、従来の「/etc/sysconfig/i18n または $HOME/.i18n にインプットメソッドに関する設定を記述する」という方法を捨て、新たな設定方法を採用しました。

具体的な設定方法としては下記の様になります。

システムワイドな設定の場合
  • /usr/share/X11/xdm/Xsession に環境変数を記述
  • /etc/xdg/autostart/ 下にインプットメソッド自動起動用の desktop ファイルを置く
ユーザー別の設定の場合
  • $HOME/.xsession に環境変数を記述
  • $HOME/.config/autostart/ 下にインプットメソッド自動起動用の desktop ファイルを置く

また、現状の PCLinuxOS ではユーザー別の設定で用いる $HOME/.xsession の内容を反映してくれない為、setime パッケージのインストール時に /usr/share/X11/xdm/Xsession を下記の様に修正しています。(赤字部分を追記)

#!/bin/bash -login

export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=scim-bridge
export QT_IM_MODULE=xim

# --- [add_by_setime] ---
if [ -f "$HOME/.xsession" ]; then
. "$HOME/.xsession"
fi
# -----------------------

exec /etc/X11/Xsession $*

# Xsession ends here

この /usr/share/X11/xdm/Xsession については、setime パッケージのインストール後に再度 Localization Manager (コマンド名: addloclae) が実行されたり、X 関係のパッケージが更新された場合などにはその内容に変更が加えられ、setime が行った修正が元に戻されてしまう可能性が有ります。

そこで setime の実行時に /usr/share/X11/xdm/Xsession の内容をチェックし、変更が加えられていると判断される場合には、修正用スクリプト(コマンド名: setime-fix-xsession)を実行するように警告を出すことにしました。setime の実行時に警告が表示された場合には、修正スクリプトを root 権限で実行してください。


【多謝】
/usr/share/X11/xdm/Xsession の修正方法や、システムワイドに設定されているインプットメソッドとユーザーが個別に設定しているインプットメソッドが異なる場合の対処方法などに付いて、こちらのエントリのコメント欄にて、pclos9さんより多大なアドバイスを戴きました。あらためて御礼申し上げます。

PCLinuxOS | comments (0) | -

コメント

コメント フォーム