加藤(大阪)です。
Tue, 2 Jun 2009 00:37:14 +0900 付
Daisuke SUZUKIさんのメールより:
> >「このままこの設定を使用しますか」と表示されるダイアログが出た
> > きりで、40 秒以上(数分)待っても復帰せず、フリーズします。
>
> フリーズではなく、metacity が落ちて、compizおよびgtk-window-decorator
> が動いていないという状態ですね。
(「自動起動するアプリ」から compiz と emerald を削除し) もう一度この状態
を調べてみました。
仮想コンソール(1)に降りて、top を ユーザー名指定(-U name)で起動して置い
て、X 画面に戻り、「視覚効果」を「通常に」しました。
画面が一度デスクトップに何もない(素の壁紙だけが表示されている)状態にフ
ラッシュして、復帰後、「このままこの設定を使用しますか」ダイアログが表示
されました (前回と同じ状態です)。
ここで再度仮想コンソール(1)に降りて、top 画面を見た所、
gnome-appearance-properties 起動後、
compiz --ignore-desktop-hints glib gconf ccp --replace
gtk-window-decorator
が起動していました (この時点では metacity は落ちています)。
その後、規定時間が経過したと思われる頃に、
metacity --replace
が起動しました。
ここで本来なら compiz が metacity に置き換わる筈なのでしょうが、compiz
も gtk-window-decorator も生き続けています。
これが、自分が「フリーズ」と表現した時の状態です。
どうやら compiz を終了させるのに失敗しているようで、仮想コンソール(2) で
試した所、なぜか killall や pkill (オプションなし)では compiz が殺せませ
んでした。
$ kill -kill PID で compiz を強制終了させ、X に戻ると、metacity が働いた
状態で、gnome-appearance-properties ウィンドウが、「視覚効果」- なし、に
復帰していました (gtk-window-decorator は、まだ生きています)。
> compiz-gtk の実行で失敗しているようなので、手で実行してみてもらっても
> いいですか?
> compiz-gtk --replace
X でターミナルを起動し、$ compiz-gtk --replace を実行した所、画面がフ
ラッシュ → ウィンドウ装飾なしの状態になり、gnome-appearance-properties
が起動していない事を除けば、前と同じ状態になりました。
(metacity --replace はしばらく待っても起動しません)
仮想コンソール(2) で、$ kill -kill compiz-PID、$ metacity -d :0.0 & を実
行すると、metacity に復帰しました。
この時ターミナルには、
(process:11317): GLib-WARNING **: g_main_context_prepare(): main loop
already active in another thread
強制終了
と、表示されています (11317 は compiz の PID です)。
> gtk-window-decorator &
> compiz ccp --replace &
これは正常に compiz に切り替わりました。
$ metacity --replace &
で、metacity に復帰しますが、gtk-window-decorator プロセスはまだ生きてい
ます。
> おそらく、LIBGL_ALWAYS_INDIRECT=1 compiz --replace で動かすと
> うまく動かないのではないかと思います。
gtk-window-decorator を殺し、もう一度 metacity か生きている状態で、
$ LIBGL_ALWAYS_INDIRECT=1 compiz --replac
を実行した所、これも正常に compiz に切り替わりました。
お話しの通り、ウィンドウ装飾を有効にするには、compiz 実行後に、
$ gtk-window-decorator & を実行する必要がありましたが。
> emerald は gtk-window-decorator の代わりにウインドウ装飾を担当します。
> 廃止はしませんが、デフォルトでは使いません。
了解しました。今後は gtk-window-decorator で試します。
> ドライバ依存ですが、隠蔽するために compiz-gtk script を wrapper として
> 使っています。ちゃんと fallback しないといけないんですが、うまく動いて
> いないようです。調べておきます。
compiz-gtk を拝見し、こちらの環境で調べた所、
DIRECT → "Yes", ISSW → 0, HAVETFP → 3
で、runCompiz $@ は実行されてるようでした。
compiz-gtk を ~/bin/compiz-gtk.mine にコピーし、試してみましたが、そのま
までは勿論動かず、いろいろやってみると、
- exec compiz --ignore-desktop-hints glib gconf ccp $@
+ exec compiz --ignore-desktop-hints gconf ccp $@
と、'glib' をはずし
$ ~/bin/compiz-gtk.mine --replace &
を実行すると、とりあえずは compiz に切り替わりました。
$ metacity --replace &
で、正常に metacity に戻りました。
修正した ~/bin/compiz-gtk.mine を /usr/bin/compiz-gtk に書き戻すと、「外
観を設定」で、視覚的効果の各項目の切り替えが可能になりました。
ログアウト → 再ログインしても、前回の設定は反映されています。
('glib' をはずした影響については、良く理解出来ていません)
> # 現状安定してまともに compiz が動く環境は実はあまり多くなく、
> # nvidia-180.x系 か、intel 系、R300までの ATI といったあたりになっています。
> # このあたりは他の distribution でも大きくはかわりません。
173.14.18 でも compiz が動く事はこちらでは確認出来ました。
'glib' (compiz の plugin?) の件を別途解決して頂ければ、Vine で compiz
が使えるユーザーが増えるのではないかと思います。
よろしくお願いします。
--
加藤 雅 <mkato@xxxxxxxxxxxxx>
http://add10.hp.infoseek.co.jp/rox/
http://www2.odn.ne.jp/add10/fluxbox/