Broadway update 3

This week saw some new updates of the broadway backend. We now have a in-browser window manager for the non-toplevel window mode, and the backend now support a bunch more features.

I don’t want to bore you with technical mumbo jumbo though. Lets see some video instead! (Original source availible here)

YouTube Preview Image
This will be the last update in a while, as I need to spend time on other things. The code is in a pretty good shape though. There are still things to do, but most things work.

Update: Tested this with safari on OSX, and it worked too. Also we now have nicer browser-side window decorations.

40 Responses to “Broadway update 3”

  1. While I’m not convinced running applications inside a web browser (well, painting applications, actually) is a good idea, you really deserve tons of recognition for the incredible feat you’ve achieved.

    Like the idea or not, it’s just amazing from the purely technical point of view. I take my hat off to you.

  2. ar says:

    Is this the beginning of the end of good’ol vnc?
    Anyhow – Thanks for this, gnome has a bright bright future thanks to devs like yourself

  3. Stu says:

    Cairo and Canvas seem to have very similar APIs it would be cool if cairo stuff could tunnel through and be rendered using canvas in the broiwser.

  4. Jono Bacon says:



    This is awesome work, Alex!

  5. Leif says:

    How come the window manager in the browser looks like Win7?

  6. David says:

    That’s cool. Like really cool!

    Have you tried Battle for Wesnoth?

  7. alexl says:

    Leif: The WM decoration CSS was based on some existing css that looked like vista. I just landed a new adwaita-based look from one of the gnome designers (lapo).

  8. alexl says:

    Does Battle for Wesnoth use gtk 3?

  9. David says:

    Have you tried if it runs firefox? (I herd you like browsers, so I put a browser in your html so you can browse html while you browse html)

  10. alexl says:

    David: Firefox isn’t gtk 3, and it has a bunch of X specific code, so it doesn’t work. There is a gtk 3 port going on though, so it might be possible soon.

  11. alexl says:

    Here is a screenshot of the new “WM” decorations

  12. No Name says:

    That’s. Fucking. Crazy.

  13. Anonymous says:

    So, if you combined this with emscripten, you could translate the C code to JavaScript and run that in the browser too, drop the web server, and directly execute an entire GTK+ application in the browser.

  14. henkie says:

    alexl: I see what you did there!

    [WORDPRESS HASHCASH] The poster sent us ‘0 which is not a hashcash value.

  15. tim g says:

    How was state managed between firefox and chrome?

  16. Patrick says:

    When I heard rumors that X may eventually die because no one cares about a “network transparent” window manager part of me died. Despite its performance issues and hiccups it was one of my favorite “to use in a pinch” linux features. You’ve just filled me with hope and got me excited for the future again. This is brilliant. Thank you!

    I’ll have to go back and read to see what this is all about, but great stuff! Does this mean we’ll be able to forward our GTK apps to our remote browsers one day?

  17. Wladimir says:

    Incredible work! This blurs the line between desktop and browser applications even more.

    Ar: VNC in HTML 5 has already been done as well:

  18. Bèr Kessels says:

    The recursive programmer in me really likes the idea of opening a the current browser showing Broadway, in the current browser :)

  19. Bouke says:

    Now try this: connect to broadway, and using ephiphany in broadway connect to the broadway service also

  20. azakai says:

    Amazing! Really awesome stuff!

  21. GNU is not Unix says:

    Try opening the web browser site inside the web browser site, just curious what will happen

  22. Martin Sevior says:

    Can we use this to easily port our gtk applications to android? Could we just run them in google-chrome?

  23. alexl says:

    Martin: The Android browser doesn’t seem to support websockets.

  24. Robin says:

    How long until I see firefox4 running in firefox4?

  25. anonymous says:

    in my opinion, broadway is THE most impressive thing in last year. but, i have to wonder… will WM in browser be only option? i was downright floored by . in browser WM is always cumbersome restriction, while standalone out of browser windows in that video looked really, really slick and natural

  26. alexl says:

    Browser windows still work (append ?toplevel to uri to enable), but it has various issues that are hard to fix. The primary problem being that popups (like menus) can’t extend outside the window.

  27. anonymous says:

    ahhh, thanks for both. developing this and information;) and since it was long ago since i last used any menu in my application, this is best news i could possibly hope for.

  28. Rajeev says:


    is it possible to launch the app from within browser, but run it outside the browser? (somewhat like a special browser session with no menu/bar and stretchable borders)

    Also, this thing needs to be done -just right- to succeed. otherwise it may end up as an interesting computer science project.

    it has immense potential (if done right).

    I want to try on my home server. is it(broadway) available for public download?

    thank you.

  29. Linards says:

    Related Idea:

    Please promote, if interested.

  30. I’m going to try to build a Native Client port of GTK based on this. That should allow the entire application to run native in the browser. (See )

  31. Anand says:

    That’s simply awesome!

  32. Jenind says:

    I want to see the Totem video player running with the GTK broadway backend. You should be able to put an HTML5 video on top of the canvas and use javascript to controll it.

  33. i made this:
    is there some options to control the port and the range of addresses to listen ?
    My test tells that is always 8080 and just or 192.168.x.x
    is it correct?

    Thanks for the great works

  34. Francesco: Set BROADWAY_DISPLAY to the port you want. It will then listen to that port, and on all interfaces on the machine.

  35. dnjl says:

    If I build gtk3 with broadway backend enabled and try to start a gtk binary I will get a segfault with a warning:
    $ GDK_BACKEND=broadway gnome-calculator
    (gnome-calculator:19736): GLib-GObject-WARNING **: invalid cast from `GdkBroadwayDisplay’ to `GdkX11Display’
    Segmentation fault

    I’ve modified the latest gtk3 package from ubuntu (added –enable-x11-backend –enable-broadway-backend to configure parameters) and build it on
    Do I need something else?

  36. dnjl says:

    Ah, removing ubuntu’s new overlay scrollbars solved this. They are not clean gtk3.

  37. ArsiRC says:

    will this work without x server sometimes?

  38. Gigi says:

    I’ve tested your broadway enabled gtk3 libs but I get this error:

    $ GDK_BACKEND=broadway /usr/bin/gtk3-demo

    Gdk-ERROR **: Unsupported GDK backend: broadway

    What is my mistake?

  39. huh says:

    Looks cool, but wait! What about the security? I always thouhgt GTK+/Glib/… was not considered secure enough to be used “over the Internet”.

  40. […] wurde das Ganze durch Alexander Larssons Arbeit an Broadway. Dabei handelt es sich um ein GDK-Backend für den Browser, der alternativ zu jenem für X […]