[BUG] Emoji font configuration in Rio does not consistently apply `[fonts.emoji]` setting
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
Screenshot After Applying Workaround
A list of more emojis without symbol-map:
Even when using Apple Color Emoji on macOS I've found recently that emoji do not show as expected.