Fonts like Noto Color Emoji break ALL Emoji on Windows

Steps to reproduce

  1. Download Noto Color Emoji from Google Fonts
  2. Install on system (right-click, “Install” on Windows)
  3. Open Obsidian (even under sandbox mode)
  4. Enter in emoji, such as :smile: or those that use zero-width joiners (ZWJ) like 🏳‍⚧
  5. Select font under appearance (works on all, demonstrated with Text font)
  6. Save and close settings modal
  7. Observe that all emoji have disappeared

Did you follow the troubleshooting guide? [Y/N]

Y

Expected result

Emoji should render, and preferably better (via standard ZWJ combos supported by the font, as on Obsidian for Android, etc) than the default on Windows (which is falling back to Segoe UI for text font and likely the Segoe UI Emoji as well, given it’s rendering Microsoft’s Windows 10 April 2018 version of the smile emoji).

Actual result

No emoji render at all, so no fall-back is occurring, so some part of Obsidian is getting caught on the emoji and seemingly picking nothing as the correct glyphs to render here (not even tofu, so Noto still holds, ironically).

Environment

Sandbox Vault.

SYSTEM INFO:
	Obsidian version: v1.4.13
	Installer version: v1.4.5
	Operating system: Windows 10 Home 10.0.19045
	Login status: logged in
	Catalyst license: insider
	Insider build toggle: off
	Live preview: on
	Legacy editor: off
	Base theme: dark
	Community theme: none
	Snippets enabled: 0
	Restricted mode: on

RECOMMENDATIONS:
	none

Additional information

Below are the above steps (from 4 onwards) recreated in the Sandbox Vault:

Screenshots

1 Like

As an addendum, I have been able to recreate this on a difference device running Windows 11 (don’t ask why it says Windows 10 Home in the system info below, this is a laptop that came pre-installed with Windows 11, much to my annoyance). As it is Windows 11, the emoji will look different as Segoe UI Emoji was updated alongside it, however the same issue persists.

As sandboxed:

SYSTEM INFO:
	Obsidian version: v1.4.13
	Installer version: v1.4.5
	Operating system: Windows 10 Home 10.0.22621
	Login status: not logged in
	Insider build toggle: off
	Live preview: on
	Legacy editor: off
	Base theme: dark
	Community theme: none
	Snippets enabled: 0
	Restricted mode: on

RECOMMENDATIONS:
	none
Screenshots

The issue with specifically Noto Color Emoji seems to be that Windows doesn’t support the colour model used in that font.

I think theoretically it should work with the “WindowsCompatible” edition included in the zip in the Github release, but I haven’t managed to make it work on my Win10 machine. It shows up in the font list, but no emojis display when I use it. (Other emoji fonts such as Windows’s own Segoe UI Emoji or Twemoji do work.)

1 Like

I think I may have found a way to use the Noto Color Emoji font in Obsidian without installing the font onto Windows.

(By the way, confirming here I too cannot get the Noto Color Emoji WindowsCompatible font to work on my Win10 computer in any application at all.)

Here’s how I did it:

  1. Make sure you have the files for the Noto Color Emoji font.

  2. Install and enable the community plugin Custom Font Loader (available in the plugin store).

  3. In your vault, in the .obsidian folder, create a subfolder called fonts.

    • This is where the Custom Font Loader plugin will look for fonts to use.
  4. Put the font file Noto-COLRv1.ttf in this /.obsidian/fonts/ folder.

  5. Relaunch Obsidian, so that the plugin sees the new font we put there.

    • Perhaps just disabling then enabling the plugin might also do. I haven’t tested.
  6. With Obsidian relaunched, open the settings window. In the left panel, under the Community plugins heading, select Custom Font Loader to open settings for this plugin.

  7. Under the Font heading, select from the dropdown menu Noto-COLRv1.ttf

  8. Toggle the Custom CSS Mode option to enable it.

  9. Under the Custom CSS Style heading, edit the input box to be :root {}

    • This means we are not assigning any CSS code in practice.
    • This field cannot be left empty, as the plugin will automatically fill the default value back in.
  10. Now you can refer to the Noto Color Emoji font anywhere by the name Noto-COLRv1 (the file name). For example,

    • In Obsidian’s setting window, under Options > Appearance, you can manually add the font name Noto-COLRv1 into your font stack in Interface font, Text font, or Monospace font.
    • In your custom css file for your vault, you can declare font-family: 'Noto-COLRv1';

Hope this helps!

1 Like