GNU Unifont

(unifoundry.com)

177 points | by remywang 7 hours ago

18 comments

  • phkahler 7 hours ago
    We use GNU Unifont in Solvespace for the text window/property browser. It's built right into the executable. This turned out to be amazingly useful. Some people have CJK stuff in their designs and it "just works" on all platforms. I was also looking into hole annotations in CAD and was pleased to see the symbols for counter-bore and counter-sink are both already there in unifont.

    You can see unifont in the experimental web version here: https://cad.apps.dgramop.xyz/

    • stn8188 6 hours ago
      Wow, the web version is neat in its simplicity! Thank you for the work on Solvespace. It's far and away my favorite MCAD program and always my first go-to when I need to crank out a quick fixture to test PCBs. It's really so pleasant and easy to work with as long as my geometry is relatively basic (which it almost always is given my limited scope of work with mechanical design). I'm sorry I don't have any comments on the relevant topic of the fonts, just was excited to see Solvespace mentioned.
      • hackshack 5 hours ago
        +1; thanks from another satisfied user. I have an annual SOLIDWORKS plan, but SolveSpace is my go-to for quick stuff. It makes CAD fun. There is a clarity of design behind the software that gives it a zen-like feel.
    • graypegg 6 hours ago
      That's such a cool effect from just the choice of font. (Though I guess there are countless human hours spent on unifont and unicode as a whole)

      But I love the idea that even if your bronze age CAD guy wrote all the solid names in Linear A, no problem!

  • nycticorax 6 hours ago
    Shouldn't the first sentence on that website describe what GNU Unifont actually is? I guess it's a single copyleft font designed to have coverage of all (or nearly all?) unicode code points?
    • adrian_b 6 hours ago
      Well, the second and the third sentence describe very precisely what Unifont is:

      "This page contains the latest release of GNU Unifont, with glyphs for every printable code point in the Unicode Basic Multilingual Plane (BMP). The BMP occupies the first 65,536 code points of the Unicode space, denoted as U+0000..U+FFFF."

      This is suitable as a last resort font, which should display any character for which no match was found in the other available fonts.

      This is normally preferable to a last resort font that just displays the number of a character not available in your preferred fonts.

      • modeless 6 hours ago
        No mention there of the fact that this is a bitmap font. I think that's kind of important.
        • crazygringo 5 hours ago
          Indeed. Plus basic facts like: is it serif or sans? Proportional or monospace? Designed for GUI interfaces, terminals, or print? I still don't know.

          Just showing a single screenshot of it in its intended use would go a long way.

          I clicked on one of the charts and had no idea if the font itself was bitmap, or if it had just been rendered at a tiny size without antialiasing.

          • notpushkin 2 hours ago
            > Designed for GUI interfaces, terminals, or print?

            Given it’s a last resort font, I think it doesn’t make too much sense for print (unless you’re printing something that could be in any possible language).

          • 01HNNWZ0MV43FF 37 minutes ago
            Yeah I thought maybe the "uni" in "unifont" meant it was a single font that would morph between serif and sans somehow. I guess it stands for "unicode", from an era when Unicode support was not table stakes.
    • hnfong 6 hours ago
      Note that "nearly all" isn't "all". I have some side project that require rendering of very uncommon CJK characters, and Unifont does not display them as expected. (For that project, I used https://kamichikoichi.github.io/jigmo/ which was the font that was most complete in terms of CJK glyphs )

      Unifont seems to have about the same glyph coverage as my system default CJK font (unfortunately I don't know what it is).

      • syncsynchalt 6 hours ago
        Do you know if those characters are in supplemental planes? The BMP would only be glyphs from U+0000 through U+FFFF (though the first 32 and last two aren't printable, and wouldn't be included in this font).

        Another example would be emoji, which would probably now be considered "basic" by most people but have always been in a supplemental plane.

    • jayde2767 6 hours ago
      I was also confused, until I clicked “Home” and realized the link was not to the landing page.
    • IvyMike 6 hours ago
      > GNU Unifont is part of the GNU Project. This page contains the latest release of GNU Unifont, with glyphs for every printable code point in the Unicode Basic Multilingual Plane (BMP)

      I mean that's pretty close no?

      • smlacy 6 hours ago
        Still doesn't exactly say what it is? I get that it's glyphs for printable characters, but honestly it could be a PDF, video, collection of PNGs or SVG files, an Adobe Illustrator file, a linux distribution, a web browser, or pretty much any other piece of software or data format. I presume it's a TTF or OTF font file?
  • ripe 5 hours ago
    For others who might be as confused as me:

    GNU Unifont is a bitmap font. It provides a fixed glyph for every code point in the BMP. It also covers additional code points in other planes.

    I am guessing this is useful for writing editors that can edit Unicode text without knowing anything about various languages and their conventions. Authors who try to use this font to compose documents in (say) devanagari will have to learn the Unicode characters "in the raw", because I don't see a shaper for devanagari, so they won't get feedback that looks like real text.

    If anyone can explain this better, please do!

    • kristianp 1 hour ago
      Does that mean there is a separate file for each point size?

      I'm realising I know very little about fonts.

  • edent 4 hours ago
    It also looks beautiful when printed out - I made it into a spiral which hangs on my wall.

    https://shkspr.mobi/blog/2022/07/the-mostly-complete-unicode...

    • pilaf 2 hours ago
      That's awesome, what size did you print it?

      Are the random sparse Chinese characters floating around the main spiral a natural part of Unicode, or did you put them there for effect? I like how the whole thing looks like a galaxy and those characters like background space debris.

      I also like how emoji fall neatly around the outer rim. I had fun finding the Earth emoji.

  • magios 6 hours ago
    i use this font system wide, forced as the only font in firefox, with web or downloadable fonts disabled. i also have my some of my own characters in csur, the conscript unicode registry, that is mapped to u+e000 thru u+f8ff so the unicode codepoints used by random webpages for various glyphs show up as my own. qt is a pain to use sometimes with unifont only but iirc QT_FONT_DPI=128 environment variable fixes that. i just wish i could get unifont only to work in games like rimworld.
    • oconnore 6 hours ago
      Why do you do this?
      • magios 6 hours ago
        because i prefer monospaced pixel fonts, tho the underlying engine requires the ttf and now otf font, which is a vector format in order to render.
    • luqtas 3 hours ago
      how can you? i just installed it and i had to bring HN to 200% zoom... the rest of my system (XFCE) feels somewhat OK with it
  • ekjhgkejhgk 7 hours ago
    You know, when I see GNU, I don't necessarily think it's the best software in all dimensions, but it's almost the best in terms of respecting its users.
  • aidenn0 7 hours ago
    I had to uninstall unifont to get nice looking CJK fonts in Firefox; somehow the font-fallback for my font was picking unifont over all of the other fonts installed...
    • adrian_b 6 hours ago
      The right way to solve your problem is to go to Firefox Settings/Language and Apperance/Fonts, then click on "Advanced".

      There you can set what fonts should be used by Firefox to display each script/language, including Chinese, Japanese and other CJK variants.

      If you do not configure this, then it is indeed unpredictable which fonts will be used by Firefox to render the Web pages, unless it can match exactly a font requested by the page.

    • Elfener 6 hours ago
      I've reproduced issues with Unifont's glyphs being invisible in firefox and chrome (at different times, on what seems like certain versions), with much confusion. There are a few issues on the nixpkgs issue tracker about this, including one about Noto Color Emoji doing the same thing.

      I love fonts...

  • remywang 5 hours ago
    I also made some fonts for playdate based on unifont: https://github.com/remysucre/cuniform
  • bborud 3 hours ago
    Why does every GNU web page look like 1996? This actually matters. Even stripping the page down and removing any styling would make it look more trustworthy less like an abandoned project.

    Perhaps a GNU style could be something we could help fund?

  • KronisLV 5 hours ago
    Really like the idea of a font with extremely broad glyph support, sadly it looks really blurry on any custom size, like if I'd try to use this font in my IDE but would want to make it smaller so I can fit more text on the screen.

    For that particular use case (tbh mostly aesthetics than glyph support), I also found the TTF version of Terminus to be pleasant: https://files.ax86.net/terminus-ttf/ though JetBrains Mono is good enough for me to not venture far away from defaults, albeit maybe Liberation Mono / Cousine was the peak of readability at somewhat small sizes out of any font out there for me.

    Wonder if the Potrace approach of Terminus TTF version would work for Unifont. I imagine that Unifont is a pretty good default when doing shipping labels and for such utilitarian use cases.

  • TheRealPomax 7 hours ago
    The problem with Unifont is that is was never designed to actually support real text, it just has glyph support. So if you need "it can do every language I might want, while looking pretty good" you're far better off with the (much newer) family of NoTo fonts, which aren't just free to use, but explicitly use the modern SIL Open Font License.
    • duskwuff 6 hours ago
      Noto is also a scalable font with multiple weights and styles (e.g. bold, italic, etc). Unifont is a 16-pixel bitmap with no styles, so it's only really usable at one size (or maybe two if you want 32px text).
    • foxrider 7 hours ago
      Yeah, I can't really speak well about other languages, but these Armenian letters look really rough.
  • kccqzy 5 hours ago
    Please don’t use this unless the purpose is specifically to have a retro effect where you eschew modern fonts for aesthetic purposes. Because for any other purpose this just looks terrible, even for English text. Scripts requiring special shaping won’t be supported well. I don’t think it even supports different shapes for the same CJK character according to the language.
  • asgs 6 hours ago
    it is so nice of them to explain the fact using the GNU Unifont in commercial non-free softwares clarifying when it is required to be published to public domain.
  • joeel84 6 hours ago
    Amazing work!
  • phoronixrly 6 hours ago
    I like this better than the Google Sans Flex that made the front page today.
  • outside1234 5 hours ago
    Are these woke fonts?
  • positron26 7 hours ago
    > A user has asked if GNU Unifont can be used with commercial (non-free) software.

    One can be forgiven for thinking the author means to imply that all commercial software is non-free. It is a further disappointment that anyone has to ask.

    Open source was right to get rid of the intentional and unintentionally anti-commercial motifs that only got in the way of paid open source development.

    • pwdisswordfishy 7 hours ago
      Ironically, it's the FSF which discourages the use of "commercial" to mean "non-free":

      https://www.gnu.org/philosophy/words-to-avoid.en.html#Commer...

      • ekjhgkejhgk 7 hours ago
        Obviosuly discourages because they're not equivalent and creates confusion. Stallman himself was selling copies of Emacs while releasing it under a Free license.
      • positron26 6 hours ago
        Some may be confused into thinking this reply is a correction. I don't mean to appear to rebut.

        We know that the FSF is aware of the problem. The trouble can only be if we expect more success from repeating the same tactics for the next forty years. I would blame no one for expecting the FSF to stay the course and to achieve similar effects. I would also not blame them for choosing a different path for themselves and recommending so to others.

    • F3nd0 6 hours ago
      > One can be forgiven for thinking the author means to imply that all commercial software is non-free.

      Do they mean to imply this? It can also be read as a clarification about the mentioned software, not all commercial software in general. Could just be poor wording.

      > Open source was right to get rid of the intentional and unintentionally anti-commercial motifs that only got in the way of paid open source development.

      Open source did succeed in avoiding the problem present in English language, but in doing so, shifted focus away from freedom and onto different confusing motifs. A rare word like 'libre' arguably does an even better job while staying true to the original ideas behind the term 'free'.

      • positron26 6 hours ago
        I do believe it was just poor wording.

        I don't feel strong disagreement with the four freedoms, but the biggest reason I've gone fully _OSS and intentionally avoid "free/libre" is because I don't want to endorse the FSF tactics and because I want to encourage others to demand more radical innovations instead of forty more years of the same.

        What I find most disappointing when I talk to the FSF is that if I bring up social finance and technically enabled social decisions that can make social finance a lot more effective, it is rather as if I have spoken some alien language. I believe the non-programmer needs a lever to choose the development model used by programs they rely on. To the FSF insiders, such thinking is so orthogonal as to generate no reaction. If I say "a billion users are important," they refute the necessity. They are content to be monastic, conveniently propped up by donations for saying nice things. I find such abandonment inexcusable, and I get fired up talking about it.

    • aidenn0 3 hours ago
      There's also the implication that all non-commercial software is free. There's plenty of non-free (as in libre) software released by hobbyists.
  • jarbus 6 hours ago
    Been a proud user for a while at jarbus.net :)