2016年8月7日日曜日

MATEパネルに影がつかない

前から気になっていたことですが、MATEのコンポジットを有効にしてもパネルに影がつかない問題について調べてみました。

Ubuntu MATEだとつくけどGentooではつかないんです。

調べてみた

とりあえず検索して出てきたページを読んでみる。
起動時にmarco(ウィンドウマネージャ)競合しててうまくいかない的なことがかいてある( ಠ_ಠ)
ここに書いてあったことをそのままやってもうまくいきませんでしたが、次のようにしてみたらできました。
  • /usr/share/applications/marco.desktop$HOME/.local/applications/にコピー
  • コピーしたmarco.desktopを書き換える
    Exec=marco --replace
    X-MATE-Autostart-Phase=Application
    X-MATE-Autostart-enabled=true
    

marco --replaceがミソ。

推測

ここから先は、なんでこれでうまくいくのかの考察です。
このへんのドキュメントらしきものが見当たらないのでただの推測ですが…

まず、これでやっていることは「パネルを起動したあとでmarcoを再起動」です。多分これは間違いない。

そして、X-MATE-Autostart-XXXがあるデスクトップエントリファイルはMATEが起動時に認識して実行してくれるんじゃないかと。

さらに、X-MATE-Autostart-Phaseがとれる値はInitialization, WindowManager, Desktop, Panel, Applicationsといくつかの種類があります。種類によって起動順序が決まっているのかな。

というわけで、結局WindowManagerフェーズで起動したあとであらためてApplicationフェーズでmarco --replaceをしているのではないかという推測です。

 Ubuntu MATEではこんな面倒なことしてないのにちゃんと影がついています。どうやってるんだろう…

おまけ

試行錯誤中にコマンドラインでmarco --replaceを実行後にCtrl+Cで止めたら画面がえらいことになりました。

やるなよ!絶対やるなよ!

0 件のコメント:

コメントを投稿