Unicode symbols displaying as boxes


#1

I have a fancy prompt that e.g. displays the Unicode lock symbol (U+1F512) if I’m in an SSH session. When I edit the file that sets the prompt using Vim in an iTerm2 that is using the Monaco font, the symbol is displayed graphically. However, when I open the file in Atom, I only get a box standing in for the symbol, even when I manually set the font family for the editor.

This is unfortunate, how could this be fixed?


#2

Okay so I don’t know anything about fonts apparently :smiley: Of course it can’t be from the font since it’s a multicolored icon, so it’s iTerm2 that’s drawing that by itself.

That being said, it’d be way cool if Atom could do this too.


#3

It’s actually OS X that renders the emoji for iTerm, but I think Chrome uses its own font rendering, so Atom can’t display it easily without using images.


#4

You don’t need any images to render Unicode.

Actually, if your OS doesn’t suck, you’ll see the lock right here: :lock:
(if it does suck though, you’ll see a box or some other replacement crap). That is called a glyph.

There are also emoji.

Notice that there are two issues confused here:

  1. proper rendering of text symbols beyond BMP,
  2. bonus eye candy of colorful emoji for some of the above symbols.

For an editor, not having 2 is OK; not having 1 is complete suckage. Especially if the editor in question is pretending to be “for the 21st century”.


#5

Ok, after some hunting I conclude that Atom doesn’t suck that much with Unicode.

The issue can be worked around by explicitly configuring a list of fallback fonts in SettingsFont Family. My first try on a Linux reads:

DeJavu sans mono, Droid Sans Fallback, Symbola

Head of the list is the “primary” coding font determining how my Ascii looks like; the latter ones are backup fonts for weird characters from supplementary planes.


It’d be nice if Atom did some kind of intelligent font fallback though (works out of the box™-class).


#6

Atom uses Chromium’s rendering engine for the UI. The font fallback selection is done by Chromium (and possibly the OS), not Atom. I’ve never run into a glyph that I can’t display running Atom on OS X and I don’t have to manually configure fallback fonts, it’s done for me automatically.

For example, I just pasted this Devanagari text रृ रॄ ल लृ लॄ ऌ ॡ (taken from an old Issue) into Atom. My font is configured as:

And it was rendered without boxes, with automatic fallback fonts:

Is it possible that Chromium is relying on the OS to supply fallback fonts and something is not working for you?