rio icon indicating copy to clipboard operation
rio copied to clipboard

[BUG] Emoji font configuration in Rio does not consistently apply `[fonts.emoji]` setting

Open liblaf opened this issue 1 month ago • 1 comments

Description

When configuring Rio with a dedicated emoji font:

[fonts]
family = "CaskaydiaCove Nerd Font"

[fonts.emoji]
family = "Twemoji"

many emojis do NOT display using the specified Twemoji font. Instead, some emojis are rendered with other fonts (I haven't figure out what fonts are they, hope rio can provide some tools for debugging fonts), even though the config clearly defines Twemoji as the emoji font family.

Workaround

The current workaround is to manually add a symbol map for various Unicode blocks:

[fonts]
family = "CaskaydiaCove Nerd Font"
symbol-map = [
  # <https://symbl.cc/en/2139-information-emoji/>
  { start = "2139", end = "2140", font-family = "Twemoji" },
  # <https://symbl.cc/en/2620-skull-and-crossbones-emoji/>
  { start = "2620", end = "2621", font-family = "Twemoji" },
]

[fonts.emoji]
family = "Twemoji"

However, this workaround is tedious and error-prone --- the user must identify and manually include many disparate Unicode ranges in the config. If any emoji falls outside of these blocks, it will not be rendered by Twemoji as expected.

Expected Behavior

All emojis should consistently use the font family specified under [fonts.emoji] when provided, regardless of their Unicode block.

Actual Behavior

Some emojis do not use the specified emoji font.

Example Screenshot of the Bug

Image

Screenshot After Applying Workaround

Image

liblaf avatar Nov 10 '25 02:11 liblaf

A list of more emojis without symbol-map:

Image

liblaf avatar Nov 10 '25 07:11 liblaf

Even when using Apple Color Emoji on macOS I've found recently that emoji do not show as expected.

dylmye avatar Nov 20 '25 09:11 dylmye