A Wayland kiosk
Find a file
Jente Hidskes bc54b94518
Add a Travis CI build
This isn't an optimal build:

1. We're using an untagged, rolling Arch Linux base image for our Docker
image, meaning that potentially every build uses a different base.  The
reason for using an Arch base is because Arch is the only system that
has new enough versions of wlroots' dependencies. Alpine has this too,
but is sufficiently different (e.g. musl and no logind) from other
systems such that I'm not sure whether it will be of any benefit. In the
future, when wlroots is less bleeding edge, we can switch to tagged
releases of e.g. Fedora.

2. We don't have access to hardware, hence we cannot run with wlroots'
headless backend. We can solve this by making the hardware available to
our container with docker's --device=/dev/dri/renderD128, but we don't
have control over this inside our Travis instance. Hence, we need to run
with wlroots' x11 backend through xvfb.

Still, it's better than nothing and we will at least get to know whether
Cage builds and can start up, open a window and close. For good measure,
I also threw in Clang's analyses so we'll learn about potential issues
here as well.
2019-02-28 22:19:45 +01:00
.travis.yml Add a Travis CI build 2019-02-28 22:19:45 +01:00
cage.c Cage: exit when there is no application passed 2019-02-26 18:56:23 +01:00
config.h.in Add missing config.h.in 2019-01-02 22:28:56 +01:00
Dockerfile Add a Travis CI build 2019-02-28 22:19:45 +01:00
idle_inhibit_v1.c Add idle inhibitor support 2019-01-09 20:05:09 +01:00
idle_inhibit_v1.h Add idle inhibitor support 2019-01-09 20:05:09 +01:00
LICENSE Update copyright to include 2019 2019-01-02 21:01:01 +01:00
meson.build meson: require wlroots >= 0.41.0 2019-02-28 19:26:07 +01:00
meson_options.txt Add XWayland support 2019-01-02 20:58:48 +01:00
output.c Wrap x11 backend features in wlroots' feature flag 2019-02-23 23:05:54 +01:00
output.h Move set_window_title to output 2019-02-16 00:56:09 +01:00
README.md README: document to build against wlroots tags 2019-02-26 18:33:50 +01:00
seat.c Update for wlroots 0.4 2019-02-28 19:24:43 +01:00
seat.h Update for wlroots 0.4 2019-02-28 19:24:43 +01:00
server.h Implement xdg-decoration 2019-02-21 09:14:59 +01:00
view.c Damage whole views on map and unmap 2019-02-16 00:35:17 +01:00
view.h view: add function to damage whole view 2019-02-16 00:35:17 +01:00
xdg_shell.c Implement xdg-decoration 2019-02-21 09:14:59 +01:00
xdg_shell.h Implement xdg-decoration 2019-02-21 09:14:59 +01:00
xwayland.c Listen to fullscreen requests 2019-02-16 00:36:07 +01:00
xwayland.h Listen to fullscreen requests 2019-02-16 00:36:07 +01:00

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. Note that Cage is developed against the latest tag of wlroots, in order to not constantly chase breaking changes as soon as they occur.

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.

Bugs

For any bug, please create an issue on GitHub.

License

Please see LICENSE on GitHub.

Copyright © 2018-2019 Jente Hidskes hjdskes@gmail.com