finds.dev← search

// the find

cage-kiosk/cage

★ 1,946 · C · MIT · updated Jun 2026

A Wayland kiosk

Cage is a minimal Wayland compositor that does exactly one thing: run a single application fullscreen. It's a kiosk compositor — think digital signage, ATMs, or embedded UIs where you want a locked-down environment with no window decorations, no taskbar, no escape hatch. Built on wlroots.

1. Extremely focused scope — the entire compositor fits in roughly a dozen C files. There's almost nothing to audit or misconfigure. 2. Built on wlroots 0.20, so it inherits battle-tested Wayland protocol handling rather than reimplementing input/output management from scratch. 3. XWayland support is compiled in optionally, which means legacy X11 apps can run inside it without needing a full desktop compositor. 4. Active maintenance — last push was yesterday, and the release tooling (sign/tag/increment scripts in contrib/) suggests an organized release process.

1. The README punts almost all real documentation to an external project page and wiki — if those go down, new users are largely on their own from the repo alone. 2. Hard dependency on a specific wlroots branch (0.20) means you're blocked if your distro ships a different version, and wlroots has historically broken API between minor versions. 3. No multi-output support by design — if your kiosk setup has two displays, Cage isn't the tool. 4. The idle inhibit implementation is a separate C file but there's no obvious configuration for idle timeouts, so you're left wiring that up yourself through external tools or patching.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →