And before anyone asks: No, this isn't a meme. Yes, I'm 300% serious.
Liberation Mono. Metrics that match Courier New, very legible at all font sizes, easy on the eyes and consistent, wide character support, free, none of that ligatures stuff (personal preference). https://en.m.wikipedia.org/wiki/Liberation_fonts
Some might also like Cousine as an alternative, a version called FiraCousine also supports ligatures for those who want them. https://en.m.wikipedia.org/wiki/Croscore_fonts
Here's an example of some fonts, for anyone curious: https://i.imgur.com/jYA6jt3.png
Some fonts like Arial are bad at this, capital "I" and lowercase "L" look the same. Calibri and Liberation sans both have slight differences, but not enough to not be confusing. Some fonts like Open Sans have crossbars on capital "I", which solves this problem. But that's not the only solution, fonts like PT Sans have a different looking lowercase "L" which is different enough not to cause confusion. Then again, technically you could also run into issues with the vertical line symbol "|".
Also, PT Mono is a nice font, but has issues with a small full stop symbol at smaller sizes (not as pronounced as Liberation Mono, annoying): https://en.wikipedia.org/wiki/PT_Fonts
Don't know why, it is of course not logical, but it is.
You usually sees it as the default monospace typeface in an old windows environment, probably with no anti-aliasing and with low resolution screen. That combination is an eyesore.
Courier New in an modern environment, with modern text rendering and anti-aliasing on high res screen is actually not bad at all.
Use Consolas, or Droid Mono, Lucida Console, almost anything.
Courier is so thin and terrible. Combine that with the default color scheme of most Linux terminals...ugh.
Maximize that terminal window on a 16:9 display when connected to a device that only gives 80 characters wide output as the final mail in the coffin.
https://quoteunquoteapps.com/courierprime/
It's slightly thicker to match what Courier from a typewriter actually looked like on a page with the ink bleed -- Courier New was modeled after the typewriter forms, not the result on the page, which to me has always been a massive error.
And Prime has beautiful, actual italics.
"To this day I haven't seen a monospaced font that I like more than Courier New", surely.
What is your quantitative measure for this, and what are the values of the other fonts you've tried?
Exactly.
But maybe it's the intent of the designer to have each glyph have the same width, not each "character", so the glyph LESS-THAN OR EQUAL TO (≤, https://www.compart.com/en/unicode/U+2264) would be the same width as < or =: it's ultimately up to the application/typesetting engine to decide whether or to substitute the character string "<=" as "≤", and to see if the font _has_ that character and how to render it to the screen.
I suppose you could have the typesetting engine choose to somehow read the two characters, note that there's a ligature substitution, and "fit" the ligature glyph into a two-character space (say, padding the glyph or horizontally stretching it), but I doubt that would be very pleasing.
But ultimately what gets displayed is up to the typesetting engine: it can choose to use or not use ligatures; it can choose the spacing between glyphs; whether to "fake" certain styles (such as italics), text justification — all sorts of behavior. Good typesetting is available in many more applications today than it was, say, 25 years ago. There was all kinds of janky behavior going on, both from the engines not using information in the fonts when it was available, and faking it or overriding it as well.
It appears to be because of `font-variant-ligatures: common-ligatures` being set on body.
https://fonts.google.com/specimen/Overpass+Mono?preview.text...
It's been fixed in Red Hat Mono.
Another example of form over function, to the utter detriment of function, IMHO.
https://github.com/tonsky/FiraCode https://news.ycombinator.com/item?id=10764527
But I think it's different: it uses double-width characters for two-character ligatures, so this doesn't break alignment.
I use the Homebrew package manager on macOS to install fonts. Probably works the same way when running Homebrew on Linux.
How I install one of my favorite fonts:
brew install font-meslo-lg-nerd-fontThe way you put this is funny, because your => renders as a ligature for anyone with a ligature font as their default font in their browser (me).
Installing is easy, and doesn't take much space, you set your editor and try it out.
There's no lock-in, switching back takes zero effort.
So I'm always keen to give them a go, some stick, some don't.
For what it's worth I'm in the no-ligature group. I want to see => not some ligature. But again that's subjective and there's room for all at the table.