Tutorial: stream GTK applications and use them in your browser (with GTK+ and Broadway)

A few days ago I’ve (finally) received my first C.H.I.P.. This is the first 9 dollars microcomputer with a 1Gzh R8 ARM CPU, 512Mb of RAM, 4Gb of on-board space and it includes Wireless B/G/N and Bluetooth 4.0.

All in all for that price, I have to admit that it’s a good, all purpose machine that you can easily use for your experiments and to learn new possibilities in computing.

C.H.I.P.

So the first thing I wanted to test is how this little machine would be able to stream GTK applications over the network using the Broadway back-end available in GTK+.

After flashing Debian Jessie on it (that comes without and window manager), I had to compile GTK+ with the Broadway backend enabled (this is now standard in most i386 and amd64 distribution, but not in ARM ones), following the compiling instructions on the GTK+ page.

So after logging into your C.H.I.P. you need to install the dependencies – some of them are already packaged in the right version, while you will have to compile others:

sudo apt-get install pkg-config make autoconf2.13 libtool zlib1g-dev libffi-dev gettext libfam-dev libpackagekit-glib2-dev libgtk2.0-dev python2.7-dev gtk-doc-tools libglib2.0-dev gir1.2-glib-2.0 libtiff5-dev flex bison python-dev libcairo2-dev libepoxy-dev libatk-bridge2.0-dev vim libgirepository1.0-dev unzip

then you will need to install GLIB:

cd ~

wget http://ftp.gnome.org/pub/gnome/sources/glib/2.46/glib-2.46.2.tar.xz

tar xvfJ glib-2.46.2.tar.xz

cd glib-2.46.2

./autogen.sh

./configure

Now you need to find the path for giving the CFLAGS to make:

pkg-config --cflags glib-2.0

the path that will be shown will have to be used as the example below:

make CFLAGS='-I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include'

make install

export LD_LIBRARY_PATH="/usr/local/lib/:/usr/local/lib/pkgconfig"

Now it’s time to compile pango, gobject-introspection, gdk-pixbuf, atk and finally GTK+

cd ~

wget http://ftp.gnome.org/pub/gnome/sources/pango/1.38/pango-1.38.1.tar.xz

tar xvfJ pango-1.38.1.tar.xz

cd pango-1.38.1

./autogen.sh

./configure

make

make install

cd ~

wget http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.46/gobject-introspection-1.46.0.tar.xz

tar xvfJ gobject-introspection-1.46.0.tar.xz

cd gobject-introspection-1.46.0

./configure

make

make install

cd ~

wget http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.32/gdk-pixbuf-2.32.3.tar.xz

tar xvfJ gdk-pixbuf-2.32.3.tar.xz

cd gdk-pixbuf-2.32.3

./configure

make

make install

cd ~

wget http://ftp.gnome.org/pub/gnome/sources/atk/2.18/atk-2.18.0.tar.xz

tar xvfJ atk-2.18.0.tar.xz

cd atk-2.18.0

./configure

make

make install

cd ~

wget http://ftp.gnome.org/pub/gnome/sources/gtk+/3.18/gtk+-3.18.6.tar.xz

tar xvfJ gtk+-3.18.6.tar.xz

cd gtk+-3.18.6

./autogen.sh --enable-broadway-backend --enable-x11-backend

./configure --enable-broadway-backend --enable-x11-backend

makeGEdit working in Chromium

make install

The time to test the result of our creature has come:

first of all enable the broadwayd deamon server and choose the port and screen to use:

broadwayd -p 8080 :2 &

export GDK_BACKEND=broadway

export BROADWAY_DISPLAY=:2

Finally, install a GTK application like shotwell, gedit or galculator

sudo apt-get install gedit galculator shotwell

and launch one of them…

gedit

From another machine, now you can fire your browser and point to the address http://ipofyourc.h.i.p:8080

and use your application running remotely from your browser.

 

Incoming search terms:

  • broadway gtk
  • https://stefanoprenna com/blog/2016/02/06/tutorial-stream-gtk-applications-and-use-them-in-your-browser-with-gtk-and-broadway/
  • linux broadway tutorial

Only 1 comment left Go To Comment

  1. Bob /

    So Cool! I cannot wait to try this.

Leave a Reply