Hacker News new | comments | ask | show | jobs | submit login
OpenBSD: New console font Spleen made default (undeadly.org)
96 points by kryptiskt 41 days ago | hide | past | web | favorite | 56 comments

The text sample on the author's site[1] is from Baudelaire's Le Spleen de Paris, so we can deduce the font's name also refers not to the organ but the other meaning of the word "spleen":

"Melancholy with no apparent cause, characterised by a disgust with everything."

[1] https://www.cambus.net/spleen-monospaced-bitmap-fonts/

I'm sad that nobody added a picture of how it actually looks.

I believe this is the relevant font: https://www.cambus.net/spleen-monospaced-bitmap-fonts/

edit: I'm very stupid and apparently missed the link to this same blog post in TFA. Leaving this here in case someone else makes the same mistake.

I am not sure if this looks terrible or brilliant.

I had typography as a subject in school and I would say this font is distinctive, but unlike many distinctive fonts it seems to reach it's distinctiveness not on the cost of readability.

I program myself and I know that terminal fonts have special requirements (e.g. certain characters like 1 and l or O and 0 should be visual distinctive) which this font certainly does reach.

Other than that it is a question of taste.

>I program myself and I know that terminal fonts have special requirements (e.g. certain characters like 1 and l or O and 0 should be visual distinctive) which this font certainly does reach.

They also have fixed width and height constrains. In the case of this font the original motivation was to be readable on a LCD panel at 5x8

The square upper-right corner of the "e" is an unusual feature that doesn't seem to harm legibility.

I prefer the convention of using a narrow zero to the slashed one in this font though, for exactly this reason.

I think I've seen this font before on HN, and I still think B and 8 are too similar (the 8 is quite blocky and only differs in the left corner pixels).

well it certainly looks better than the old one


It is the old Sun console font taken originally from OpenFirmware.

You say that, but to me that image evokes more than a decade of seeing machines boot up. Warm feelings.

They went from a terrible font to a bad font. There are so many nice ones [e.g. have a look at https://wesbos.com/programming-fonts/], why not pick one of these? Inconsolata or Menlo would be a big improvement over what they chose now. Missed opportunity, IMHO.

The console font is required to be a bitmapped font.

No reason you couldn't render a scalable font at a particular size to make a bitmapped version.

Several of those have proprietary licenses. Menlo is a (afaik proprietary) Apple product derived from Bitstream’s Vera Sans Mono and included with all Macs, Consolas was done by Luc de Groot for Microsoft Windows Vista and Office 2007, etc.

True, that's why I mentioned Inconsolata, which is licensed under the SIL Open Font License, which "is considered free by the Free Software Foundation" and the Debian Project. Not sure what OpenBSD's position on that license is though.


Its a copyleft license, so unlikely for OpenBSD to be a fan of it. OpenBSD prefers things that are ISC/2 Clause BSD/equivalent license.

Is there a common font license that would conform?

OpenBSD people are most certainly not FSF or Debian fans...

Source Code Pro, my favorite, is also under the SIL Open Font License 1.1.

Is that... a serif font? How in the heck? Why?

Though I gotta say, the variable stroke width might be less monotone and taxing on the eyes.

The Sun font was monospaced but just had serifs. Overall pretty terrible to stare at and very 90s.

The Go Mono font is a modern iteration of that concept. I love it. https://blog.golang.org/go-fonts

Those are vector fonts. We're discussing bitmap fonts instead.

Nothing surprising about vector serif monospace fonts, since Courier and variations―which likely constitute way over 50% of all use of monospaced fonts―are slab-serif fonts.

> The font family, called Go (naturally)

Meaning another search nightmare and all discussions about this font will need to be tagged "gofont" or similar. Oh well.

The gofont used for the body of that article is very reminiscent of Candara (or is it Nyala?). The monospaced font is surprisingly nice, though!

Admittedly, the link text in TFA is 'website'. Not 'spleen font' or something descriptive.

Am I the only one who finds fonts with thin lines unreadable for longer periods of time?

My eyesight is perfect, yet every time I run across one of these I switch fonts or at least zoom in until the line width seemingly doubles.

This is an unpopular choice, but I have recently switched all my terminals to the Go Fonts[1], and I couldn't be happier. Those who say that only sans-serif fonts belong in a terminal have been lying to me this whole time.

[1] https://blog.golang.org/go-fonts

Hey, I'm another fan of serifs in monospaced fonts! Go Fonts reminds me of the Luxi Mono font I've used for years on RedHat/Fedora machines.

Nowadays I love and only use Iosevka Slab: https://github.com/be5invis/Iosevka (3rd and 4th panel in the topmost screenshot)

I dislike monospace because by definition it has kerning problems. However, alignment problems are usually worse so I still use them in my terminals.

Monospace-serifs are interesting. They seem to ease the kerning problems. I just switch my terminal font from Inconsolata to Gofont Mono. Let's see in a few days how happy I am with it.

Thanks for the hint.

I have spent countless hours searching for the perfect programming font, and once I found Go Mono, I never went back.

Nothing wrong with serifs, except that typical monitors are too low resolution to do a good job with them. The sample you linked for example doesn't look good to me.

My Chromebook is about 150 DPI and it makes a world of difference compared to the typical 100 DPI desktop monitor.

Not sure if it's my browser, but the dashes in the example are rendered with anti-aliasing below them. That is going to suck after a while, a dash should only have on-off pixels, nothing inbetween.

It’s because of astigmatism which all people have, to a degree, meaning you have a different focal point for horizontal and vertical lines.

I also much prefer large text, even though my vision is pretty good.

Same here. I need a bit of thickness. Not necessarily bold, but meat on the pixel bones.

Font source with screenshots: https://github.com/fcambus/spleen

If somebody struggles with porting those fonts to their Linux, I just got it running and wrote about it here: https://koehr.tech/use-openbsds-spleen-bitmap-font-in-linux

Nice, this might give me the push I need to try BSD on my Dell Latitude 7370 (the XPS 13's cousin). The 3200x1800 display can be a bit hard to read with a default console font. Not that I spend a whole lot of time in the console outside of a terminal emulator, but it is still fun :)

Way faster is to use a proper font on Linux:

setfont ter-132n

You can then set it as the default font for all your terminals if you like it.

If terminus is not provided by your distribution, get it from http://sourceforge.net/projects/terminus-font/files/terminus... then ./configure etc. as usual. In the end, you just need to keep the matching psf file that you can then move along your other console fonts.

I feel like I tried this on Arch but it was still too small. I ended up using either the sun font or one of the cyr ones, can't remember. I've since moved back to KDE Neon on that machine, so I can't say for sure. I might pop in a USB stick and give it another go...

While I'm a huge fan of OpenBSD, you can actually just run this font on your current distro:


I did notice that, and even available in AUR for Arch. I just wasn't sure if their console font format was compatible with "setfont". Looks like I've got some playing to do (although I'd still like an excuse to give OpenBSD a try :))

If you want to try BSD, you might as well try FreeBSD and save a few headaches.

I tried to mimic my Linux shell environment to OpenBSD a few months ago and after a few days, I gave up and used FreeBSD and pretty much accomplished it.

I personally like OpenBSD but the manpower isn't on par with FreeBSD to smooth out the edges I think.

I'm slightly disappointed they didn't pick Comic Sans.

Sadly, no one has done a properly licensed, bitmap clone just for OpenBSD console use. It would really make a nice addition to any OpenBSD presentation.

With Microsoft recently doing so much with open source lately, you might even get them to donate it.

for those that miss: this is often used in openbsd circles somewhat as a tongue-in-cheek joke

I'm more than slightly disappointed :(

It's partly my bad eyesight, but the thin lines make the [ brackets ] look as though one's base isn't aligned properly with the other.

How do you make these work in Ubuntu? Tried copying them to /usr/local/share/fonts and running "fc-cache -f -v" it seems to detect them but lxterminal, fontviewer were still unable to find and use them...

Ubuntu has bitmap fonts disabled by default.

You can enable them as follows:

  cd /etc/fonts/conf.d/
  sudo rm -rf 70-no-bitmaps.conf && sudo ln -s ../conf.avail/70-yes-bitmaps.conf .
  sudo dpkg-reconfigure fontconfig
The Ubuntu wiki[1] has information about how you can be more specific and only enable a selection of fonts, if you desire.

[1] https://wiki.ubuntu.com/Fonts#Enabling_Bitmapped_Fonts

I don't know if the situation has changed since Spleen was first released [0], but I would desperately hope so as it is ridiculous to default in 2019 to a non-internationalized font, without support for even Latin-based Central European characters, let alone non-Latin alphabets.

> Another short term goal is to add support for Central European languages, with Polish being the immediate priority.

Other than that, looks good and I'm digging the French literary references.

[0]: https://www.cambus.net/spleen-monospaced-bitmap-fonts/

Awesome! The OpenFirmware font didn't work well at all with tmux sessions, causing artifacts due to it not having the characters for borders and other special characters. It seemed quite limited before.

I want to use ttf fonts on my Linux console. Is that possible?

It might be, since the console mode still can display graphics, e.g. Tux or the distro logo on boot―afaik it's done via the framebuffer driver. So you'd need to hijack the console mode, draw characters using a TTF-capable library, and output the result to the framebuffer. Haven't heard of anything readymade in this vein, though.

The more pertinent question, however, is “why?”, if you could boot at least bare X and xterm instead.

kmscon supports text rendering with pango library, I think it has fairly wide font support.

I'm unaware of tools to directly do this. Many years ago I wrote a tool to load a font with freetype and render it directly to the framebuffer. Would be relatively simple to do the same and dump out a subset as a psf font. Or perhaps even to add this functionality to kbd setfont(8) directly.

Applications are open for YC Summer 2019

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