[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)