logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

Announcing-wio.md (2782B)


  1. ---
  2. date: 2019-05-01
  3. layout: post
  4. title: "Announcing Wio: A clone of Plan 9's Rio for Wayland"
  5. tags: ["wayland", "wio", "plan 9"]
  6. ---
  7. For a few hours here and there over the past few months, I've been working on a
  8. side project: [Wio](https://wio-project.org). I'll just let the (3 minute)
  9. screencast do the talking first:
  10. <video src="https://yukari.sr.ht/wio.webm" controls></video>
  11. **Note**: this video begins with several seconds of grey video. This is normal.
  12. In short, Wio is a Wayland compositor based on wlroots which has a similar look
  13. and feel to Plan 9's Rio desktop. It works by running each application in its
  14. own nested Wayland compositor, based on [Cage][cage] - yet another wlroots-based
  15. Wayland compositor. I used Cage in [last week's RDP article][rdp-article], but
  16. here's another cool use-case for it.
  17. [rdp-article]: https://drewdevault.com/2019/04/23/Using-cage-for-a-seamless-RDP-Wayland-desktop.html
  18. [cage]: https://www.hjdskes.nl/projects/cage/
  19. The behavior this allows for (each window taking over its parent's window,
  20. rather than spawning a new window) has been something I wanted to demonstrate on
  21. Wayland for a very long time. This is a good demonstration of how Wayland's
  22. fundamentally different and conservative design allows for some interesting
  23. use-cases which aren't possible at all on X11.
  24. I've also given Wio some nice features which are easy thanks to wlroots, but
  25. difficult on Plan 9 without kernel hacking. Namely, these are multihead support,
  26. HiDPI support, and support for the wlroots layer shell protocol. Several other
  27. wlroots protocols were invited to the party, useful for taking screenshots,
  28. redshift, and so on. Layer shell support is particularly cool, since programs
  29. like swaybg and waybar work on Wio.
  30. In terms of Rio compatability, Wio has a ways to go. I would seriously
  31. appreciate help from users who are interested in improving Wio. Some notably
  32. missing features include:
  33. - Any kind of filesystem resembling Rio's window management filesystem. In
  34. theory this ought to be do-able with FUSE, at least in part (/dev/text might
  35. be tough).
  36. - Running every application in its own namespace, for double the Plan 9
  37. - Hiding/showing windows (that menu entry is dead)
  38. - Joint improvements with Cage to bring greater support for Wayland features,
  39. like client-side window resize/move, fullscreen windows, etc
  40. - Damage tracking to avoid re-rendering everything on every frame, saving
  41. battery life and GPU time
  42. If you're interested in helping, please join the IRC channel and say hello:
  43. [#wio on irc.freenode.net][webchat]. For Wio's source code and other
  44. information, visit the website at [wio-project.org](https://wio-project.org).
  45. [webchat]: http://webchat.freenode.net/?channels=%23wio&uio=MTA9dHJ1ZSYxMT0xNzQmMTM9ZmFsc2U4c