Some of you will be aware that we’ve been working on a new, more responsive and more modern desktop experience for the Raspberry Pi. We thought you might like an update on where we are with the project.
The chip at the heart of the Raspberry Pi, BCM2835, contains an extremely powerful and flexible hardware video scaler (HVS), which can be used to assemble a stack of windows on the fly for output to the screen. In many ways the HVS resembles the sprite engines you may remember from 8- and 16-bit computers and games consoles from the Commodore 64 onward, with each window treated as a separate translated and scaled “sprite” on top of a fixed background.
The Wayland compositor API gives us a way to present the HVS to applications in a standards-based way. Over the last year we’ve been working with Collabora to implement a custom backend for the Weston reference compositor which uses the HVS to assemble the display. Last year we shipped a technology demonstration of this, and we’ve been working hard since then to improve its stability and performance.
The “missing piece” required before we can consider shipping a Wayland desktop as standard on the Pi is a graphical shell. This is the component that adds task launching and task switching on top of the raw compositor service provided by Wayland/Weston. The LXDE shell we ship with X on the Pi doesn’t support Wayland, while those shells that do (such as GNOME) are too heavyweight to run well on the Pi. We’ve therefore been working with Collabora since the start of the year to develop a lightweight Wayland shell, which we’ve christened Maynard (maintaining the tradition of New England placenames). While it’s some distance from being ready for the prime time, we though we’d share a preview so you can see where we’re going.
Packages for Raspbian are available (this is a work in progress, so you won’t be able to replace your regular Raspbian desktop with this for general use just yet, and you’ll find that some features are slow, and others are missing). Collabra have made a Wiki page with compilation instructions available: and there’s a Git repository you can have a poke around in too.