Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Server Mono: A Typeface Inspired by Typewriters, Apple's SF Mono, and CLIs (servermono.com)
356 points by yankcrime on Aug 11, 2024 | hide | past | favorite | 99 comments


So, if you're going to demonstrate the box drawing characters — and in a monospaced font, I would — they should line up?

E.g., under "lines", the rows are overlapping; https://i.imgur.com/KnOP2Wu.png ; I would think they're only supposed to just touch, with no gap, no overlap.

The boxes, similarly, don't quite line up right. https://i.imgur.com/6pVYh9a.png (Even the 100% box isn't lining up right, although somehow what FF screenshotted != what it rendered. sigh.) The point being, you want these to tile seamlessly. Oddly, they tile differently in the pictures-of-font that break up the page. (Which I'm not sure what they're supposed to be? One is called "5af1d7a5-fa60-4827-9b4f-808cdb635d59" and has no alt text. They remind me of Dwarf Fortress though.)

As other people hint, this seems like the line height is cramped. I/l/1 ambiguities is a deal breaker for any terminal font, though.


Number One, Pipe Character, lower case L, upper case I, zero and O, Parentheses and Brackets, are so common pain points on coding and terminal fonts. Those should be painfully distinct.


The first thing I look at on ANY font is the capital "i." No crossbars? No dice.

This one has those and a distinguishable zero vs. O, so far so good.

Whoops; someone pointed out that 1 and l are indistinguishable. That's a major failing.


Maybe that's what they meant by "inspired by typewriters" (on many typewriters there was no 1, you had to use lowercase L)? But I agree that this is not a "feature" you want to have in a font that you use in terminals and/or for programming.




I was looking for this one.


> Whoops; someone pointed out that 1 and l are indistinguishable. That's a major failing.

Agreed.


I kinda feel like the difference between the 1 and l is still reasonably obvious, the top serif is significantly different. But it could be improved by removing the bottom left serif from the l.


I've never understood why the lowercase l and 1 so often look the same in monospace fonts. It's not like anyone actually writes an l like that — why not just a small bottom right hook? And maybe a top left hook as well? But a whole base is insanity.


My first typewriter didn't have a "1" key. You were supposed to type lowercase L when you needed a "1".

Underwood 255: https://typewriterdatabase.com/img/gunderwood%20_10166_15186...


Because of the positioning you can press "l" then backspace then "." and get a serif on the bottom which makes it look a little-more one-like.

Similarly you get a "!" by doing "'" backspace "."


I agree that this is a bad decision for programming, but the reason most fixed-width fonts do that is that they can look visually uneven if they don't use exaggerated serifs on narrow characters. It can even get to the point where words look like they have spaces in them if the wrong characters are next to each other.

Monospace (https://monaspace.githubnext.com/) has a feature that dynamically changes between different versions of characters and moves them inside their space in the font grid to make up for that. But even so, its bottom serifs on 1, I, and l extend to both sides.

Cascadia Code (https://github.com/microsoft/cascadia-code) has a lower-case L whose bottom serif only extends to the right. It's the typeface I use for writing code, and IMO, it's currently the best option available.


> It's not like anyone actually writes an l like that

Excuse me?!


> It's not like anyone actually writes an l like that

Counterexample: looking at https://www.nist.gov/srd/nist-special-database-19, the example in the manual has a lowercase L that’s just a vertical line.


Is that page showing the complete set of glyphs? I assumed it was a subset because I didn't see the degrees symbol ° and surely they have that.


They do line up, if you install and use the OTF version:

https://imgur.com/a/N2tNaiO

although some characters still seem to be missing, most of them work as intended.

edit: nevermind, looks like it was using Lucida Sans instead! what is going on? does the OTF only include ASCII or something?


> I would think they're only supposed to just touch, with no gap, no overlap.

Because of variations on how software terminals and GUIs render fonts, this is very tricky. That’s why so many terminal programs take over box-drawing characters and implement the glyphs themselves. This way the glyphs defined by the font are a rendering failsafe and it’s sometimes better to not even implement them and leave it to the systems font substitution mechanisms.

Hardware terminals had fixed vertical spacing, which made alignment much easier.


Yeah it's driving me crazy honestly -- why put art on there if it's not recognizable as anything?? It does indeed look like the overworld from DF, but not quite coherent enough...

FWIW everyone's complaining about this so I'll throw in the recent monospace release that absolutely blew me away: https://monaspace.githubnext.com/ Who needs hackers when you have Microsoft the evil tech conglomerate pumping out fonts, anyway?


Another good Microsoft monospace font: Cascadia. Something about it just makes it super legible for me when coding in it, plus it has nerd fonts built in without needing to be patched.

https://github.com/microsoft/cascadia-code


I use this one, too. I also love the (optional) ligatures for things like boolean comparisons.


To me the "art" blocks look like converted stills from a movie or TV show, or from existing artwork: two figures facing each other in the first, three figures in the second, a... galloping horse with a cloaked rider in the third? But I could be completely wrong on all of that.


Which OTF renderer? freetype?


For those commenting on the importance of character ambiguity, I completely agree, and offer "DP Sans Mono", a font specifically designed for unambiguous proofreading.

https://www.pgdp.net/wiki/DP_Sans_Mono

https://www.pgdp.net/c/faq/font_sample.php

font download link at https://www.pgdp.net/phpBB3/viewtopic.php?t=70714


Given the emphasis on being unambigious, it is interesting that the capital-eye (I) and lower case-ell (l) are the identical glyph in DP Sans Mono.


They are significantly different!


Here is what their own "Font Sample" page [1] shows me:

https://0x0.st/XWE_.png

This is magnified 2x (to show the similarity). Both the sample alphabet and the "character differences" shows uppercase-eye and lowercase-ell as the identical glyph, for DPSansMono.

[1] https://www.pgdp.net/c/faq/font_sample.php


Something is wrong with your browser. Here is what the font sample page actually looks like: https://pikwy.com/web/66ba462a0f6f4a66106b0a6a


I can't put my finger on it but I don't find this enjoyable to read at all.. so I don't know much about readability claims here. Maybe I'm an outlier.


The line spacing is way too tight (this is line-spacing: 1).

Obviously that is beneficial for ASCII-art (smaller vertical gaps), but plain text would benefit from at least 1.1 and maybe 1.2.

I am not a typographer but the cap height of this font (I think it's the cap height) appears quite large, when perhaps it would be better to have a slightly smaller cap height so the ASCII-art features would work well at line-height 1.0 without the letters feeling so vertically cramped.

Basically, slightly less-tall letters.

But as I say, not an expert.


line spacing beyond minimal ought not be an attribute of a font. I can see a "recommended" line spacing for some type of "vertical as well as horizontal beauty", but drives me nuts when choosing a font also chooses scads of whitespace.

I like to squeeze a lot of info on a page, why do other people get to say "no". Sure, space out your wedding invitation, I can deal, but on the daily text on my screen, that should be up to me.

I do prefer "typewriter" fonts that are more squoze horizontally, this one seems to have loosened the ol belt a little, maybe for more "squareness".


Oh I am not saying it should be.

The problem is that to resolve the readability issues many people seem to be observing on that page you need to set it to 1.1 or 1.2 (try it!)

But that will break the console pseudographics.

Part of the problem with this font appears to be large, space-filling (yes, squareness is another way to put it) glyphs, when if they had a bit more of a difference between the cap height and the ascender height the full-height pseudo graphical glyph stuff would still work without the textual characters feeling so cramped.

At least, I think that is right. I know just about this stuff to be wrong in important ways.

Either way there must be a solution to this; it feels like a missed opportunity.


The line spacing on the site reminds me of 8-bit computers with 8x8 pixel character cells. For example https://en.wikipedia.org/wiki/SpeedScript#/media/File:Speeds...


It does have that feel, but it's decidedly cramped compared to, say, the VT100's font, or even that of the VT52, which are both a bit closer to the "server" heritage they are alluding to.

Many other "code page 437" (console graphics fonts) do much better than this for readability at base line-height.


How do people keep linking to an anchor that doesn't exist? https://en.wikipedia.org/wiki/File:Speedscript_3.2_for_Commo...


It does exist, it just doesn't get linked in the page. Click on the media item, your URL bar has changed.


I did and I got my link to the File: page. The page source has no element with an id of that value.


For me it’s the weird mix of serifs and san-serif letters. Just off putting and weird it kind of feels like reading a note from a kidnapper made of clipped magazine letters pasted together.


I know nothing whatsoever about readability but this almost makes me ill to read. Very unsettling.


I don't like it. As someone else pointed out, the line spacing is too tight and that might be part of it, but I feel like it is too heavy (thick? Something in between bold and regular, whatever that is called).


I'd describe it as excessively bold/heavy.


Type writer fonts are hard to read in general. Kerning leads to readability in general.


Much good there but l and 1 are identical.


I'm really surprised this made it through, it's one of the handful of character sets that require distinct glyphs to prevent confusion/mixups.


Not quite, the 1's top serif extends to the left edge. https://postimg.cc/nXMt2qhx Still way too close for comfort.


To be fair, they did say it was inspired by typewriters, and most old typewriters don't have a '1', so you type a lowercase 'l' instead.


Then don't call it "server". Call it "typewriter".


How did they type '2' on those old typewriters?


There was a "2" key, just no "1" key on some models.


That are really old typewriters.


Actually, it was /most/ typewriters. Having a numeral one (1) key on a keyboard was something brought about by computer input keyboards (where there did, indeed, need to be a distinct numeral one separate from lower case-ell (l)).

But for most typewriters, the ell (l) key also served as the numeral one key.


not really, in the sense that it would be a really old typewriter, there aren't any new typewriters. I'm not super old, and typewriters I used in high school did not have a one. Nobody had an IBM Selectric at home.

BTW on the same subject of fonts, you want to be able to distinguish between 1, l, and I which are not always distinguishable.


I just googled for some typewriter pictures and only really old typewriters didn't have a "1".


I use proportional fonts for coding that don’t really distinguish between 1 and l, it doesn’t seem to matter in practice.


Yeah it's annoying in several fonts, not just that one. So I simply modify the font I'm using: one thing I do is I remove the lower left horizontal bar from lowercase 'l', that way it cannot be mistaken from a '1'.

Basically changing what's on the left to what's on the right:

    ***         ***
      *           *
      *           *
      *           *
    *****         ***
It's a little trick I've been using since so long I don't even remember since when I'm doing that.


> I simply modify the font I'm using

One of those minor nudges in life...

EDIT: and also a monospaced comment on hn to describe it :)



Love the zero, but agreed.


yeah ibm's courier has a horizontal top line for 'l' and a slanted top line for '1'


Well, instead of complaining here about 1 and l, I just filed a ticket on their GH repo and it already got resolved... https://github.com/internet-development/www-server-mono/issu...


I just saw it was updated. Great news!

> Added missing symbols + - =

> Changed the top of 1 to distinguish from letters.

https://github.com/internet-development/www-server-mono/rele...


I liked the 1=l because I thought it was intentional. This quick “fix” unsettles me.


Nitpick: the acknowledgements make a cute usage of "thy" and "thou hast". However, they actually refer to multiple individuals, and need to use "your" and "you have". Boring, and wrecks the aesthetic, I know...


I’ll just mention Berkeley Graphics and the excellent Berkeley Mono.

https://berkeleygraphics.com/typefaces/berkeley-mono/


$75? Haha Holy s...


I also highly recommend PragmataPro⁽¹⁾ if you prefer more characters per line. It’s €199 for the complete typeface, but well worth it for something you interact with for many hours per day, every day. More than 9000 characters have been hand-optimized from 9pt to 48pt to guarantee the best possible readability. (You can start off with the “Essentials” variant for only €19, which is definitely a bargain!)

⁽¹⁾ https://fsd.it/shop/fonts/pragmatapro/


Goes on sale every year during Black Friday. 100% worth it even without the discount. Love Berkley Mono too.

Iosevka (https://typeof.net/Iosevka/) is a good free alternative that I like to use for online IDEs/REPLs and such. (Berkley Mono's contract forbids this kind of usage, which I understand, but I wish I could use it more!)


I presume you’re indicating what an outstanding bargain this is?

For something you look at the entire day? Every day? Seventy five bucks, once?

I have the full licence as I use this typeface professionally. It’s the best money I’ve ever spent.


Fonts are gear acquisition syndrome for software developers


I love this font.


My favorite!


As an alternative, I would suggest to consider Iosevka [0]. I am using it in the browser and for coding.

[0] https://github.com/be5invis/Iosevka


I'm also not enthralled with this. Mind you, I really like Cascadia Code, which in its 2024 iteration includes NerdFonts characters. Finally, something done by Microsoft that I can recommend unreservedly!


> and the Internet Development Studio Company community

This reads very PR-ish and lame.


Font seems to not include the '<', '>', or '=' characters. I sympathize with font designers, there are so many glyphs you have to stare at - hundred if not thousands - for days and weeks on end; eventually you get tired of seeing them...


Not sure what the images on this page are supposed to be, they don’t load in iOS Safari. Also I’m not seeing the 1/I/l confusion other people are talking about, so it’s possible the font isn’t rendering in Safari either and it’s falling back to the default monospace font.


Here's how it looks on safari mobile for me. The lowercase l and 1 are exactly the same. https://imgur.com/a/I2r2ZQ6


Just a comment from behind the former Iron Curtain, I am really happy that you included letters with diacritics.

When it comes to ÁĚÝŘŠ etc., the Iron Curtain still sometimes rears its head from the screen, even in 2024.


Perfect line spacing, other fonts have it way too wide between lines, screen feels half-empty. Great font, switching to it . Medium weight would be lovely, though


Why do we need another font like this? It looks ugly anyway, plus has the other problems people mentioned about character distinguishability.


A single weight font doesn't really meet the needs of modern CLI environments does it?

And I don't get what the ASCII art have to do with anything. What does it depict? Screenshots from some scifi movie?

And finally oh god, l and 1 are literally the same.


Wait what? Do you seriously need bold fonts in your terminal? I find them annoying. I would much prefer a single weight.


It may not be just that. I sometimes end up using the light weight to improve readability, especially on light background, plus in some cases regular is more like semi-bold.


Tangential, but I quite like this quote: “Just as the scientist must think and experiment alternately, so the artist, the author and the scholar must alternate creation or study with participation in the life around them.”


How far back from the monitor should I be to be able to interpret what the ASCII art blocks are showing? Seems like maybe they were inspired by those 90's "Magic Eye" pictures.


I am not sure if I like the font or not, but I do like the corpus of text used to demonstrate the character rendering. At first glance, I thought it was Quenya or Sindarin, but I am not too sure.


Great SF improvements, waiting for Nerd Fonts version :)


It might be better to create a website with a light theme, especially for a typeface inspired by typewriters.

I just can't read it.


after trying a myriad of "programming" fonts, nothing feels more comfortable than Pragmasevka [0], a mix of PragmataPro and Iosevka.

[0] https://github.com/shytikov/pragmasevka


Personally, for a monospaced font, I prefer Jetbrains Mono. It's free and looks nice to me


line-height: 28px !important

It's not very readable with line-height set to the x-height, ironically. Cool font though.

Find some old demoscene / warez ansi headers and show it put some on the homepage perhaps?


After reading through the thread, I want to show my warm and honest appreciation for Server Mono.

I like the art! I like the feel and… idk, visual rhythm? One man’s inconsistent is another man’s lively. I like the tight linespacing; Am of the opinion that line art glyphs should touch each other across lines – of course! – but it can’t be solved at the font level. We need console-oriented text rendering that knows how to connect those glyps. Could be done automatically but seems awkward. Could be done even better with, say, some kind of anchor points embedded into the font file – in a particular UNICODE location maybe?

And I for one don’t really mind I and l and 1 looking similar. Distinct is better but I am fond of the historic imperfection. O and 0 absolutely need to be distinguishable though! haha


That image at the top looks like petsci art.


Interesting choices for 1 and l...


Moaning about my personal preference, it's not for me. I find the letter shapes inconsistent and line spacing is too narrow. My eyes hurt after reading a few lines.

But hey, well done on getting it out the door!


Line spacing is way too tight.


It makes their paragraphs hard to read regardless of the font.


Lowercase f and r are ugly.


Especially “r”, horrible.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: