Announcing Wio: A clone of Plan 9's Rio for Wayland May 1, 2019 on Drew DeVault's blog

For a few hours here and there over the past few months, I’ve been working on a side project: Wio. I’ll just let the (3 minute) screencast do the talking first:

Note: this video begins with several seconds of grey video. This is normal.

In short, Wio is a Wayland compositor based on wlroots which has a similar look and feel to Plan 9’s Rio desktop. It works by running each application in its own nested Wayland compositor, based on Cage - yet another wlroots-based Wayland compositor. I used Cage in last week’s RDP article, but here’s another cool use-case for it.

The behavior this allows for (each window taking over its parent’s window, rather than spawning a new window) has been something I wanted to demonstrate on Wayland for a very long time. This is a good demonstration of how Wayland’s fundamentally different and conservative design allows for some interesting use-cases which aren’t possible at all on X11.

I’ve also given Wio some nice features which are easy thanks to wlroots, but difficult on Plan 9 without kernel hacking. Namely, these are multihead support, HiDPI support, and support for the wlroots layer shell protocol. Several other wlroots protocols were invited to the party, useful for taking screenshots, redshift, and so on. Layer shell support is particularly cool, since programs like swaybg and waybar work on Wio.

In terms of Rio compatability, Wio has a ways to go. I would seriously appreciate help from users who are interested in improving Wio. Some notably missing features include:

If you’re interested in helping, please join the IRC channel and say hello: #wio on For Wio’s source code and other information, visit the website at

Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~sircmpwn/ [mailing list etiquette]

Articles from blogs I read Generated by openring

Summary of changes for February

Hey everyone! This is the list of all the changes we've done to our projects and apps during the month of February. We'll also be reporting in our on position in the world, and on our future plans. Summary Of Changes Uxn, started working on a fa…

via Hundred Rabbits February 28, 2021

Contexts and structs

Introduction In many Go APIs, especially modern ones, the first argument to functions and methods is often context.Context. Context provides a means of transmitting deadlines, caller cancellations, and other request-scoped values across A…

via The Go Programming Language Blog February 24, 2021

Status update, February 2021

Hi! Once again my focus has been Wayland-related projects this month. A steady stream of improvements made it into wlroots: Xyene made the X11 clipboard code a lot more robust, bl4ckbone has made good progress on the upcoming Pixman-based software renderer, a…

via emersion February 22, 2021