Status update, July 2018
Here we are again, a month has passed. While this month has been quieter relative to June in terms of new projects, a few cool things still happened, and I’ll describe them in this post.
In the sway/wlroots universe, I mostly fixed some bugs and reviewed a lot of pull requests (in fact, 69 pull requests). We’ve shipped another alpha release, and our focus is now the first beta. We’re getting there! Apart from these, I’ve put some effort into an improved gamma control protocol: the current version is undocumented and has issues with big gamma tables.
I’ve released a new version of mako, which now supports criteria! This means you’ll be able to style differently urgent notifications, notifications coming from your e-mail client, the hidden notifications placeholder or a more complicated combination of those. I’ve also merged a few slurp patches: it’s now possible to customize the appearance of the region picker, including colors and displaying the region’s position and size. Finally I’ve added support for the screencopy protocol to grim, which brings better performance.
If you missed it, my xdg-decoration protocol has been merged in
wayland-protocols
! That’s very good news, that means we now have a standard
way of negotiating SSD. I expect various projects to gradually add support to
this protocol. The Arch package has just been updated a few hours ago, so
my wlroots pull request will probably be able to be
merged fairly soon. For instance, the Smithay guys already have a
pending pull request to support it.
I’ve submitted an Xwayland patch to fix pointer input
issues on transformed outputs (outputs rotated by 90 degrees for instance).
Alongside with this patch I also changed the description in the xdg-output
protocol to make sure the transformed outputs case is correctly understood, and
changed the description of the wl_output
interface to allow omissions of the
physical size (for projectors and virtual outputs). While these are small prose
changes, I think they are still important.
mrsh has recently received some love. The parser has been rewritten, it used
to closely follow the POSIX spec expectations relative to lexing and it resulted
in convoluted code. Hopefully this new simple recursive descent parser can be
more readable while still being compatible with the spec. I’ve also added some
clean abstractions for tasks with the help of sircmpwn. This design is able to
handle nested asynchronous and synchronous operations, which is neat. That means
things like echo abc | cat >out
and { sleep 5; echo hey; } & ls
now work as
expected. I think I’m going to focus on job control and variable expansion next.
I’ve also improved my Web Key Directory Go library. In short, WKD specifies a standard way to distribute public keys for a domain. The GPG utility supports it and I think it’s a handy alternative to classic public key servers. Since I use the Caddy web server, I’ve created a very simple plugin to ease the setup process.
And one last upgrade: I’ve added LMTP support to the server part of go-smtp, this allows the library to be used for local mail delivery.
I think that’s it! I’ll do my best to continue to work on these projects. I’ve some thoughts about mail servers so I might end up messing with some of my Go email-related libraries. I’d also like to do some renderer work in wlroots, for instance improving the multi-planar image support. We’ll see how this goes!