시몽

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

Upstream, Why & How

In a different epoch, before the pandemic, I’ve done a presentation about upstream first at the Siemens Linux Community Event 2018, where I’ve tried to explain the fundamentals of open source using microeconomics. Unfortunately that talk didn’t work out too …

via stuff by sima

Post Interfaces

March.

via Mike Blumenkrantz

Conformant OpenGL 4.6 on the M1

For years, the M1 has only supported OpenGL 4.1. That changes today – with our release of full OpenGL® 4.6 and OpenGL® ES 3.2! Install Fedora for the latest M1/M2-series drivers. Already installed? Just dnf upgrade --refresh. Unlike the vendor’s non-conformant…

via On Life and Lisp

Generated by openring