6

Announcing Wio: A clone of Plan 9's Rio for Wayland

 3 years ago
source link: https://drewdevault.com/2019/05/01/Announcing-wio.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
A clone of Plan 9's Rio for Wayland

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:

  • Any kind of filesystem resembling Rio’s window management filesystem. In theory this ought to be do-able with FUSE, at least in part (/dev/text might be tough).
  • Running every application in its own namespace, for double the Plan 9
  • Hiding/showing windows (that menu entry is dead)
  • Joint improvements with Cage to bring greater support for Wayland features, like client-side window resize/move, fullscreen windows, etc
  • Damage tracking to avoid re-rendering everything on every frame, saving battery life and GPU time

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

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

Articles from blogs I read Generated by openring

Go on ARM and Beyond

The industry is abuzz about non-x86 processors recently, so we thought it would be worth a brief post about Go’s support for them. It has always been important to us for Go to be portable, not overfitting to any particular operating sys…

via The Go Programming Language Blog December 17, 2020

Status update, December 2020

Hi all! This status update is the 24th one, so it’s been 2 years I’ve started writing those now (ignoring a little hiatus). Time flies! This month I’ve invested a lot of time into wlroots. My main focus has been renderer v6, which has now been internally rol…

via emersion December 16, 2020

What's cooking on Sourcehut? December 2020

A brisk wind of winter chill sets a stir down my spine, as I sit down with a fresh cup of coffee to yarn a story of careful engineering and passionate spirit that took place over the course of 30 days. The last 30 days. Cause this is the monthly “what’s cook…

via Blogs on Sourcehut December 15, 2020
The content for this site is CC-BY-SA. The code for this site is MIT.

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK