KDE3修業中の続き。
初めてKDE3環境でログインするとき、kpersonalizerが走って
各項目を選んだ結果を ~/.kde/share/kde
以下の個人設定ファイル
に書き出す。これが、すばらしく重いようだ。おそらく
ローカルファイルシステムでは気にならないのだろうが、NFSの先にホーム
があると、合計200KB程度のファイル書き出しに時間がかかる。その処理を
するのが1人だけならいいのだが、4〜5人同時ログインすると
タイムアウトして初期設定が完了せず、KDEがエラーを吐いて来て
つぎからのログインもなんだか変になる。こりゃ使えん。
とおもって、去年は放置していたのだが一度初期設定さえ終われば
かなりサクサク動くのでもう一度試行錯誤。最低限の設定ファイル集を
作ってあらかじめ ~/.kde/share
に置いちゃえばいい。
てことで、こんな手順で最低限ファイルを作ってみた。
rm -r ~/.kde*
してまずまっさらに
1回目としてKDEログインして初期設定してすぐログアウト
grep $USER .kde/share/**/*(.)
して
自分のユーザ名やホームディレクトリが書き込まれているファイルを
探す。そしてそのファイルを消しておく。
gtar zcf dot-kde.tar.gz .kde/share
startkdeをwrapして dot-kde.tar.gz
を
展開する startkde スクリプトを作る。たとえばこう。
#!/bin/sh if [ ! -d $HOME/.kde/share ]; then (cd $HOME; gzip -dc $HOME/../skel/dot.kde.tar.gz | tar xpf -) fi exec /opt/pkg/bin/startkde "$@"
kdm用のXsessionで $session=kde のときの起動部分を 上記wrapper scriptにする。
てな感じでOK。1回目ログインでも遅くならない、よし。 さて20人くらい同時ログインしたときはどうかな。実験せねば。
もう一点、標準だとセッション保存が有効で次回ログイン時に
全部のアプリケーションが戻る。大勢ログインさせる場合はこれ不都合か。
デフォルトでは明示的に保存したセッションがない限り戻さないようにしとこう。
これは $PREFIX/share/kde/config/ksmserverrc
の
[General]
セクションに下記を追加。
loginMode=restoreSavedSession
これで大体期待どおりの挙動になった。
がしかし、このへんKDE3.5でやってる。4で結構変わってそうだなあ。