2.21.5 is out, with the compositor

Thanks to Iain Holmes and Thomas Thurman for improvements in this version. This is the first unstable release to contain the new compositor; please try it out and let us know how it goes for you. Downstream maintainers should note that its GConf key is initially turned off in src/metacity.schemas.in and consider whether to turn it on by default in their packages.

  • merge compositor branch! (Iain ) (GNOME bug 499081)
  • print “Subversion” and not “CVS” when building (Thomas)

Jorge González (es), Kjartan Maraas (nb), Daniel Nylander (sv)


Photo: Footbridge over the River Ver, Hertfordshire, England. Photographer: Gary Houston. Public domain.


  1. Posted December 19, 2007 at 4:05 pm | Permalink

    Correct me if I am wrong but one of the points of compositing is to keep a copy of the window so you do not have to force the application to redraw each time two windows overlap. Now with 2.21.5 if I switch desktops it still takes a noticable while to redraw all the windows (especially if Firefox is there). Shouldn’t be enough to pull pixmaps from offscreen compositing buffers?

  2. Posted December 19, 2007 at 7:21 pm | Permalink

    Whenever the desktop is switched the unmapped windows are remapped, therefore they need to be redrawn as any drawing operation that occurred while the window was unmapped didn’t actually do anything, so no, it isn’t enough to pull pixmaps from offscreen compositing buffers (plus the offscreen compositing buffers are (usually) destroyed when a window is unmapped)

  3. Posted December 19, 2007 at 7:31 pm | Permalink

    Do other WMs implement workspaces other than by unmapping windows? Should we in future, perhaps?

  4. Posted December 19, 2007 at 7:42 pm | Permalink

    Compiz does not unmap windows when they go to another desktop as it creates one large desktop and scroll over it rather than managing multiple separate desktops. As the desktop is seamless there you can have a window with one half visible on desktop 1 and the other on desktop 2. Makes sense in the “desk” metaphor.

  5. Posted December 19, 2007 at 8:09 pm | Permalink

    On my i945GM, the compositor is noticeably slower than the normal rendering mode.

  6. Posted December 19, 2007 at 8:40 pm | Permalink

    thomas: its the age old workspace vs viewport argument again. Metacity does workspaces, compiz does viewports

  7. Posted December 19, 2007 at 8:51 pm | Permalink

    And compiz does appear to unmap when the window isn’t on the workspace

    compiz/src/window.c: setDesktopForWindow
    if (desktop == 0xffffffff || desktop == w->screen->currentDesktop)
    showWindow (w);
    hideWindow (w);

    hideWindow then calls XUnmapWindow on the window.

  8. Posted December 19, 2007 at 9:04 pm | Permalink


    If the windows are unmaped when leaving screen then it seems compiz keeps track of their composition buffers as it’s possible to see thumbnails of windows from different desktops. Could this be done for metacity? It would be useful if someone decided to implement an expose clone for example.

  9. Posted December 19, 2007 at 9:39 pm | Permalink

    Something urelated, is this known behaviour or should I file a bug? Sometimes a thumbnails is missing when alt+tabbing:


  10. Posted December 19, 2007 at 9:39 pm | Permalink

    Metacity does do it, but once the window is unmapped the updates stop.
    (see http://ktown.kde.org/~fredrik/composite_howto.html for details)

  11. Posted December 19, 2007 at 9:45 pm | Permalink

    Its known behaviour, its because metacity wasn’t able to cache the thumbnail because it didn’t exist. I’m assuming that terminal was minimised when you turned on compositing?

  12. Posted December 19, 2007 at 10:18 pm | Permalink


    Compositing was on for the whole desktop session. I even minimised and restored the window but the thumbnail appeared on its own minutes later.

  13. memedesimo
    Posted December 20, 2007 at 12:49 am | Permalink

    Nice work. However I have Scott Robinson’s problem, on my r300 card (with EXA) rendering is slower than with compositing disabled and even slower than with metacity+xcompmgr. It’s like double rendering wasn’t enabled…

    Then you need to expose some options, at least through gconf (enable/disable shadow, shadow size, transparent unfocused windows) and to add a new keybinding to change the alpha value of windows, to make them transparent if the user needs to see what’s under…

    Congratulations for this importan improvement and thank you for your work!

  14. Posted December 20, 2007 at 1:32 am | Permalink

    I agree that a gconf option to control shadows would be nice but I strongly disagree with adding keybindings for or automatically modifying alpha. It’s up to the application to control the alpha and metacity is supposed to be a usable WM.

    One thing I found useful in compiz is the ability to mark unresponsive apps as such but in general apps are supposed to be responsive so I’m not sure it fits into GNOME.

  15. Posted December 20, 2007 at 4:15 am | Permalink

    I can confirm that it’s pretty common for new windows to get mapped without metacity compositor noticing. They get proper thumbnails when remapped (switching desktops forth and back is enough). I think it might deserve an entry in bugzilla.

  16. Posted December 20, 2007 at 4:23 am | Permalink

    Patrys: if you’re losing windows, it definitely should go in bugzilla. Is it reproducable?

  17. Posted December 20, 2007 at 4:33 am | Permalink


    Not literally losing windows, just thumbnails, see bug:


  18. Jesper Andersen
    Posted December 20, 2007 at 9:19 am | Permalink

    I have been using the compositor-enabled metacity for about a week now. Before that I was using compiz, but I rather like metacity.

    One thing I really like are the window previews in the alt-tab dialog. However, I find the previews a tad too small so I have increased the size a bit in my version.

    My question is then: is there a possibility to have the preview sizes adjustable via some gconf setting? (if this is not the right place to ask, let me know and I will repost the question whereever you want me to)

    Anyways, thanks for such a nice and simple window manager.

  19. Posted December 20, 2007 at 11:46 am | Permalink

    Congratulations, saviours of the world!

  20. Posted December 20, 2007 at 2:17 pm | Permalink

    I agree that the viewport approach make the window-manager seeming _a_lot_ faster.

    And for other ideas, I suggest you to read this:

  21. Florian Ludwig
    Posted December 22, 2007 at 6:25 pm | Permalink

    Great work. It seems pretty stable to me but a bit slow.

    I like this window switcher of compiz:
    it looks cool and the “thumbnails” are big enough to be usefull ;)

    btw, if i’m scaling totem while playing the video flickers a lot but doesnt if i switch compositing off.

    Thanks for the work!

  22. Posted December 24, 2007 at 2:11 pm | Permalink

    This is all very pretty, I like it. Thank you :)

  23. Screwtape
    Posted January 4, 2008 at 9:48 am | Permalink

    I upgraded to 2.21.5 today to try out the compositor, and was generally impressed – but I noticed that unlike xcompmgr, it doesn’t seem to trigger RGBA mode in gnome-terminal, so I only get faux-transparent terminals instead of real-transparent ones. I believe this was the magic commit that made xcompmgr work, as documented in the NetWM spec.

  24. Posted January 7, 2008 at 4:56 am | Permalink

    It definitely works, but you have to restart gnome-terminal after turning on the metacity compositor. That’s a bug in gnome-terminal rather than metacity. :-)

  25. Screwtape
    Posted January 7, 2008 at 5:33 am | Permalink

    Oh, hey, you’re right – I was confused because when I logged in, Metacity was running (obviously) before I started gnome-terminal, and the transparency didn’t work. After toggling the compositor and restarting gnome-terminal, now it works fine.

  26. Patrick
    Posted January 13, 2008 at 7:03 pm | Permalink

    I’m probably completely missing the point, but:
    Enabling compositing on my machiene (Ubuntu 7.10, nvidia 6100 onboard/nonfree driver) seriously bogs down switching between workspaces (which is really annoying, as I make heavy use of virtual desktops).

    Switching to a workspace, containing a maximized opera window, I see the window go black for a moment and then redraw. This is worse than the non compositing behaviour, as the blanking is very irritating and takes more time (actually I was searching for a way to get metacity switch between desktops as smoothly as compiz does).

  27. Posted January 13, 2008 at 7:12 pm | Permalink

    Patrick: See Patrys’s comment in comment 1 and the answers given there. I think we definitely all need to have a talk about this and I think I’ll be raising a bug.

5 Trackbacks

  1. […] io non l’ho ancora compilato perché al momento sono preso da altro, ma se volete farlo voi: recuperate Metacity 2.21.5 (o comunque l’ultima versione di sviluppo), compilatela e installatela con i classici comandi […]

  2. […] Notizia che ormai si è sparsa un po’ su tutto il web dopo che ieri Thomas Thurman ne ha fatto l’annuncio. […]

  3. […] da compilare e da installare. Ecco come fare con Ubuntu Gutsy. Per prima scarichiamo i sorgenti dal blog di metacity e verifichiamo di avere installato tutte le librerie necessarie usando il fido […]

  4. […] già da un po che si parla di questo nuovo compositor manager integrato sul nuovo metacity. Io penso sia un ottima idea per abbellire la propria area di lavoro […]

  5. […] Compilazione e trasparenze Non lo svelo certo io: il compositor integrato in metacity è entrato nel ramo di sviluppo ufficiale, e verrà quindi incluso in GNOME 2.22 (attualmente la versione è 2.21.5). Si tratta di un […]