Cage (a Wayland kiosk): the past, the future, the philosophy
Breaking open the Cage: the story behind your favorite (and only) Wayland kiosk
I am a Computer Scientist with a hobby that likes to build stuff. I live in Stockholm, Sweden. I enjoy contributing to other projects and maintaining projects of my own. I am the maintainer of Cage and used to maintain Piper and Gcolor3. In 2017, I participated in Google’s Summer of Code about which I have written a series of blog posts.
I have been using Linux for over ten years and participate(d) in several Linux-related communities. This includes having been a moderator at the Crunchbang Linux forum when it still existed and the BunsenLabs Linux forum. When the Crunchbang Linux project ended, I played a role in forming the BunsenLabs community continuation.
Cage is a kiosk compositor for Wayland. A kiosk is a window manager (in the X11 world) or compositor (in the Wayland world) that is designed for a user experience wherein user interaction and activities outside the scope of the running application are prevented. That is, a kiosk compositor displays a single maximized application at a time and prevents the user from interacting with anything but this application.
It is a project I started back in 2018, when I was working on my own home automation system. In the words of Carl Sagan: "If you wish to make an apple pie from scratch, you must first invent the universe.". I like computering and I consider myself a capable engineer, so I took these words to heart and set out to build the whole stack myself: a custom Linux distribution, a custom window manager, a custom browser to display hass.io's page only... Today my home is still not automated but I do have a kickass prototype embedded Linux distribution and Cage... my own Wayland compositor!
It turns out that I don't want a home automation kiosk! After all, what is home automation if I need to control it on a touch screen? It also turns out that people can be really creative with your software, and soon Cage was used for all kinds of cool things that made me want to build it for other people too rather than just for myself. For example, Cage has been used for a seamless remote Wayland session, in a clone of Plan 9's rio for Wayland and rumour has it some companies use it for their infotainment. Today, I am working with the people behind the RetroStone2 to provide Cage as their compositor. With the advent of Linux on the mobile phone (e.g., the Librem5, the PinePhone and postmarketOS), I am also working on getting Cage ready as a mobile compositor (and eventually my own phone DE, but first I need to reinvent that universe...).
So, my priorities changed and Cage's scope has broadened significantly. It is no longer a simple kiosk with minimal support for what I need; it is slowly growing into a one-size-fits-all compositor for embedded devices. My plan for taking on this task is to provide a set of plug and play abstractions on top of wlroots and multiple "strategies" that compose these components into a behavior suitable for a certain embedded environment.
In my talk, I want to elaborate on Cage's history, Cage's future and Cage's philosophy. I am not a graphics engineer and half the time I have no clue what I'm doing, but I managed to create this awesome compositor that is actually usable! If I can inspire a bunch of people to get out of their comfort zone and do something cool, then my goal is achieved. Ideally, I would like to do all of this with a healthy mix of seriousness and humor, but I'll let you be the judge of that.
- 2020 October 16 - 16:00
- 30 min
- Room 2
- Open Source