So-net無料ブログ作成

【Ubuntu 11.10】Unity(3D)でCompiz Desktop Cubeを有効にする方法2(メモ)と仕組み [ubuntu]

この記事は私のメモ用です。Unity上でDesktop Cubeを動かす設定方法より、その時に調べた内容の方を主に書いてあります。

以前『【Ubuntu 11.04】Unity 上で Compiz 3DデスクトップCubeを動かす方法』でUnity上でCompiz Cubeを動かす方法を記述しました。

元ネタとなった記事は下記です。

http://www.omgubuntu.co.uk/2011/04/compiz-cube-natty/

上記記事で“largedesktop” featureと言う言葉が出てきます。それで、Compizのプラグインに関して調べてみました。

Compizのプラグインは、同時に併用できなプラグインがあったり、あるプラグインを使う時には他のプラグインが必要なことがあります。それで、それがどこに記述してあるのかというと、下記のディレクトリの中に各プラグイン毎にXMLファイルがあります。

/usr/share/compiz

ここに、記述してあります。それで例えば、cube.xmlの記述で説明すると、

<?xml version="1.0" encoding="UTF-8"?>
<compiz>
    <plugin useBcop="true" name="cube">
        <short>Desktop Cube</short>

                  ~中略~

        <category>Desktop</category>
        <feature>largedesktop</feature>
        <deps>
            <requirement>
                <plugin>opengl</plugin>
            </requirement>
            <relation type="before">
                <plugin>switcher</plugin>
                <plugin>scale</plugin>
            </relation>
            <relation type="after">
                <plugin>decor</plugin>
            </relation>
        </deps>

         ~後略~

<deps>タグで囲まれた所ですが、その中の<requirement>タグで囲まれた所は、このプラグイン(cube)が動作するのに必要なプラグインです。<relation type="before">タグの部分は、このプラグイン(cube)が先にロードされている必要があるプラグインです。<relation type="after">タグの部分は、このプラグイン(cube)より先にロードされている必要があるプラグインです。

それで、それぞれのプラグインのXMLの記述を元に、libcompizconfigのccsGetSortedPluginStringList関数(main.c)で選択されているプラグインを適切なロード順番に並び変えています。

なので、仮にXMLの記述をAというプラグインはBより先にロードするように記述して、BというプラグインはAより先にロードするように記述してしまうと、並び替えができません。

そうすると、 libcompizconfigのccsGetSortedPluginStringList関数は"libcompizconfig: unable to generate sorted plugin list"というエラーを出して、空のプラグインリストを返します。すると、CCSM上のプラグインのチェックは全部外れてしまい、Unityのメニューやウインドウデコレーターが消えてしまいます。

ここは予想ですが、キーバインドや<feature>largedesktop</feature>の部分も同じようになっているのだと思います。なので、本記事の最初のリンクに示した方法だと、後からチェックを入れると設定が消えたりしてしまうのだと思います。

ここで、unityshell.xmlの記述を見てみると、37行目辺りに下記の記述があります。

            <requirement>
                <plugin>opengl</plugin>
                <plugin>compiztoolbox</plugin>
                <feature>largedesktop</feature>
            </requirement>

ここに<feature>largedesktop</feature>がrequirement欄に書いてあります。それで、始めに記述したcubeにもこの記述があります。

では実験ということで、unityshell.xmlの<feature>largedesktop</feature>の行を削除してみました。

そしたら、下記のようにCCSMから直接チェックを入れることが可能になりました。(ただ、途中でCompizが落ちたり、固まったりしましたが、設定自体が消えてしまったりすることはありませんでした。)それと、ちゃんと競合したところは解消するためのウインドウも出てきました。

SS-cube-003.jpeg

あとは下記のデスクトップサイズを下記のように設定します。

SS-cube-002.jpeg

すると、Unity上でCubeができます。

SS-cube-001.jpeg

実は、Unity上でCubeが動くのはバグとして報告されています。

https://bugs.launchpad.net/ubuntu/+source/unity/+bug/711561

上記バグでUnityとCubeが同時に動かなくなったんですね。

 

 ←ケースファン(120mm リブ無し)

   この前からの「パソコン購入相談」の続き。
   ケースをクーラーマスター RC550 した場合
   もう1つファンを付けられるので、これがいいかな。。
   密閉度が高いケースみたいなので付けといた方が無難??
   それで最近のはリブ無しが多いのかな?
    自作する人はリブあり/なしを気をつけてください。
   「PCケースファン リブ」あたりで検索すると詳しいことが分かります。


nice!(3)  コメント(0) 
メッセージを送る

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。