Comment 2 for bug 1436553

Revision history for this message
luke (lukefromdc) wrote :

I can now confirm that building and installing the

https://code.launchpad.net/~albertsmuktupavels/compiz/add-gtk-frame-extents-to-net-supported

compiz branch solves the problem, as far as I can tell solving it entirely.

At the moment I am running Debian Unstable, using the Ubuntu PPA kernel and Mesa on Radeon graphics, this version of compiz, and mate compiled with gtk3.16 hacked for semi-transparent panel menus. Transparency in the panel menus works perfectly, and CSD apps render and can be resized just as if they were running in gnome-shell. Looks like this simple change to src/screen.cpp did it, now there is another issue that comes from Metacity.

Neither this branch nor the main compiz branch will build the gtk window decorator with Metacity 3.17 installed, so Emerald must be used for window decoration (I don't have the kde development files installed to build the kde window decorator) at least on my current setup. "build metacity" and "build gtk" must both be disabled or the build errors out.

Given that Metacity itself no longer supports metacity themes I am not sure that can be fixed unless Compiz is to support using the theme set for csd in the gtk theme. Then the decoration will be much too tall.

There is a way get your old window decoration theme back in Emerald. If you have MATE installed you can run marco --replace to screenshot your old metacity theme, then use png files of sections of the decoration to copy your theme in Emerald's "pixmap" engine.

Long term options I see are this:

1: Rewrite Metacity support to use current Metacity and read the css theme, not the legacy metacity themes

2: Replace Metacity support with Marco support. Most compiz installs needing gtk-window-decorator are in Unity or MATE. This would introduce Marco as a build dependency of compiz and thus unity.

3: Split out Marco support and Unity support, have Unity include its own window decorator. Code could be exactly the same, but this removes an external dependency from Unity.

4: Dump Metacity support, take over Emerald mantainance instead. Update Emerald theme engines or just create Emerald themes to march distro default themes.