The return of Client side windows

For a long time now I’ve been working on the client side windows branch of Gtk+. By now it is mostly feature complete when it comes to normal use. However, one of the drivers of client side windows and the initial reason I started working on it is the ability to do offscreen window rendering. The last two weeks I’ve been spending on getting that to work and integrated into the platform.

I think a video says more than a million words here:

(Original ogg availible here)

This is using the current client-side-windows branch of Gtk+, plus my own gtk-in-clutter code availible in the client-side-window branch of

Next up is getting the non-X backends working and getting this merged into master.

41 Responses to “The return of Client side windows”

  1. ebassi says:

    you, sir, are a hero

  2. Jussi Kukkonen says:

    Sweet! I can only imagine the horrible UI-crimes against humanity this will inspire, but still… sweet.

  3. iain says:

    i love you

  4. Cute! Man, if you get this working on framebuffer directly without X in the way we might actually see a pretty fast implementation. We’re about to eject inner windows in Firefox as well, which will improve our performance as well. Finally getting the architecture right….

  5. Alberto Ruiz says:

    I just have no words.

  6. Stelios Papanastasiou says:

    Thanks for taking the time to show this off… looks cool, can’t wait to have clutter functionality exposed in java (Java-GNOME bindings perhaps?). Anyway, this is way too cool for summer!

  7. Jeff Waugh says:

    Heh, “Eat this MacSlow”. :-)

  8. lucasr says:

    Dude, this is f… amazing.

  9. Vadim says:

    Wonderful. A bit hard to think on the practical applications though (not meant in a bad way, just… how to use this well?)

  10. ahahah @ “Eat this MacSlow” :) I’m still laughing!

    Amazing work…

  11. ebassi says:

    @stelios: you can use clutter in java through gobject-introspection and JGIR.

  12. mallum says:

    Hooray!!! at last !! I love you too.

  13. Ross Burton says:

    /me joins the I ♥ alexl club too

  14. Jean Azzopardi says:

    Looks incredibly cool. Can’t stop lolling at the “Eat this macslow!!”

  15. omg! zOMG! zzzzOMG!!!!!!!!!!!!!!!!!1111111111ONEONEONE

    bling bling bling :D

    input transforms teeehehheehe

    it’s like so cute ‘n’ stuff!

    /me dances a little

  16. Artir says:

    Battle for the King of the Pimp title!

  17. obunn says:

    question: does this mean that the windows have control of all their content?
    so google chrome for linux could have an integrated windows border with tabs (like in windows and mac) and the window border would still follow your theme?

  18. Dominic Lachowicz says:

    I’d tell you that you rock, but you already knew that

  19. alexl says:

    obunn: No, this is about the subwindows, not about “toplevel” windows (i.e. what normal people think about as windows)

  20. Edson says:

    Sorry my ignorance at the topic, i’m a “ordinary linux user”, but is this possible to apply to an installed distribution? I mean: i have ubuntu 9.04 installed on my machine, can i use this “feature”?

    very good work! Best regards from Brazil.

  21. sri says:

    I love alex, but I love iain more. Sorry. Good stuff though!


  22. shady says:

    minchia! (italian way meaning “UAU!”)

  23. Javier says:

    Thank you for your great work!

  24. I want to be like you all when I grow up.

  25. Johan Svedberg says:

    What they said. Alex, you rock.

  26. Stephen Gentle says:

    Client-side rendering is also useful for porting GTK to Wayland, right?

  27. So when will these bouncing ‘C’s land in Nautilus trunk?

  28. Andy Wingo says:

    That is lovely, lovely, lovely.

  29. […] Alexander Larsson is still working on client side windows in GTK+ and posted a status update. […]

  30. anonymous says:

    dast ist f$cking increadible, amazing, holy shit!

  31. Rui says:

    Amazing Alex! You understand the amount of free beer you’ve just earned for GUEADEC, right? :-)

  32. […] 原文: […]

  33. Michal Hruby says:

    Great work, one question though – do out-of-process windows still work (ie GtkSocket and GtkPlug)?

  34. alexl says:

    Michal Hruby:
    They work in the client-side-windows branch, yes. However they work by using a native window for the gtksocket widget, so you can’t use GtkSocket in an offscreen window.

  35. anonymous says:

    Can’t wait!

  36. […] Nautilus bugs, so I’ve been trying to play catchup there. With all of the work going on to Client Side Windows by Alex and Empathy from Cosimo, we’ve been left with a bit of a vacuum in Nautilus, so […]

  37. Tom says:

    …amazing.. Gnome and GTK+ are back… ;-)