Clone or download
Hjdskes xdg_shell/xwayland: do not check parent for other view types
An xdg-shell surface can never be a parent of an xwayland surface and
Latest commit a8e1544 Jan 18, 2019

Cage: a Wayland kiosk

This is Cage, a Wayland kiosk. A kiosk runs a single, maximized application.

This README is only relevant for development resources and instructions. For a description of Cage and installation instructions for end-users, please see its project page.

Building and running Cage

You can build Cage with the meson build system. It requires wayland, wlroots and xkbcommon to be installed. Simply execute the following steps to build Cage:

$ meson build
$ ninja -C build

Cage comes with compile-time support for XWayland. To enable this, first make sure that your version of wlroots is compiled with this option. Then, add -Dxwayland=true to the meson command above. Note that you'll need to have the XWayland binary installed on your system for this to work.

You can run Cage by running ./build/cage APPLICATION. If you run it from within an existing X11 or Wayland session, it will open in a virtual output as a window in your existing session. If you run it at a TTY, it'll run with the KMS+DRM backend. In debug mode (default build type with Meson), press Alt+Esc to quit. To build a release build, use meson build --buildtype=release.

Cage is based on the annotated source of TinyWL and rootston.


For any bug, please create an issue on GitHub.


Please see LICENSE on GitHub.

Copyright © 2018-2019 Jente Hidskes