Hipe : HTML Interface Pipe
How Hipe Works  |  Installation  |  Running hiped  |  Hipe API

Installing Hipe

Hipe is built from source, in this order:

  1. Install the dependencies.
  2. Build and install hipecore, the display engine.
  3. Build and install hiped, the display server.
  4. Configure hiped to start automatically.
  5. Build and install the client library, libhipe, and the sample applications. Running Hipe applications doesn't need the library; building them does.

The instructions assume you have the Hipe source in a directory named hipe (see Download), and start each step from that directory. A $ prompt means a command run as a normal user, and # one run as root (for example with sudo). Don't type the prompt itself.


Install the dependencies

You need the development files for Qt 5.15. Earlier Qt 5 releases are not supported, and Qt 6 is not supported yet. To use Hipe within a desktop, you also need an X11 or Wayland session.

You don't need your distribution's QtWebKit packages (such as libqt5webkit5-dev): hipecore, built in the next step, takes their place.

Build and install hipecore

hipecore is Hipe's display engine: a leaner, modified WebKit engine purpose-built for Hipe. The display server requires it.

$ cd hipecore
$ mkdir build && cd build
$ cmake -G Ninja -DPORT=Qt -DCMAKE_BUILD_TYPE=Release ..
$ ninja
# ninja install

hipecore has its own build dependencies: CMake, Ninja, a C++17 compiler, the Qt 5 development packages and a handful of image, XML and multimedia libraries. hipecore/README.md lists them for Debian-based systems; elsewhere, if the cmake step fails, its output says which package is missing.

This installs the libraries libHipeCore and libHipeCoreWidgets, and their headers in /usr/include/HipeCore.

This is a large build. On a machine with little memory, limit the number of parallel jobs, e.g. ninja -j2.

Build and install hiped

The display server needs the Qt 5.15 development files, including the Qt SVG module. On a Debian-based system:

# apt install qtbase5-dev libqt5svg5-dev

Then build it:

$ cd server
$ qmake -makefile ./src/hiped.pro
$ make

If a Qt module is missing, qmake stops with a message such as Unknown module(s) in QT: svg. On a system that also has another version of Qt installed, qmake may belong to that version (check with qmake --version); use qmake -qt=5 or qmake-qt5 in its place.

This produces the hiped executable in server/. It can be run from there, but it is usually installed for all users:

# cp hiped /usr/local/bin/

Configure hiped

Within an existing desktop environment

Start hiped when the user logs in to their desktop, for example by adding this line to the session's startup script (such as .xprofile) or to the desktop's autostart settings:

$ hiped &

hiped uses very little CPU or memory until an application connects.

As the entire desktop

Where Hipe is the whole desktop, on a workstation or an embedded device, start a bare X11 session (with no window manager or desktop environment) and run hiped with --fill, which makes top-level applications fill the screen. hiped can also run directly on the graphics hardware through EGLFS, if hipecore is built for it.

$ hiped --fill &

The server/start_hipe_standalone_x11 script, run from a text console, shows one way to do this. The first top-level application is normally a framing manager that hosts the others; the hipe-quadrant sample is a very simple one.

See Running hiped for the other options, including choosing Qt's graphics platform and giving applications keys to frames inside your framing manager, or run hiped --help.


Build and install the client library and samples

$ cd api
$ make
# make install
$ make testing

make builds libhipe, and make install installs it, with its headers, in /usr/local/lib/ and /usr/local/include/; edit the paths in the Makefile to install it elsewhere. make testing then builds the sample applications in api/test/ against the installed library.

Try it

Start the display server if it isn't already running. From your desktop environment, run it in the background:

$ hiped &

Nothing appears yet: hiped shows nothing until an application connects. Now run one of the test applications from the same terminal:

$ api/test/hipe-clock

A window with a digital clock should open. The application found the display server by itself, through the socket and key files that hiped creates (see Running hiped). Other test applications worth trying are hipe-calc (a calculator), hipe-slider (range sliders) and hipe-canvas (a small paint program). Their source code, in api/test/, is the quickest way to see how a Hipe application is written, and may be copied freely into your own.