Comment 2 for bug 252589

Revision history for this message
Mike (mike82) wrote :

We can definitely get much better results by doing everything inside metacity. This may have been a messy option previously, but I see that the netbook remix already has a custom metacity package now, so it shouldn't be too hard to include an extra patch in that package.

I've built a version of metacity that has maximus "built-in". It detects windows that could be maximized, and maximizes them before they are even shown for the first time. This avoids the messy delay and flickering as windows are resized. It also removes the window decoration before it's seen, again reducing flickering.

If a maximized and undecorated window is restored, the decorations are re-added and it becomes a normal window. It remains that way until closed.

This behaviour can be enabled and disabled via a new gconf key named "start_maximized". There is another key, named "never_maximize" which contains the exclusion list (in addition to a built-in exclusion list). From within metacity we can actually do a better job to figure out which windows should be maximized, based on properties of the window, so the exclusion lists become much less important. For example, windows that can't be resized by the user probably shouldn't be maximized by metacity.

If you're interested in testing out this package, please do and let me know how it goes. Be sure to disable maximus first, so that they don't conflict.

debs that can be installed manually:
i386: https://launchpad.net/%7Emike82/+archive/+files/metacity_2.24.0-0ubuntu2~ppa1_i386.deb
amd64: https://launchpad.net/%7Emike82/+archive/+files/metacity_2.24.0-0ubuntu2~ppa1_amd64.deb

A PPA you can add to sources.list to get the packages automatically:
deb http://ppa.launchpad.net/mike82/ubuntu intrepid main
deb-src http://ppa.launchpad.net/mike82/ubuntu intrepid main