시몽

Status update, May 2019

This month is a little special: it’s been one whole year I’ve started writing status updates!

My list of projects has been growing, little by little, and I now spend a pretty big slice of my “open-source contributions time” doing reviews. While this gives me less time to code, it also allows these projects to grow way faster. Unfortunately this also means I need to prioritize tasks – for instance I cannot reply to all bug reports (leaving it to the reporter or someone else to investigate and send a patch). Of course, having regular contributors helps a lot maintaining these projects!

This month I’ve released new versions of slurp and grim! You can now provide a list of pre-defined regions to slurp, this enables quick selection of outputs and windows (see the README examples). slurp now also supports selecting a single pixel, so combined with grim and ImageMagick you can use it as a color picker. grim can write PPM files, this is useful to speed it up when piping images into another program. Big thanks to the contributors who added these features!

I’ve also re-written kanshi in C. It was written in Rust previously, and this has been an issue for this project1. I want kanshi to be as low-maintenance as possible, but since I’m not a Rust magician it takes time to add features and fix bugs. Rust as a language is complicated, which makes it difficult for new contributors to jump in and send patches. Last, a lot of bugs were due to the Rust parser library used by kanshi, and I wanted to use the new output-management protocol so some re-writing was needed anyway. kanshi is a small utility, so thankfully re-writing it didn’t take a long time.

I’ve contributed to drm_info, a very nice utility written by ascent12 to print information about your GPUs. I’ve added support for JSON output, which makes it possible for a machine to interpret the output… And makes it possible to build a database of GPUs: drmdb. drmdb is useful for Linux graphics developers when they want to know whether a feature is widely supported, or what pixel formats are available on a specific platform for instance. Please contribute by uploading your GPUs’ data!

I’ve volunteered to maintain the go-mbox package, updated the API to prevent mutating messages, and made it so messages aren’t stored in memory before being read/written. I’ve also merged various patches for other my Go e-mail libraries (go-imap, go-maildir, go-message and friends). foxcpp has helped quite a lot and is still actively adding new features to maddy, thanks!

Last, I’ve started mentoring M. Stoeckl for his Google Summer of Code project: Network transparency with Wayland. He already has made good progress with the waypipe proxy. There are still lots of interesting details to fix and optimize, but it’s looking very promising!

That’s all for this month! Thanks for reading!


  1. It doesn’t mean Rust isn’t a good fit for other projects! ↩︎


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

Right Out The Gate

Droppin’ Em

via Mike Blumenkrantz

Apple GPU drivers now in Asahi Linux

We’re excited to announce our first Apple GPU driver release! We’ve been working hard over the past two years to bring this new driver to everyone, and we’re really proud to finally be here. This is still an alpha driver, but it’s already good enough to ru…

via On Life and Lisp

I shall toil at a reduced volume

Over the last nine years I have written 300,000 words for this blog on the topics which are important to me. I am not certain that I have much left to say. I can keep revisiting these topics for years, each time adding a couple more years of wisdom and impro…

via Drew DeVault's blog

Generated by openring