< Back

Mezzaluna: The Penultimate Step

So I very quickly fell out of the habit of writing once a week. Nothing really more to say about that, who’s bad at breaking good habits anyway. I have gathered you all here today to tell a tale. A journey as trecherous as any other, riddled with large obstacles and the thickest of thick fogs. Together with my partner, Squibid, we draw a weapon of might. Two handles, one blade. But right now, in this very moment, the blade is dull, having knicks and chips all over. Even so, its potential shines through and is immediatly recognizable as a noble, tride and true, mezzaluna. Well gosh, what is a mezzaluna anyhow?

An evenly curved blade with wooden handles on both ends

It’s just a knife, with a curved blade, used to cut herbs, vegetables, and sometimes pizza. It also seems to be a style of pasta, simmilar to ravioli (my favorite btw), but that’s unrelated.

Blogavator Pitch

But why do Squibid and I have a mezzaluna? Well the more proper way to put it would be that we have created Mezzaluna, a new, work in progress, Wayland compositor. The focus of the project is to maintain approachability and customizability as core qualities. This is accomplished by giving the compositor the best dang gum Lua API this world shall ever behold, modeled of the current best Lua API in the world, Neovim’s. This in combination with a batteries included, default configuration allows for a window manager novice to get up and running fast, given Lua’s incredibly shallow learning curve. In the same way, the other side of the coin reveals that simply reading a little bit of the config would allow an intermediate or advanced user to creatively form the compositor of their dreams, without any of headache that comes with writing from scratch. Essentially we are giving you a completely built Lego™️ set to play with, AND all the Lego™️’s you could ever want. Now how about that.

The Future is Bright

Development started super strong, with a lot of reasearch, reading source code, and trying to understand what parts need to go where to make the thing do the thing. Luckily right now, it kinda does the thing! As of writing, we have a decent api (though far from complete or final) allowing the manipulation of window position and size as well as fairly complex keybinds and some elementary hook based events. The hooks were actually an idea I though worked really well in emacs, suggesting its inclusion as part of the main design philosophy of Mezzaluna. Using this said API, we have cobbled together a terrible “mimic” of the classic DWM workflow, sans the ability to organize windows by tags. I don’t intend to reveal too much, as that would give me a reason to write more blogs, but I’m so excited for this project that I could go on and on and on.

If you wan’t to check the project out, you’ll just need wlroots-0.19, pixman, xkbcommon, and Zig 0.15. The default config can be seen within runtime/share/mezzaluna/init.lua. Feel free to have fun with it, reach out with questions (hdiambrosio@gmail.com) or just talk about it! And absolutely check out Squibid’s page for a fine time reading or exploring C projects you never knew you needed.