Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Breaking open the Cage: the story behind your favorite (and only) Wayland kiosk

Breaking open the Cage: the story behind your favorite (and only) Wayland kiosk

[Cage](https://www.hjdskes.nl/projects/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](https://www.home-assistant.io/hassio/)'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](https://drewdevault.com/2019/04/23/Using-cage-for-a-seamless-RDP-Wayland-desktop.html), in [a clone of Plan 9's rio for Wayland](https://drewdevault.com/2019/05/01/Announcing-wio.html) and rumour has it some companies use it for their infotainment. Today, I am working with the people behind the [RetroStone2](https://www.8bcraft.com/retrostone2/) to provide Cage as their compositor. With the advent of Linux on the mobile phone (e.g., the [Librem5](https://puri.sm/products/librem-5/), the [PinePhone](https://www.pine64.org/pinephone/) and [postmarketOS](https://postmarketos.org/)), 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.

Jente Hidskes

October 16, 2020
Tweet

Other Decks in Programming

Transcript

  1. Agenda • Rewind time • Who am I? • What

    is Cage? • Plans for Cage’s future • Philosophy behind Cage
  2. Who am I? Jente Hidskes Stockholm, Sweden Master of Science

    in Computer Science Software engineer in the streets, FLOSS contributor in the sheets
  3. Cage’s future Different use-cases are the same, but different One-size-fits-all

    compositor, but stick to kiosk-style roots A set of plug and play abstractions, composed into “strategies” Cage on phones! Want to help? Reach out!
  4. Philosophy behind Cage I’m not a graphics engineer… … yet

    I managed to create this awesome compositor! Can I inspire you to do the same? Or join me! Willing to mentor!
  5. All text and image content in this document is licensed

    under the Creative Commons Attribution-Share Alike 4.0 License (unless otherwise specified). “LibreOffice” and “The Document Foundation” are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these thereof is subject to trademark policy. Finish Thank You