В состав GTK+ входит бэкенд Broadway, позволяющий отрисовывать вывод в окне web-браузера, передавая данные через WebSocket и формируя изображение с использованием технологий HTML5. Каждое окно сопоставляется с элементом canvas, а содержимое окон передается клиенту в виде копий слоев (для скроллинга) и блоков, описывающих изменения между изображениями. Изображения отправляются в формате PNG. Для обновления содержимого окна организуется передача потока команд через "multipart/x-mixed-replace"-запросы XMLHttpRequest. Начиная с Ubuntu 15.04 бэкенд Broadway поставляется по умолчанию. В более ранних выпусках необходимо установить пакет из PPA:
sudo add-apt-repository ppa:malizor/gtk-broadway
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install broadwayd
Для использования Broadway в любом приложении на базе GTK+3 достаточно перед запуском установить переменную окружения GDK_BACKEND=broadway, после чего интерфейс приложения станет доступен при открытии в браузере страницы http://127.0.0.1:8080. Для запуска нескольких приложений, с присвоением для них разных номеров портов, следует использовать вспомогательный дисплейный сервер broadwayd.
Например:
broadwayd
GDK_BACKEND=broadway gedit
Если после запуска произошёл крах, можно попробовать отключить в программе работу с глобальным меню и исчезающими полосами прокрутки:
GDK_BACKEND=broadway UBUNTU_MENUPROXY= LIBOVERLAY_SCROLLBAR=0 gedit
Для запуска ещё одного приложения, в broadwayd следует указать номер сеанса, после чего номер порта для него выбирается по формуле "8080 + номер". Например (127.0.0.1:8081):
broadwayd :1
GDK_BACKEND=broadway gtk3-demo
Для доступа с другого ПК можно прикрепить обработчик на другой IP-адрес при помощи опции --address, например:
broadwayd --address 192.168.1.34 :2
Для предотвращения несанкционированного доступа для сеанса можно задать пароль, который нужно сохранить в файл ~/.config/broadway.passwd. Например:
openssl passwd -1 > ~/.config/broadway.passwd
URL: https://developer.gnome.org/gtk3/stable/gtk-broadway.html https://launchpad.net/~malizor/+archive/ubuntu/gtk-broadway
Обсуждается: http://www.opennet.dev/tips/info/3003.shtml