Hi, I’m lthms.

I don’t like syntax highlighting, but I like types and functional programming languages. He/him.

Interested in starting a discussion? Don’t hesitate to shoot me an email.

Monthly Retrospective: September 2022

It is September 18 today, and it has already been a month since I decided to start these retrospectives. This means it is time to take a step back and reflect of what happened these past few thirty days or soThere is the shocking news that I have started to use syntax highlighting again. But let’s not dwelve too much into it just yet..

Spatial Sway

A few days after publishing my August Retrospective, I have learnt the existence of Material Shell, an extension for Gnome that provides a very interesting user experience.

I tried it for a few hours, but the thing kept crashing (it’s probably on me, I did not even remember I had Gnome installed on my machine, and I would not be surprised the culprit was my dusty setup rather than Material Shell itself). The experience remained very promising, though. Their “spatial model” especially felt like a very good fit for me. Basically, the main idea is that you have a grid of windows, with your workspaces acting as the rows. You can navigate horizontally (from one workspace to another), or horizontally, and you choose how many windows you want to see at once on your screen.

And so for a few hours, I was a bit frustrated by the situation… until I learnt about how one can actually manage and extend Sway (the wayland compositor I use for several years now) thanks to its IPC protocol. I spend like three days experimenting, first in Rust, then in OCaml,This was actually an interesting thought process. I am using OCaml at $WORK for about more than a year now. I have curated a setup that works pretty well, and I am familiar with the development tools. On the contrary, I had not written a line of Rust for at least a year, my Emacs configuration for this language was broken, and I had lost all my fluancy in this language. Still, I was not expecting to pick OCaml when I started this project. and by the end of the week, I had a first working prototype I called Spatial Sway. It works pretty well, enough at least that I am using it daily for several weeks now. It feels clunky at time, but it works well, and I have been able to write a Waybar configuration heavily inspired on Material Shell UI.

Overall, I am pretty satisfied with this turnout. Writing a hobbyist software project is always nice, but the one you can integrate in your daily workflow are the best one. The last time I did that was keyrd, my little keystrokes counting daemon19,970,965 since I started using it at the time of writing this article.

Anyway, lots remain to be said about Spatial Sway, but I might save it for a bit later. I still have some key features to implement (notably, moving a window to another workspaces), then I will probably try to advertise it a bit. I am under the impression this project could be of interest for other, and I would love to see it used by folks willing to give a Material Shell-like experience a try, without having to deal with Gnome Shell. By the way, considering Sway is a drop-in replacement for i3, and that it implements the exact same IPC protocol, there is no reason why Spatial Sway is actually Sway specific, and I will rename it Spatial Shell at some point.

Figure 1: Mandatory screenshot of Spatial Sway.

This Website

On a side note, I have started to refine the layout of this website a bit. Similarly, I have written a new, curated home page where I want to highlight the most recent things I have published on the Internet.

I have been experimenting with Alectryon as a way to replace coqdoc, to improve the readability of my Coq-related articles. Unfortunately, it looks like this tool is missing a key feature I need. I might try to get my hand dirty and implement it my self, if I find the time and the motivation in the following weeks.

Finally, reading about how Xe Iaso’s talk about how she generates her blog was very inspiring too me. I can only suggest you to have a look.

Though not to the same extend, I too think I have spent way too much effort in my website. Most of my Coq-related articles are actual Coq program, expect the articles about coqffi which are actual literate programs. Hell, this website itself used to be a literate program of sort, until I stopped using my homegrown literate programming toolchain cleopatra last month. At some point, I have even spent a bit of time to ensure most of the pages of this website were granted a 100/100 on websites like PageSpeed InsightGood news, I’ve just checked, and it still is!. I had almost forgot.

A lot remains to be done, but watching this talk made me reflect on the job done. And opened my eyes to new perspective, too. We will see what translates into reality.