Status update, December 2019
I’ve stopped writing status updates for a while, because I had too little time while working at Intel. Now that I’ve joined SourceHut and I’m working full-time on open-source software, I have much more things to talk about when it comes to monthly contributions!
wxrc
I’ve spent my first month at SourceHut working on virtual reality. Together with Drew, we added GLES support to Monado and built wxrc, a wlroots-based compositor for VR.
We’ve got pretty far: you can use wxrc to spawn windows in a 3D space, interact with them, manipulate them, change the scenery and spawn 3D objects. The result is pretty cool!
New project: koushin
This month I’ve started building a new webmail called koushin. The goal is to write a simple, secure and fast webmail:
- Easy to deploy: written in Go, almost zero-configuration, single binary
- Extensible & customizable: themes allows to change how koushin looks, plugins allows to change how it behaves
- JavaScript is optional (for the default themes and plugins)
Plugins are designed to be pretty powerful, they can add additional functionality to existing pages and add new ones. They can be written in Go or in Lua, each language having its own upsides. Things like contacts, calendar, e-mail filters can be implemented via plugins. In fact, all of the current pages are already bundled in a plugin and don’t live in the core.
Drew contributed a SourceHut theme, see the cool screenshots below. Of course the project is very young so everything is still pretty barebones, but it should be easy to build upon the current architecture. Thanks Migadu for sponsoring this work!
libliftoff & glider
I’ve made good progress on the libliftoff front as well. I’ve focused on glider, an experimental libliftoff-based Wayland compositor. I want to prove that libliftoff’s design works and incubate future wlroots APIs.
I’ve got to the point where glider can render a surface, either by compositing it or by displaying it in a hardware plane if supported. I’ve made some early power consumption benchmarks and it seems like libliftoff does help improving battery life!
The next steps include adding support for multiple outputs to glider, performing more benchmarks (e.g. while playing a video or browsing the web) and make libliftoff smarter.
My FOSDEM libliftoff talk has been accepted, so if you’re interested in an introduction to KMS planes and a detailed status update, make sure to come watch it!
mrsh
Regarding mrsh, I’ve mostly fixed bugs this month. Almost all of the hard problems have been fleshed out and I think we’re not too far from a first unstable release. Thanks to everyone who reported their issues and sent patches! I’ll continue to focus on fixing more bugs and testing more shell scripts.
I’ve done a lot of other things as well. The new wayland-protocols governance document has been accepted, which means there are now clear processes to introduce new protocols and make changes to existing ones. GitLab merge requests are now used and CI is in place.
I’ve also worked on python-emailthreads, the library that powers SourceHut’s patch review UI. I fixed the unit tests, introduced new tests and fixed the bugs discovered by tests.
I figured out what caused quite a few crashes on output hotplug in wlroots. In Sway, I’ve added auto-detection of output scale, so your laptop’s HiDPI monitor should just work without any configuration.
In the next few weeks I’ll continue working on koushin, libliftoff and mrsh. Thanks to a generous contributor I also got my hands on a FreeSync monitor, so expect some updates in this area as well!