시몽

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

Developing Wayland Color Management and High Dynamic Range

(This post was first published with Collabora on Nov 19, 2020.)Wayland (the protocol and architecture) is still lacking proper consideration for color management. Wayland also lacks support for high dynamic range (HDR) imagery which has been around in mov…

via Pekka Paalanen

A few ways to make money in FOSS

I work on free and open-source software full time, and I make a comfortable living doing it. And I don’t half-ass it: 100% of my code is free and open-source. There’s no proprietary add-ons, no periodic code dumps, just 100% bona-fide free and open source so…

via Drew DeVault's blog

Lockdep False Positives, some stories about

Lockdep is giving false positives are the new the compiler is broken.— David Airlie (@DaveAirlie) August 8, 2020 Recently we’ve looked a bit at lockdep annotations in the GPU subsystems, and I figured it’s a good opportunity to explain how this all works, a…

via stuff by danvet

Generated by openring