KDE一発目起動高速化他

KDE3修業中の続き。

初めてKDE3環境でログインするとき、kpersonalizerが走って 各項目を選んだ結果を ~/.kde/share/kde 以下の個人設定ファイル に書き出す。これが、すばらしく重いようだ。おそらく ローカルファイルシステムでは気にならないのだろうが、NFSの先にホーム があると、合計200KB程度のファイル書き出しに時間がかかる。その処理を するのが1人だけならいいのだが、4〜5人同時ログインすると タイムアウトして初期設定が完了せず、KDEがエラーを吐いて来て つぎからのログインもなんだか変になる。こりゃ使えん。

とおもって、去年は放置していたのだが一度初期設定さえ終われば かなりサクサク動くのでもう一度試行錯誤。最低限の設定ファイル集を 作ってあらかじめ ~/.kde/share に置いちゃえばいい。

てことで、こんな手順で最低限ファイルを作ってみた。

  1. rm -r ~/.kde* してまずまっさらに

  2. 1回目としてKDEログインして初期設定してすぐログアウト

  3. grep $USER .kde/share/**/*(.) して 自分のユーザ名やホームディレクトリが書き込まれているファイルを 探す。そしてそのファイルを消しておく。

  4. gtar zcf dot-kde.tar.gz .kde/share

  5. 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 "$@"
    
  6. kdm用のXsessionで $session=kde のときの起動部分を 上記wrapper scriptにする。

てな感じでOK。1回目ログインでも遅くならない、よし。 さて20人くらい同時ログインしたときはどうかな。実験せねば。

もう一点、標準だとセッション保存が有効で次回ログイン時に 全部のアプリケーションが戻る。大勢ログインさせる場合はこれ不都合か。 デフォルトでは明示的に保存したセッションがない限り戻さないようにしとこう。 これは $PREFIX/share/kde/config/ksmserverrc[General] セクションに下記を追加。

loginMode=restoreSavedSession

これで大体期待どおりの挙動になった。

がしかし、このへんKDE3.5でやってる。4で結構変わってそうだなあ。