В состав 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.me/tips/info/3003.shtml
В чем профит, брат?
Теперь сервак можно админить через веб браузер и окошки. Все как в винде.
> В чем профит, брат?возможно сетевой функционал иксов для вайленда ?
Я так понимаю, можно гткшные игры теперь в браузере играть? или не получится?
А разве много есть именно Gtk-шных игр? Вот firefox - это Gtk-шное приложение. Но от Gtk там всего ничего используется: само окно да буфер обмена точно.
>firefox - это Gtk-шное приложениеТо есть, теперь можно открыть firefox, чтобы открыть в нем firefox?
А чет не хочет открывать говорит какие-то там проблемы. И в целом у меня не вышло открыть половину GTK приложений сообщает, что проблемы с каким-то Clutter. В целом открылись два приложения редактор и калькулятор ;) Что дает огромный простор для распределенных вычислений и совместного(?) редактирования )))
>именно Gtk-шных игрFreeciv к примеру.
Селениум тесты для GTK-приложения?
> Селениум тесты для GTK-приложения?А не проще ли в таком случае для Selenium просто свой GDK_BACKEND сделать? С другой стороны давно уже есть и работает виртуальный X11 сервер.
В целом не вижу особого преймущества перед виртуальным X11 сервером (xvfb). Вижу только какие-то ограничения на один тип приложений на GTK.
Абсолютно бесполезная фича
А если это Python GTK то так можно?
Можно.
Еще бы реализовать, поднятия на одном порту нескольких экземпляров приложения.
Кстати кто-то пробовал через xinetd реализовать автозапуск приложения и аутентификацию пользователей?