Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Broadway enables you to use your GTK apps right in the web desktop.
Broadway doesn't virtualize apps, it's a GTK backend (thus, it's faster). Instead of rendering apps on the screen (with the X server/Wayland/other), it's streaming it via WebSockets (compressed, and only updated regions are refreshed).
- Official documentation: https://developer.gnome.org/gtk3/stable/broadwayd.html
- World of Gnome article: http://worldofgnome.org/running-gtk-apps-on-web-with-node-broadway/
- LinuxFr article (in French): http://linuxfr.org/users/ondex2/journaux/gtkhtml5-libreoffice-dans-le-cloud
This is an experimental technology! Use it carefully!
You'll have to install Broadway on your server:
- In Ubuntu: https://launchpad.net/~malizor/+archive/gtk-broadway
- In Archlinux: https://aur.archlinux.org/packages/gtk3-broadway/
You'll have to install the branch
feat-broadway of Symbiose in order to get latest Broadway updates in the webos.
Running an app
First, start the Broadway server:
broadwayd -a 0.0.0.0 -p 8080 :2
-a: the bind address
-p: the server port
:2: the display name
Open a terminal on your server, and execute the following commands:
export GDK_BACKEND=broadway export BROADWAY_DISPLAY=:2
And execute the app you want to use, for example
soffice --writer (LibreOffice).
To use LibreOffice, you must execute
export SAL_USE_VCLPLUGIN=gtk3before running
soffice --writer, in order to use GTK3. See https://wiki.documentfoundation.org/Using_LibreOffice_in_a_Web_Browser
Then, you should be able to access
http://localhost:8080 (replace the domain by yours).
You should be able to run multiple instances of
broadwayd, just be sure to use a different port and display for each of them.
Enabling Broadway support in the webos
Once configured, enable Broadway support in the webos. For the moment, you'll have to execute this command in a Symbiose terminal:
--host: specify the host to connect to (e.g.
broadway --host http://example.com:8081). Defaults to
To start the Broadway server, execute
broadwayd from a Symbiose terminal. You will then be able to start an app by typing its name.
Config is stored in
You can find logs in:
/var/log/broadway-server.logfor the server
/var/log/broadway-apps.logfor GTK3 apps
Change GTK theme (optional)
You can change the GTK theme by editing
~/.config/gtk-3.0/settings.ini (see http://worldofgnome.org/running-gtk-apps-on-web-with-node-broadway/ section Theming):
[Settings] gtk-application-prefer-dark-theme=0 gtk-theme-name=Adwaita
Assumed you have Adwaita theme installed (you can choose another e.g. Elementary if you want).
Here are a full list of settings you can tweak: https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings.properties