Working on a minimal Linux setup sometimes creates very basic issues. In this case, I was not seeing emoji in the text fields of GoldenCheetah. Instead, an empty rectangle box was shown. In Firefox the emoji did show up fine.

The issue has to do with how fonts are selected. Specifically, it seemed when a character (such as an emoji) was not found in the current font, the font selection would not automatically try another font. A regular font does not bother implementing emoji, instead relying on dedicated emoji fonts to handle this.

I made this explicit for the “Noto Sans” font I am using in GoldenCheetah. Edit or create the file ~/.config/fontconfig/fonts.conf (assuming default XDG folders, if you don’t know what that means, just use that path). In it, I put the following

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
	<!-- Set Noto Emoji fallback -->
	<alias>
		<family>Noto Sans</family>
		<prefer>
			<family>Noto Sans</family>
			<family>Noto Color Emoji</family>
		</prefer>
	</alias>
</fontconfig>

What happens here is that when the font system is asked for the “Noto Sans” font, it will first try the “Noto Sans” font and then the “Noto Color Emoji” font. Evidently this assumes you have it installed. There are also other emoji fonts you could use instead.

To ensure your change is picked up on, you might need to run fc-cache -f (force cache renewal) or fc-cache -fr (really force cache renewal) or just restart your system.