【Ubuntu 11.10】Compiz Comfig設定マネージャーのプロファイル選択が出来ない問題の対処 --- Compiz Desktop Cubeも動くようになった [ubuntu]
--- 2011/10/15 追記 ---
直してくれてるようです。
https://bugs.launchpad.net/ubuntu/+source/compizconfig-python/+bug/874799
私のパッチとは若干違いますが、基本的に同じ修正です。そのうち出ると思います。
---2011/10/15追記終わり ---
いつの頃か、Compiz Config設定マネージャーでプロファイル設定が出来なくなりました。
下図のように、プロファイルを変えようとしてもメニューが文字化けしてしまいます。
どこが悪いのかちょっとソースを追いかけてみました。
このメニュー部分を出力する仕組みは、下記のようにコールして行われます。
CompizComfig-Settings-Manager (フロントエンド:pythonで記述)
↓
CompizConfig-python (Python -C ブリッジ :pythonで記述)
↓
libcompizconfg-0 (Compiz Comfig ライブラリ : Cで記述)
↓
compizconfig-backend-gconf (gconfへのアクセスルーチン : Cで記述)
↓
Gconfの設定データ
Gconfの設定データを読んだら、その戻り値でプロファイル名をリスト構造で返していき、最終的にCompiz Config設定マネージャーが出力するようになっています。
Gconfの設定データを読み出したcompizconfig-backend-gconfでは、下図のようなデータ形式でデータを詰め込んでいます。
ところが、CompizConfig-pythonの所で、C言語のデータ形式をpython言語読み出せるようにしているのですが、そこでは何故か下記のデータ形式だと思って読みだしていました。
というわけで、compizconfig-python(対象:python-compizconfig_0.9.5.94-0ubuntu2_i386.deb) を書き直しました。
下記がそのパッチ。
diff -urN compizconfig-python-0.9.5.94.org/src/compizconfig.pyx compizconfig-python-0.9.5.94/src/compizconfig.pyx
--- compizconfig-python-0.9.5.94.org/src/compizconfig.pyx 2011-09-03 02:36:32.000000000 +0900
+++ compizconfig-python-0.9.5.94/src/compizconfig.pyx 2011-10-07 15:36:19.034895854 +0900
@@ -1178,11 +1178,11 @@
self.profiles = {}
self.currentProfile = Profile (self, ccsGetProfile (self.ccsContext))
cdef CCSStringList * profileList
- cdef char * profileName
+ cdef CCSString * profileName
profileList = ccsGetExistingProfiles (self.ccsContext)
while profileList != NULL:
- profileName = <char *> profileList.data
- self.profiles[profileName] = Profile (self, profileName)
+ profileName = <CCSString *> profileList.data
+ self.profiles[profileName.value] = Profile (self, profileName.value)
profileList = profileList.next
self.backends = {}
後は、ビルドして放り込むだけ。
apt-get source compizconfig-python
cd compizconfig-python-0.9.5.94
ここで上記パッチを当てて、
sudo apt-get build-deb compizconfig-python
debuild -us -uc -b
でパッケージを作ります。最後のdebuildをするにはいくつかパッケージをインストールしないといけないのですが、忘れてしまいました・・
後はパッケージをインストールするだけなのですが、私は展開してcompizconfig.soのみをコピーしました。
そしたら下記のように変更できる状態になりました。
今まではデフォルトしか選べなかったのですが(私の環境だけかな??)、下図のように他の物も選べます。
おかげで、Desktop Cubeも動くようになりました。
もしbackendをGSettingsで動かして、本記事のパッチを当てずにまともに動いたら、厄介な状態です。
そうなったら、本記事のパッチを当てた状態でGSettings側のbackendを変えるか、本記事のパッチを当てずにGconfのbackendを変更する事になります。後者の場合、backendをコールするlibcompizconfig-0が受け渡す際の型が違ってしまうので、前者の方が簡単かもしれません。
それから、本対処をしてもまだ問題があるようで、プロファイルを変更した時にやたら時間がかかってしまいます。(かなりかかります。5~10分前後) なんか、一度Compizが落ちてるんじゃないかな~と思ってしまいます。
←iPad2 (32G)
先日(10/5)に、スティーブ・ジョブズさんが
お亡くなりになりました。
ご冥福をお祈りします。
でも、私Appleの製品買った事がない。
値段が少し高いことと、私が持っている
他のPCや周辺機器との相性を考えると
購入できなかったです。
ホームフォルダに解凍までは多分できているとおもうのですがパッチやビルドのあたりがうまくいきません詳しくお教えもらえますでしょうか
by toga (2011-10-27 21:59)
☆togaさん☆
下記に詳しく書いてみました。
http://ankyo.blog.so-net.ne.jp/2011-10-28
読んでみて下さい。
by あんきょ (2011-10-28 04:24)