Your New Monospace Font: Hack

A few cycles ago the VDG asked for the default Plasma font to be changed from Oxygen, a custom made but poorly maintained font for Plasma, to Noto.  Noto is a Google project which is intended to provide complete Unicode coverage.  It is based off Google’s Droid font for Latin and some other fonts for other scripts.  But it lacked a monospace font which is important to us hackers who likes to use a console and write code in it.

Annoyingly all fonts are poorly organised in interesting and mysterious ways.  In the case of Noto people think there’s a mono font because there does exist Noto Mono CJK but of course that’s only for oriental languages.  But search around a bit more and the Mono font is in the Git repository where it was committed at the start of the year only it’s not available in the download options on the website.  Some distros package it straight from Git because the website download is incomplete but then some don’t.  But trying it out a problem cropped up, there’s no Bold variant of the font which is used for highlighting in Kate and to some extent in consoles.

Looking around Adobe has Source Code Pro, a freely licenced font that contains all the goodness but many distros don’t package it.  The tools used to create it are non-free but for fonts I’ve never seen a package which actually compiles the font from source.  Even if the tools are free they’re as bad with their release management as you can imagine: for years Font Forge’s maintained website wasn’t findable with Google.  When I was doing the build system of Oxygen Font I had an option to use Font Forge but the default was just to copy the TTF files directly.  A TTF file can be opened and edited so it can be considered a “preferred modifiable form” which is what free software distros need to ship it.  Regardless if there’s no packages then it won’t get used so Source Code Pro isn’t an option.

Which is when a nice Debian spod pointed out Hack, an openly developed font using widely supported formats and tools based off Bitstream and DejaVu’s earlier work.  It supports lots of scripts, has bold and Italics and is widely packaged.  So I updated Plasma Integration, the Qt plugin to make Qt stuff look like Plasma stuff, to use Hack.  I also added kconf-update scripts to update old apps to Hack: Plasma’s new monospace font, coming in Plasma 5.8.

How Hack looks in Kate with source code

And for comparison, Oxygen Mono and Noto Mono without bold.

 

Facebooktwittergoogle_pluslinkedinby feather

19 Replies to “Your New Monospace Font: Hack”

  1. Personally i really dislike ubuntu but one thing i like is their font. Have you ever considered using their font as default?

  2. Just installed the hack font from the infinality-bundle-fonts package (archlinux, ttf-hack-ibx).

    And have to say it is looks good, thanks for the find and making it default.

  3. Very nice! Have been using these fonts for a while. Happy to see that next time a manual installation and configuration won’t be needed 🙂
    Thanks.

  4. Why not DejaVu Sans Mono? It has packages in all distributions, in many it’s the default monospace font, and it’s much much better hinted then Hack.

  5. Off-topic: don’t want to be a grammar-hole, but it’s ‘based on’, not ‘based off’ 😉

    Thanks for the font info!

  6. Many years ago, all Linux distributions used DejaVu Sans, Serif and Sans Mono everywhere, why not go back to that? It’s a well maintained font with tons of glyphs. Also, “Hack” is just a copy-paste of DejaVu Sans Mono with a few questionable changes: https://github.com/chrissimpkins/Hack/issues/106
    Just use DejaVu Sans Mono which has been in every Linux distribution forever and works really great

  7. Thank you for exploring the fonts; you’re right that it is easy to assume a monospace font exists when one sees “Noto Mono CJK”.

    Is there an open database of fonts that helps tackle the disorganised landscape you have described?

    Source for fonts needs to be made more easily available too. The TTF data is almost never what a font professional actually uses to modify a font, so it can’t constitute the preferred form of the work for modifying. Some other data is actually the source.

    Perhaps we need to reverse engineer these proprietary font data formats, to make free tools available and make it feasible to distribute the source for building the fonts.

  8. @Foo interestingly, the issue page you point out contains a large in-depth exploration of the font history and raison d’être, and largely addresses why the argument “just use DejaVu” doesn’t hold.

    1. Could you provide a tl;dr ? I’m not reading a small novel to know why I should use a slightly tweaked version of a font that has existed forever.

Leave a Reply

Your email address will not be published.

Spam-proofing. What is next? a, b, ...?