Monaspace Font

As a computer nerd, I spend a lot of time staring at text editors and terminal windows. As a result, I like them to be both pleasing to look at and easy to read… so I spend more time than I care to think about trying out different fonts and themes to make things both enjoyable and functional… which is important for someone with vision quite as bad as mine.

For my font, I’ve historically stuck to things from Nerd Fonts because they come with all sorts of extra glyphs that allow things to look nice in my terminal, especially when using Neovim (think things like icons for git statuses or programming language indicators next to open buffers.) Many of the fonts there also support ligatures, which is when multiple glyphs are combined together for something that looks more pleasing. For example, here’s some normal text with no ligatures:

And this is the same text with ligatures enabled:

Some developers have strong anti-ligature sentiments, but I rather like them… and under the hood, the glyphs themselves are unchanged; all that changes is how they’re represented on my device when I open the file.

These screenshots were actually taken from the site for the MonoLisa font, a beautiful work that I’ve wanted to try but didn’t quite want to pony up the money for… with so many great fonts available for free, I couldn’t see spending $70+ USD on one.

After GitHub Next, however, they announced the somewhat similarly named Monaspace font. It comes in 5 different variants that each have some pretty unique looks.

The Good

To start with, the font family just looks nice. I really enjoy the feel of Argon in particular, though I was also a bit surprised at how much I enjoyed Krypton. The ligatures are nice, and I’m petty enough that not having them is a non-starter for me with any font I’m going to be using in my terminal or text editor. More on that later.

The font also features what they’re calling “texture healing.” There’s a massive writeup about it on the official website linked to above that I won’t try to recreate here, but the short of it is that the font is able to preserve the monospace grid that anyone writing code will want while evening out the density to allow for text to look more natural by adjusting where letters are placed in the grid and how heavy each glyph is. The writeup is honestly pretty interesting with some nice animations that help to illustrate exactly what’s going on.

Some Python code with the Argon font.

The Bad

It’s hard to come up with many gripes about a font, but the oddity for this one is that the ligature settings are not a normal on/off toggle. Instead, there are a bunch of different ligature types for the font, and they need to be toggled on individually. My VS Code settings look like this as a result:

If you recall from my last post, VS Code is not my preferred editor, but it seems to be the only one (at least at the moment) supporting these settings. So while the ligatures look great in VS Code, I don’t see the same thing if I try to use a Monaspace font in Neovim or Sublime Text. Instead, I get zero ligatures.

On one hand, I can understand the idea. It’s a font from GitHub (owned by Microsoft) so they designed it for VS Code (owned by Microsoft.) On the other hand, I don’t see why anyone would want to have only a subset of ligatures enabled, so I’d obviously prefer to just have a normal on/off toggle like everything else and be done with it.

Ultimately, the suspect ligature design means I’m not using this font everywhere. I’m currently still using the JetBrainsMono Nerd Font for iTerm and Sublime. I do, however, have the Argon variant of Monaspace set for VS Code, which I do use on occasion. For example, I almost exclusively use it when writing Puppet since the official extension is only available for VS Code and offers a lot of quality of life features. It’s just a bit of a bummer that I don’t end up wanting to use the font in more places due to the limited support.

One response

  1. […] I’ve already mentioned several times before, I’m not exactly infatuated with Microsoft’s Visual Studio Code editor. It’s not bad — in […]