Hipe manual: Running hiped

Running hiped

hiped is the Hipe display server. Hipe applications need it to be running, and need to be able to find the files it creates.

Where to run it

hiped is a Qt application, and runs on any of Qt's display platforms that hipecore is built for.

Choosing the platform

Qt picks a platform automatically. To choose one, set QT_QPA_PLATFORM when starting hiped:

CommandRuns on
QT_QPA_PLATFORM=xcb hipedX11. On a Wayland desktop this runs through XWayland, which applications need in order to embed X11 windows (HIPE_OP_GET_X11_XID).
QT_QPA_PLATFORM=wayland hipedWayland.
QT_QPA_PLATFORM=eglfs hiped --fillEGLFS, with no display server.

hiped doesn't accept Qt's -platform command line option; use the environment variable.

Socket file and host key

hiped creates two files when it starts:

By default both files go in the first of these directories that applies:

  1. /run/, if hiped is run by the root user.
  2. $XDG_RUNTIME_DIR, if set. This is usually a directory under /run/user/ belonging to the current user.
  3. /tmp/.

Applications look in the same place, so on most systems they find hiped with no configuration. To put either file elsewhere, for example so that only trusted applications can read the host key, start hiped with:

hiped [--socket ⟨file path⟩] [--keyfile ⟨file path⟩]

and set HIPE_SOCKET and HIPE_KEYFILE to the same paths in the applications' environment.

Applications don't have to be started from the same terminal as hiped: any application that can find these files can be given a frame.

Giving keys to applications in your own desktop

When your own framing manager runs the desktop, ordinary applications shouldn't create top-level frames. Put the top-level key-file where only the framing manager can read it, and give applications keys to frames inside it instead, in one of two ways:

  1. Through a key-file of its own. The framing manager keeps its own key-file, writing a new key each time one is claimed, and HIPE_KEYFILE points applications at it.
  2. When it launches them. The framing manager starts applications itself and sets HIPE_HOSTKEY to a fresh key for each one. No key-file is needed, and it can treat particular applications differently, but applications can then only be started by the framing manager.

The sample framing manager, hipe-quadrant, does neither: it shows each new key on screen and in its terminal, to be given to applications by hand.

Command line options

OptionEffect
--fillTop-level frames fill the entire screen. Use it when there's no window manager.
--css ⟨paths⟩Default stylesheets for all applications (see below).
--socket ⟨file path⟩Create the socket at this path.
--keyfile ⟨file path⟩Create the top-level key-file at this path.
--cursorDraw a mouse cursor, on systems where no regular cursor is available.
--openglForce OpenGL rendering.
--random ⟨file path⟩Generate keys from this random device, e.g. /dev/random.
--silentPrint only critical errors.
--helpList the options.

Stylesheets and themes

--css takes one or more CSS files, separated by colons, which are read when hiped starts and applied to every application as default style rules. Use full paths rather than ~, which the shell might not expand when several files are listed.

Applications use the first stylesheet (index 1) by default. Setting HIPE_THEME in an application's environment selects another one by its index, counting from 1, or 0 for no default stylesheet.