The first pre-release of Cage

Posted:  • 5 minute read • Last modified:

Almost exactly four months ago I announced Cage, my Wayland compositor for a kiosk-like environment. To the uninitiated: a kiosk is designed for running a single, maximized application and preventing the user from interacting with any other part of the system. You’ve probably seen many in your life in malls, stores or even the dentist (how satisfied are you with your service?). Kiosks can also be used for much cooler things, though, such as running home automation systems.

Since Cage’s announcement, the project was noticed by Phoronix and other websites. Users found their way and Cage quite quickly picked up some momentum. It has grown from just a hobby project for myself into a Wayland compositor with actual users. A small deviation but fun fact is that developing Cage has lead me to find bugs in several layers of the stack and applications, such as Firefox and Mesa.

As a result of this interest, the project has grown in scope significantly. Some of the new features are suggested by users and are clever use-cases that I had never anticipated or even imagined. For example, Drew DeVault, known for starting the sway and wlroots projects and other ambitious endeavors, is working on mimicking a Plan9 rio experience with Cage (see it running here) or using it as a “portal” to a remote sway session. Other features, such as XWayland, are accommodating Cage to the larger audience by providing a better and more smooth experience.

In this pre-release, Cage comes with support for:

In this release, there are 155 commits from 3 different authors. Issues have been reported by 9 users and Cage has been starred on GitHub 85 times. The signed release (6EBC43B1) is available on GitHub. Compile this version of Cage against wlroots 0.5.0.

The path to 1.0 is clear: I have tagged some issues on GitHub that I’d like to make it in 1.0. You can browse them in the milestone I created to track the progress. I think all of these features are critical for a stable release. It would be nice if we could get virtual keyboard support in as well, but I don’t want to block 1.0 on this as there is still work going on regarding this in Wayland. The only other issues are those regarding animations and effects. Likewise, this kind of eye candy isn’t critical and I don’t want to delay a stable release on it, as I expect it to be quite a lot of work.

As always, if you think you can help out with any of these issues (whether they’re tagged for 1.0 or not), please feel free to reach out! I can assist (and/or mentor) anyone willing to contribute.

For questions, comments or feedback you can reach me on Twitter, GitHub or email.