After a long time, and switching to manjaro too, I came upon this problem again, however now I have a solution.
You will need to edit 3 different files, replace Blobmoji
with whatever Emoji-Font you want to use.
First file: /etc/fonts/conf.d/60-generic.conf
Find the part of the file where it will list off all emoij font options, something like
<alias binding="same">
<family>emoji</family>
<prefer>
<!-- System fonts -->
<family>Blobmoji</family> <!-- Custom -->
<family>Noto Color Emoji</family> <!-- Google -->
<family>Apple Color Emoji</family> <!-- Apple -->
<family>Segoe UI Emoji</family> <!-- Microsoft -->
<family>Twitter Color Emoji</family> <!-- Twitter -->
<family>EmojiOne Mozilla</family> <!-- Mozilla -->
<!-- Third-Party fonts -->
<family>Emoji Two</family>
<family>Emoji One</family>
<!-- Non-color -->
<family>Noto Emoji</family> <!-- Google -->
<family>Android Emoji</family> <!-- Google -->
</prefer>
</alias>
Insert your choice of emoji font at the very top, like this:
<prefer>
<!-- System fonts -->
<family>Blobmoji</family> <!-- Custom -->
<family>Noto Color Emoji</family> <!-- Google -->
This will give your emoji font top priority in replacing anything labeled "emoji".
Next file is /etc/fonts/conf.d/45-generic.conf
Here you will find a listing of the same fonts again:
<!-- System emoji -->
<alias binding="same">
<family>Noto Color Emoji</family> <!-- Google -->
<default><family>emoji</family></default>
</alias>
<alias binding="same">
<family>Apple Color Emoji</family> <!-- Apple -->
<default><family>emoji</family></default>
</alias>
<alias binding="same">
<family>Segoe UI Emoji</family> <!-- Microsoft -->
<default><family>emoji</family></default>
</alias>
<alias binding="same">
<family>Twitter Color Emoji</family> <!-- Twitter -->
<default><family>emoji</family></default>
</alias>
<alias binding="same">
<family>EmojiOne Mozilla</family> <!-- Mozilla -->
<default><family>emoji</family></default>
</alias>
<!-- Third-party emoji -->
Insert your font at the very top again:
<!-- System emoji -->
<alias binding="same">
<family>Blobmoji</family> <!-- Custom -->
<default><family>emoji</family></default>
</alias>
<alias binding="same">
<family>Noto Color Emoji</family> <!-- Google -->
<default><family>emoji</family></default>
</alias>
This will label any text that is written in your font with emoji.
Lastly its your local ~/.config/fontconfig/fonts.conf
This is mostly for Firefox or other browsers, so they will display your desired emojis.
Append this at the end:
<alias>
<family>serif</family>
<prefer>
<family>Blobmoji</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Blobmoji</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Blobmoji</family>
</prefer>
</alias>
<match target="pattern">
<test qual="any" name="family"><string>Noto Color Emoji</string></test>
<edit name="family" mode="assign" binding="same"><string>Blobmoji</string></edit>
</match>
This will give the serif, sans-serif and monospace fonts access to the custom font emojis.
The last entry is specifically there, if any websites are specifying lists of emoji fonts instead of just using sans-serif, that the usual font will specifically be replaced by your custom font, in this case Noto Sans Color is given, you should choose the font at the highest position on the other 2 files that you have installed, chances are its also just Noto Sans Color.
After fc-cache -f -v
everything should be set.