Ubuntu 11.04下Emerald不能用的问题解决


先吐槽下,这次更新时绝对是这么多年来最差的一次,Ubuntu 11.04下N卡8400驱动居然用自带的闭源受限驱动无效,还有各种不爽不说了。

相信用emerald的TX都会发现按F2后emerald --replace会导致标题栏消失。这次还是emerald不兼容compiz9.X造成的。下面说下解决方法:

第一步:准备一些编译的基础包,intltool貌似可以省略

sudo apt-get install git intltool libtool
sudo apt-get build-dep emerald
git clone git://anongit.compiz.org/fusion/decorators/emerald
cd emerald
git checkout -b compiz++ origin/compiz++

第二步:准备一个补丁文档:vi emeraldfix.txt

其内容可以参看最下面论坛或者我搬来如下:


diff -ru emerald/src/main.c emerald-fixed/src/main.c

--- emerald/src/main.c2011-03-07 22:38:32.865582662 -0500

+++ emerald-fixed/src/main.c2011-03-07 22:41:16.000000000 -0500

@@ -505,7 +505,7 @@

 maxextents = extents;

 

     decor_quads_to_property(data, GDK_PIXMAP_XID(d->pixmap),

-    &extents, &maxextents, 0, 0, quads, nQuad);

+    &extents, &extents, &maxextents, &maxextents, 0, 0, quads, nQuad);

 

     gdk_error_trap_push();

     XChangeProperty(xdisplay, d->prop_xid,

@@ -1937,7 +1937,7 @@

     nQuad = set_switcher_quads(quads, d->width, d->height, ws);

 

     decor_quads_to_property(data, GDK_PIXMAP_XID(d->pixmap),

-    &extents, &extents, 0, 0, quads, nQuad);

+    &extents, &extents, &extents, &extents, 0, 0, quads, nQuad);

 

     style = gtk_widget_get_style (style_window);

 

@@ -2364,7 +2364,7 @@

 nQuad = set_shadow_quads(quads, width, height, ws);

 

 decor_quads_to_property(data, GDK_PIXMAP_XID(ws->shadow_pixmap),

-&ws->shadow_extents, &ws->shadow_extents, 0, 0,

+&ws->shadow_extents, &ws->shadow_extents, &ws->shadow_extents, &ws->shadow_extents, 0, 0,

 quads, nQuad);

 

 XChangeProperty(xdisplay, xroot,

@@ -2424,7 +2424,7 @@

 (*d.draw) (&d);

 

 decor_quads_to_property(data, GDK_PIXMAP_XID(d.p_inactive),

-&extents, &extents, 0, 0, quads, nQuad);

+&extents, &extents, &extents, &extents, 0, 0, quads, nQuad);

 

 XChangeProperty(xdisplay, xroot,

 normalAtom,

@@ -2433,7 +2433,7 @@

 BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);

 

 decor_quads_to_property(data, GDK_PIXMAP_XID(d.p_active),

-&extents, &extents, 0, 0, quads, nQuad);

+&extents, &extents, &extents, &extents, 0, 0, quads, nQuad);

 

 XChangeProperty(xdisplay, xroot,

 activeAtom,

patch -p1 < emeraldfix.txt  #打补丁,我的提示某些行出错,不过也无影响

第三步:编译阶段,前面弄好的话就不会出错了

./autogen.sh
./configure --prefix=/usr/local
make
sudo make install
sudo ldconfig

ok了,将compiz的窗口装饰——命令里改为emerald --replace,以后自动加载

相关内容