В состав 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
|