시몽

Just a tech.

Status update, January 2020

This month’s status update will be a little lighter than usual due to Christmas holidays. I’ve still got the chance to send a patches to quite a few projects, and… do a lot of releases! Weston, Wayland, Sway, mako and grim all have or will get a release this month.

The new mako release allows you to run notification actions with a new makoctl menu command, adds a new --config CLI flag to specify a custom config file path, and improves touch-screen support. On the master branch, I’ve also worked on adding a makoctl set command to change config options on the fly. This allows users to implement a “do not disturb” mode that can be enabled with a keybind, for instance. There are still some design issues with this approach, some more discussion is needed (thanks Bill Doyle for the great feedback!).

The new grim release makes the destination file argument optional: running grim will now drop a timestamped file in $XDG_PICTURES_DIR. Apart from this feature, a few bugfixes are included. At this point grim is mostly “done”, I don’t expect any new major feature. This is how I like software maintenance: boring releases, minor features from time to time.

In other Wayland news, I’ve continued to work on libliftoff. My experimental libliftoff-based glider compositor received a number of bugfixes, and I’ve taken some time to take a step back and think about the overall design.

I’ve started working on two big wlroots pull requests. The former adds a new wlr_output_layer API which will expose hardware planes to compositors, paving the way for performance and battery usage improvements.

The latter adds a new scene-graph API: this will reduce the amount of work compositors need to do in case they don’t want anything out of the ordinary. These compositors will be able to take advantage of hardware planes and support things like explicit synchronization without any extra work. If they want to do something fancy, compositors will still be able to go lower-level of course.

I’ve been starting some adaptive sync/variable refresh rate work too. What’s still missing is the Sway part, which has complicated implications due to the interaction with repaint scheduling. I have a plan, I’ll see if it works in practice. I want to make sure the feature works as expected, so I’ll probably create a test client (or patch weston-presentation-shm). After all of that is done, I’ll be able to draft a Wayland protocol to let clients opt-in for adaptive sync and send it for review to wayland-protocols. Soon™!

In mrsh news, progress has been continuing slowly but steadily. trap(1) and exec(1) have been mostly implemented. Various bugfixes have been pushed. And Drew DeVault has started imrsh, short for interactive mrsh. This is the simple, interactive POSIX shell we’ve all been waiting for!

Work on the koushin webmail has continued, with most of the hard problems tied to the plugin infrastructure solved. I’ve been focusing on hot reload, HTML e-mails and CardDAV support. While working on CardDAV, I realized Go is lacking a good WebDAV library. WebDAV is tricky to implement in Go, because the standard library’s encoding/xml package requires you to know in advance the complete structure of the XML document you’re going to parse. This doesn’t play well with WebDAV’s extensibility. Third-party XML libraries don’t support namespaces properly, which is a no-go when juggling between WebDAV’s and CardDAV’s. I’ve finally found a reasonable way to make encoding/xml work by delaying the parsing process for unknown XML elements. I’ve started writing a new WebDAV library based on this. It can already fetch address books from a CardDAV server and serve a read-only WebDAV filesystem. I’ll expand the library as I need more features.

That’s all for today, see you next month!


Questions, comments? Please use my public inbox by sending a plain-text email to ~emersion/public-inbox@lists.sr.ht.

Articles from blogs I follow

Designing and 3D printing a new part for my truck

I drove a car daily for many years while I was living in Colorado, California, and New Jersey, but since I moved to Philadelphia I have not needed a car. The public transit here is not great, but it’s good enough to get where I need to be and it’s a lot easi…

via Drew DeVault's Blog

mmuniq: When Bloom filters don't bloom

via Marek's idea of the day

The worst of time64 breakage

In preparing to release musl 1.2.0, I worked with distro maintainers from Adélie Linux and Yoe to find serious application compatibility problems users would hit when upgrading, so that we could have patches ready and reduce user frustration with the upgrade. …

via EWONTFIX

Generated by openring