A Wayland kiosk
Find a file
Simon Ser f9626f7951
Some checks failed
Continuous integration build / compile (clang, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (clang, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, alpine:edge, enabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, disabled) (push) Has been cancelled
Continuous integration build / compile (gcc, archlinux:base-devel, enabled) (push) Has been cancelled
Continuous integration build / format (push) Has been cancelled
Continuous integration build / scan-build (push) Has been cancelled
build: bump version to 0.2.1
2025-10-01 17:46:45 +02:00
.github/workflows ci: set --wrap-mode=nodownload 2025-06-12 18:03:53 +02:00
contrib Include release scripts 2021-04-16 14:34:57 +02:00
.clang-format Add clang-format file 2020-02-18 21:20:23 +01:00
.clang-format-ignore Move to GitHub actions 2021-12-19 11:12:19 +01:00
.editorconfig Add .editorconfig 2024-02-23 12:14:39 +01:00
cage.1.scd Make application arguments optional 2024-11-22 12:09:16 +01:00
cage.c Fix renderer, allocator and scene memory leaks on exit 2025-07-02 09:09:20 +02:00
config.h.in cage: add -v argument to print version 2020-01-26 18:18:49 +01:00
idle_inhibit_v1.c Switch from wlr_idle to wlr_idle_notify_v1 2024-01-26 23:45:57 +01:00
idle_inhibit_v1.h Replace all wayland-server.h includes with wayland-server-core.h 2019-12-20 17:16:53 +01:00
LICENSE Refactor surface damaging and rendering code 2020-01-11 17:07:33 +01:00
meson.build build: bump version to 0.2.1 2025-10-01 17:46:45 +02:00
meson_options.txt build: drop xwayland option 2024-07-30 00:42:32 +02:00
output.c output: use backend commits 2025-06-20 19:19:25 +02:00
output.h output: Implement request_state event listener 2024-01-26 23:45:57 +01:00
README.md readme: add link to man page 2024-11-03 16:29:19 +01:00
seat.c Upgrade wlroots to v0.19 2025-05-26 23:09:43 +02:00
seat.h cage: add relative-pointer-unstable-v1 support 2023-11-10 14:38:28 +01:00
server.h Add CLI flag to enable debug logs 2024-11-22 12:03:40 +01:00
view.c xdg_shell: configure surface on initial commit 2024-09-07 23:42:24 +02:00
view.h cage: add basic wlr-output-management support 2023-07-28 15:36:34 +02:00
xdg_shell.c xdg_shell: bump to v5 2025-06-03 23:22:53 +02:00
xdg_shell.h xdg_shell: handle xdg_popup reposition signal 2025-06-03 23:22:35 +02:00
xwayland.c Upgrade wlroots to v0.19 2025-05-26 23:09:43 +02:00
xwayland.h shell: Use new map/unmap events 2024-01-26 23:45:57 +01:00

Cage: a Wayland kiosk

Cage's logo

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 and the Wiki. See the man page for a list of possible environment variables and run options.

Release signatures

Releases up to version 0.1.4 are signed with 6EBC43B1. Releases from 0.1.5 onwards are signed with E88F5E48 All releases are published on GitHub.

Building and running Cage

You can build Cage with the meson build system. It requires wayland, wlroots, and xkbcommon to be installed. Optionally, install scdoc for manual pages. Cage is currently based on branch 0.18 of wlroots.

Simply execute the following steps to build Cage:

$ meson setup build
$ meson compile -C build

By default, this builds a debug build. To build a release build, use meson setup build --buildtype=release.

Cage comes with compile-time support for XWayland. To enable this, make sure that your version of wlroots is compiled with this option. 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. For more configuration options, see Configuration.

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-2020 Jente Hidskes dev@hjdskes.nl