Ubuntu / Linux news and application reviews.

GTK3 Broadway Ubuntu

Starting with version 3.2, GTK+ comes with an experimental "Broadway" backend that allows rendering GTK3 applications in HTML5-capable browsers, so you can run applications remotely, using only a web browser.

Ubuntu doesn't enable this Broadway backend by default, but thanks to Nicolas Delvaux's PPA, you can easily give this a try in Ubuntu 13.04, 12.10 or 12.04.

In the video below you can see GTK+3 with the Broadway (HTML5) backend enabled in action:


(direct video link)



Install GTK3 with Broadway backend enabled in Ubuntu


Important: The GTK+3 with the Broadway (HTML5) backend PPA is available for Ubuntu 13.04, 12.10 and 12.04 and provides the same GTK+3 version available for those Ubuntu versions (but obviously, with Broadway enabled). That means that if you've added some PPA which has a newer GTK3 version (like the GNOME 3 PPA), you won't be able to use this PPA unless you purge the other PPA or downgrade the packages!

To add the GTK+3 Broadway PPA and upgrade to GTK3 with Broadway in Ubuntu, use the following commands:
sudo add-apt-repository ppa:malizor/gtk-broadway
sudo apt-get update
sudo apt-get upgrade

Then, log out, log back in and:

1. (Updated) For Ubuntu 13.10 or newer, open a terminal and type (not required for Ubuntu 12.04):
broadwayd
2. To run an application with the Broadway backend, use the following command:
GDK_BACKEND=broadway UBUNTU_MENUPROXY= LIBOVERLAY_SCROLLBAR=0 <APPLICATION>
where "APPLICATION" is the GTK3 application executable. For instance, to run Gedit with the Broadway backend, use:
GDK_BACKEND=broadway UBUNTU_MENUPROXY= LIBOVERLAY_SCROLLBAR=0 gedit
"UBUNTU_MENUPROXY=" and "LIBOVERLAY_SCROLLBAR=0" are required because with the global menu and overlay scrollbars enabled, the applications segfault.

And finally, open Firefox (using Chrome didn't work properly in my test) and enter the following address: http://localhost:8080

You can also use this from a remote machine, by entering your IP followed by the 8080 port. In my test, this also worked using Firefox on my Android phone.

To specify the port (if you use a different port for each app, they can run in the same time), use "BROADWAY_DISPLAY=" followed by the port number (e.g.: BROADWAY_DISPLAY=8081) in the command used to launch the application.

Remember: you can only use this with GTK3 applications.

There is another PPA which provides the latest stable GTK 3.8 for Ubuntu 13.04, that comes with some extra features, like password protection, running multiple GTK+ applications in the same web browser and more, however, since Ubuntu 13.04 doesn't come with GTK 3.8 by default, I don't recommend using this unless you only want to test it in some virtual machine or you plan on using Broadway on a server. You can find the Ubuntu 13.04 GTK 3.8 with Broadway PPA HERE - make sure you read the PPA description since Broadway works a bit differently in GTK 3.8.


Reverting the changes


If you want to purge the GTK+3 Broadway PPA and go back to the GTK+3 version you had installed previously, use the following commands:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:malizor/gtk-broadway