[HN Gopher] GNU Unifont
       ___________________________________________________________________
        
       GNU Unifont
        
       Author : remywang
       Score  : 316 points
       Date   : 2025-12-12 20:57 UTC (1 days ago)
        
 (HTM) web link (unifoundry.com)
 (TXT) w3m dump (unifoundry.com)
        
       | aidenn0 wrote:
       | 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...
        
         | Elfener wrote:
         | 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...
        
         | adrian_b wrote:
         | 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.
        
       | positron26 wrote:
       | > 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 wrote:
         | 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 wrote:
           | 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 wrote:
           | 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 wrote:
         | > 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 wrote:
           | 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 wrote:
         | 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.
        
       | TheRealPomax wrote:
       | 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.
        
         | foxrider wrote:
         | Yeah, I can't really speak well about other languages, but
         | these Armenian letters look really rough.
        
           | Kwpolska wrote:
           | The Latin letters look rough too.
        
           | ErroneousBosh wrote:
           | They all look really rough. It's like a font from a 1980s
           | home computer.
        
         | duskwuff wrote:
         | 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).
        
         | ErroneousBosh wrote:
         | The only problem with the Noto fonts (installed in Ubuntu for
         | example by default) is that now you have to scroll through
         | hundreds of useless squiggle fonts in your font picker.
        
         | shiomiru wrote:
         | > which aren't just free to use, but explicitly use the modern
         | SIL Open Font License.
         | 
         | Unifont is also dual-licensed under GPLv2/SIL OFL.
        
       | phkahler wrote:
       | 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 wrote:
         | 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 wrote:
           | +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 wrote:
         | 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!
        
         | somat wrote:
         | That web version is very neat. Solvespace is by far my favorite
         | cad, it ls hard to explain exactly why because it really is
         | quite limited compared to other cad packages, but I think it is
         | mainly because of the fluidity and shear joy of operation while
         | expressing constraints.
         | 
         | One of these days I need to dive into the code and figure out a
         | replacement for the modal "can not create constraint" dialogs
         | as those are the worst part of the whole experience.
        
         | torstenvl wrote:
         | This is awesome!
         | 
         | (Just so you know, RTL doesn't work. Hbyby comes out as y b y b
         | H. See https://imgur.com/a/HiXxqZ2 )
        
       | ekjhgkejhgk wrote:
       | 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.
        
       | magios wrote:
       | 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 wrote:
         | Why do you do this?
        
           | magios wrote:
           | 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 wrote:
         | 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
        
           | magios wrote:
           | i use 1920x1080 screen res as i see no point to any higher
           | res.
        
       | joeel84 wrote:
       | Amazing work!
        
       | phoronixrly wrote:
       | I like this better than the Google Sans Flex that made the front
       | page today.
        
       | jarbus wrote:
       | Been a proud user for a while at jarbus.net :)
        
       | nycticorax wrote:
       | 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?
        
         | IvyMike wrote:
         | > 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 wrote:
           | 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?
        
             | mariusor wrote:
             | It's a bitmap font:
             | https://en.wikipedia.org/wiki/Computer_font#BITMAP
        
         | adrian_b wrote:
         | 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 wrote:
           | No mention there of the fact that this is a _bitmap_ font. I
           | think that 's kind of important.
        
             | crazygringo wrote:
             | 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 wrote:
               | > 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).
        
               | crazygringo wrote:
               | Saying a font is designed for print doesn't mean it's for
               | literal professional printing.
               | 
               | It just indicates that the x-height isn't increased the
               | way it often is for a font designed specifically for
               | screens, and that you can have finer details like serifs
               | and thinner strokes. It just means it's intended for
               | high-resolution viewing.
        
               | 01HNNWZ0MV43FF wrote:
               | 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.
        
               | Kwpolska wrote:
               | While virtually all fonts support characters outside of
               | ASCII, there are few fonts that support _all_ of Unicode.
               | Unifont aims to be one of them.
        
           | charlieyu1 wrote:
           | I don't think covering only BMP is enough these days
        
         | hnfong wrote:
         | 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 wrote:
           | 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.
        
             | amake wrote:
             | Lots of the rarer CJK ideographs are outside the BMP.
        
               | runarberg wrote:
               | This was actually the first issue for my kanji learning
               | app
               | 
               | https://github.com/runarberg/shodoku/issues/1
               | 
               | A classic utf-16 bug, where I failed to grab the two
               | remaining bytes of these ideographs.
        
         | jayde2767 wrote:
         | I was also confused, until I clicked "Home" and realized the
         | link was not to the landing page.
        
         | Suppafly wrote:
         | >Shouldn't the first sentence on that website describe what GNU
         | Unifont actually is?
         | 
         | Tons of these open source projects have the same issue.
        
           | leephillips wrote:
           | https://lee-phillips.org/ghparty
        
       | asgs wrote:
       | 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.
        
       | remywang wrote:
       | I also made some fonts for playdate based on unifont:
       | https://github.com/remysucre/cuniform
        
       | KronisLV wrote:
       | 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.
        
       | ripe wrote:
       | 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 wrote:
         | Does that mean there is a separate file for each point size?
         | 
         | I'm realising I know very little about fonts.
        
           | Kwpolska wrote:
           | Nah, there's just one size in this case (16x16).
        
         | eviks wrote:
         | and BMP in this context is not BitMap, but Unicode Basic
         | Multilingual Plane (BMP) of the first 65,536 code points of the
         | Unicode
        
           | Sharlin wrote:
           | Amusingly, here it is _also_ BitMap [1]. Why they use an
           | obsolete noncompressed proprietary format instead of PNG I
           | don 't know.
           | 
           | Edit: looks like it's because BMP supports 1-bit packed
           | pixels and ~~PNG doesn't~~ (Edit to edit: this is wrong). The
           | file sizes are almost identical; the 8x difference in the
           | number of bits is exactly balanced by PNG compression! On the
           | other hand, PBM [2] would've been a properly Unixy format,
           | and trivial to decode, but I guess "the browser knows how to
           | render it" is a pretty good argument for BMP. macOS Preview,
           | BTW, supports all the NetPBM formats, which I did not expect.
           | 
           | [1] eg. https://unifoundry.com/pub/unifont/unifont-17.0.03/un
           | ifont-1...
           | 
           | [2] https://en.wikipedia.org/wiki/Netpbm
        
             | eviks wrote:
             | Maybe they set everything up before png was popular and
             | never changed the workflow since then (or didn't care about
             | the website to adjust anything)? After all, the PNG is only
             | about 2 years younger than the font
        
               | Sharlin wrote:
               | That's plausible. Or maybe they just liked the BMP vs.
               | BMP coincidence.
        
             | sltkr wrote:
             | > Edit: looks like it's because BMP supports 1-bit packed
             | pixels and PNG doesn't. The file sizes are almost identical
             | 
             | That's nonsense, PNG supports 1-bit pixels just fine, and
             | the resulting file is a lot smaller (when using
             | ImageMagick):                   $ file unifont-17.0.03.bmp
             | unifont-17.0.03.bmp: PC bitmap, Windows 3.x format, 4128 x
             | 4160 x 1, image size 2146560, resolution 4724 x 4724 px/m,
             | 2 important colors, cbSize 2146622, bits offset 62
             | $ magick unifont-17.0.03.bmp unifont-17.0.03.png         $
             | file unifont-17.0.03.png          unifont-17.0.03.png: PNG
             | image data, 4128 x 4160, 1-bit grayscale, non-interlaced
             | $ wc -c unifont-17.0.03.*         2146622
             | unifont-17.0.03.bmp          878350 unifont-17.0.03.png
             | 3024972 total
        
               | Sharlin wrote:
               | Thanks! I definitely should've double-checked. Apparently
               | it was just the image viewer that didn't bother
               | converting the 1-bit BMP to 1-bit PNG.
        
       | kccqzy wrote:
       | 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.
        
         | unleaded wrote:
         | >unless the purpose is specifically to have a retro effect
         | where you eschew modern fonts for aesthetic purposes
         | 
         | There are better fonts for this too e.g. Fusion Pixel Font for
         | CJK: https://github.com/TakWolf/fusion-pixel-font
         | 
         | (yes the readme is in chinese, use google translate or
         | something)
         | 
         | i think i saw a good pixel font that supported arabic too once
         | but of course i cant find it now..
        
       | edent wrote:
       | 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 wrote:
         | 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.
        
         | n2h4 wrote:
         | your blog is really cool
        
       | bborud wrote:
       | 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?
        
         | _emacsomancer_ wrote:
         | The Guix pages have styling: https://guix.gnu.org
        
       | swiftcoder wrote:
       | > Unifont only stores one glyph per printable Unicode code point.
       | This means that complex scripts with special forms for letter
       | combinations including consonant combinations and floating vowel
       | marks such as with Indic scripts (Devanagari, Bengali, Tamil,
       | etc.) or letters that change shape depending upon their position
       | in a word (Indic and Arabic scripts) will not render well in
       | Unifont. In those cases, Unifont is only suitable as a font of
       | last resort. Users wishing to properly render such complex
       | scripts should use full OpenType fonts that faithfully display
       | such alternate forms.
       | 
       | An important caveat, that while this is potentially a useful
       | fallback font to at least something for unknown glyphs, without
       | any sort of combining/shaping, it's not going to usefully render
       | a whole bunch of languages (i.e. languages like Arabic will be a
       | disaster)
        
       | kwk1 wrote:
       | Often I've seen font websites have a sort of "font hello world"
       | preview image, and adding something like that here would be
       | great. Apparently they're called "type specimens".
        
       ___________________________________________________________________
       (page generated 2025-12-13 23:00 UTC)