Snippet to override emoji rendering?

What I’m trying to do

Hello, I’m looking for a way to prevent emojis from rendering, I just prefer the look of unicode. I’m pretty new to CSS, would it be possible for me to make a snippet to achieve this? From my understanding, emoji rendering is tied to the device.

Things I have tried

I’ve tried removing “Apple Color Emoji” and “Segoe UI Emoji” in the editor window. This works and changes most old emojis to their unicode counterpart, but is undone every time I close/reopen my vault. I also assume this wouldn’t carry over if I opened my vault on another device.

I’ve been looking for this as well. Your post inspired me to find a solution, turns out it is a lot easier than you would think.

First, install a emoji font locally. I used Noto Emoji (https://fonts.google.com/noto/specimen/Noto+Emoji). You will have to do this on all devices you want to render. Then, under Settings > Appearance, add the font to both the Interface font and Text font sections at the end of the list. If you use emoji in headers, you can add the emoji font using a plugin like Style Settings. That’s it!


If anyone has a different solution, please share. Note that this does not appear to work on iOS.

See also https://blog.optional.page/optional/optionals-guide-to-custom-emoji-in-obsidian which uses CSS, but essentially is doing the same thing. I haven’t tried this method.