Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Noto Emoji Color fontconfig for Konsole
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!--
Noto Mono + Color Emoji Font Configuration.
Currently the only Terminal Emulator I'm aware that supports colour fonts is Konsole.
Usage:
0. Ensure that the Noto fonts are installed on your machine.
1. Install this file to ~/.config/fontconfig/conf.d/99-noto-mono-color-emoji.conf
2. Run `fc-cache`
3. Set Konsole to use "Noto Mono" as the font.
4. Restart Konsole.
-->
<fontconfig>
<match>
<test name="family"><string>Noto Mono</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Color Emoji</string>
</edit>
</match>
</fontconfig>
@gysi

This comment has been minimized.

Copy link

gysi commented Feb 28, 2019

I love you, finally it works for me! 👍

@kmahyyg

This comment has been minimized.

Copy link

kmahyyg commented Mar 5, 2019

Worked fine for me, use font Noto Mono for Powerline, so I can use wttr.in now

@gsfordham

This comment has been minimized.

Copy link

gsfordham commented May 8, 2019

Excellent! Saved me a lot of diggin', ya did!
I'm surprised this was needed, considering xterm didn't require anything special

@magiblot

This comment has been minimized.

Copy link

magiblot commented May 17, 2019

The following seems to work for any font:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

    <match target="pattern">
        <test qual="any" name="family"><string>monospace</string></test>
        <edit name="family" mode="append" binding="weak"><string>Noto Color Emoji</string></edit>
    </match>
    <match target="pattern">
        <test qual="any" name="family"><string>serif</string></test>
        <edit name="family" mode="append" binding="strong"><string>Noto Color Emoji</string></edit>
    </match>
    <match target="pattern">
        <test qual="any" name="family"><string>sans-serif</string></test>
        <edit name="family" mode="append" binding="strong"><string>Noto Color Emoji</string></edit>
    </match>

</fontconfig>

I'm not sure about the difference between append and prepend, though.
Inspired by: https://github.com/AndydeCleyre/dotfiles/blob/master/.config/fontconfig/fonts.conf

@jospoortvliet

This comment has been minimized.

Copy link

jospoortvliet commented Jul 24, 2019

The first one works, and an adjustment to noto-sans worked. I haven't tested the line from magiblot but I guess it'll work, too - this is really nice, took me forever to find out! Thanks a lot.

@rickysarraf

This comment has been minimized.

Copy link

rickysarraf commented Aug 21, 2019

THank you. Worked perfect.

@n4n0GH

This comment has been minimized.

Copy link

n4n0GH commented Oct 13, 2019

The following seems to work for any font:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

    <match target="pattern">
        <test qual="any" name="family"><string>monospace</string></test>
        <edit name="family" mode="append" binding="weak"><string>Noto Color Emoji</string></edit>
    </match>
    <match target="pattern">
        <test qual="any" name="family"><string>serif</string></test>
        <edit name="family" mode="append" binding="strong"><string>Noto Color Emoji</string></edit>
    </match>
    <match target="pattern">
        <test qual="any" name="family"><string>sans-serif</string></test>
        <edit name="family" mode="append" binding="strong"><string>Noto Color Emoji</string></edit>
    </match>

</fontconfig>

I'm not sure about the difference between append and prepend, though.
Inspired by: https://github.com/AndydeCleyre/dotfiles/blob/master/.config/fontconfig/fonts.conf

If you use monospace as a general identifier, the fontconfig will also replace all monospace rendering in your webbrowser and elsewhere, potentially making <code> tags unreadable.

@magiblot

This comment has been minimized.

Copy link

magiblot commented Oct 13, 2019

If you use monospace as a general identifier, the fontconfig will also replace all monospace rendering in your webbrowser and elsewhere, potentially making <code> tags unreadable.

I was hoping Noto Color Emoji would be only used where the default font doesn't support a certain emoji. At least this is what seems to be happening for me:

Screenshot_20191013_223423

Notice how glyphs already available in the default font are preserved (which is the desired behaviour for monospace fonts, as emojis are 2 columns wide instead of 1). I wouldn't mind them being replaced in non-monospace font families, but I wasn't able to achieve this.

@n4n0GH

This comment has been minimized.

Copy link

n4n0GH commented Oct 14, 2019

I'm pretty sure you can achieve your desired result with minimal effort. Check out https://www.freedesktop.org/software/fontconfig/fontconfig-user.html to see what you can actually do with your fontconfigs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.