Subject: Re: bug#44020: 28.0.50; Prefer selection of colour emoji fonts?

From: Robert Pluim <[email-masked]>
Date: Fri, 16 Oct 2020 10:19:12 +0200

>>>>> On Thu, 15 Oct 2020 21:52:19 +0300, Eli Zaretskii <[email-masked]> said:

    >> From: Lars Ingebrigtsen <[email-masked]>
    >> Date: Thu, 15 Oct 2020 20:10:44 +0200
    >> 
    >> 
    >> If I start "emacs -Q" and load a file with this character:
    >> 
    >> 🎉
    >> 
    >> Emacs shows that as a black-and-white symbol using the Symbola font.
    >> 
    >> If I then say
    >> 
    >> (set-fontset-font t 'symbol "Noto Color Emoji")
    >> (set-fontset-font t 'symbol "Symbola" nil 'append)
    >> 
    >> I get a colourful party popper.
    >> 
    >> It'd be nice if this worked out of the box.

    Eli> AFAIR, Robert Pluim worked on better support for Emoji display; that
    Eli> needs a few more tweaks and importing one more file from the UCD, to
    Eli> support Emoji sequences.  I hope this will be ready some time soon.
    Eli> Robert?

Thereʼs three parts to that:

1. Deciding what fonts we should use for emoji. We can get a lot of
   good results by adding appropriate 'set-fontset-font' calls to
   emacs, independently of any other work (I also wonder if we should
   change the default of use-default-font-for-symbols, given the
   proliferation of both emoji and fonts dedicated to displaying them)

2. Extract the emoji sequences from the Unicode data files and assign
   them to a new 'emoji' script. Be prepared to choose your favourite
   bikeshed colour.

3. Add the appropriate entries to composition-function-table so that
   the various multi-codepoint emoji sequences have a chance to be
   rendered correctly, whether by HarfBuzz or the Apple thing whose
   name I forget.

For [1], I think "Noto Color Emoji" and "Apple Color Emoji" would be a
good start.

For [2], I think that was finished, except that Eli then updated Emacs
to the next version of Unicode, and I haven't adjusted yet.

[3] is done for the cases that composition can currently handle. I
recall that there are sequences that require composition to do
lookback, which I think YAMAMOTO-san has patches for, but they've not
been submitted to Emacs (a quick perusal of my notes says this is for
keycap emojis, so I guess thatʼs a minor nit).

Oh, and there was a complication with enabling this by default on
macOS that I donʼt fully understand yet. Iʼll reread the history.

Iʼll see if I can clean this up this weekend and throw it on a branch.

Robert
--