Re: mintty emoji support

Brian Inglis via Cygwin-apps <[email protected]>
Newsgroups gmane.os.cygwin.applications
Organization Systematic Software
Message-ID <[email protected]>
On 2025-08-04 11:42, ASSI via Cygwin-apps wrote:
> Thomas Wolff via Cygwin-apps writes:
>> 2. Make emoji packages that only contain a download script as a stub,
>> which is invoked per post-install to download emoji data.
> 
> It's OK to rpovide a download script, but it's definitiely not OK to run
> it on postinstall.  Network isolated machines are a thing…
> 
>> 3. Better integrate the already existing emoji deployment script with
>> mintty and maybe invoke it per post-install.
> 
> Same.
> 
> The Cygwin font directory links to the Windows system fonts anyway,
				^ MS Corp provided TTF only> could you perhaps use one of them for Emoji 
instead (at least unless no
> other suiteable free font is installed)?

$ more /etc/postinstall/zp_fontconfig_cache_1.sh
mkdir -p /usr/share/fonts/microsoft
# remove any broken links (-L -type l together)
/usr/bin/find -L /usr/share/fonts/microsoft -type l -delete

/usr/bin/find "`cygpath -W`"/Fonts/ -name '*.ttf' -exec grep -FlZ 'Microsoft 
Corp' '{}' + | while read -d $'\0' f
do
	if [ ! -e "/usr/share/fonts/microsoft/${f##*/}" ]
	then
		ln -s "$f" /usr/share/fonts/microsoft/
	fi
done

/usr/bin/nohup /usr/libexec/fc-cache-1 -s || : &

I previously offered a similar script from my local postinstalls to symlink the 
rest of the non-MS Corp and also non-TTF .[otT][tT][cfF] fonts and collections 
into a *windows* font directory, or to be merged to replace the current release:

# fontconfig handles ttc TrueType collections and otf OpenType fonts and otc 
collections
# find Windows non-MS Corp .ttf, all .TTF, .ttc, .otf, and .otc fonts and link 
between fonts dirs
# Notes:
# DUBAI-*, MTEXTRA, others are 'Microsoft supplied font';
# all *.TTF are 'Microsoft Corp'; some are also 'Microsoft supplied font';
# .../Fonts may have Deleted subdirectory;
# grep -L returns names of files with no pattern matches;
/usr/bin/find "$win" -maxdepth 1 -type f				\
        \(  -name '*.ttf' -exec /bin/grep -FaL "$mscorp" '{}' + \)	\
     -o \(  -name '*.TTF' -print \)					\
     -o \( -iname '*.ttc' -print \)					\
     -o \( -iname '*.ot[cf]' -print \)					| \
... [similar to existing]

Anyway the only MS Corp Windows emoji font is Segoe UI Emoji:

$ grep -Fl 'Microsoft Corp' Noto*.ttf …/Windows/Fonts/{seguiemj,*Emoji*}.ttf 
/usr/share/{fonts/noto,texmf-dist/fonts/truetype/google/noto-emoji}/Noto*Emoji*.ttf
microsoft/Fonts/seguiemj.ttf
microsoft/Fonts/Windows 11 Emoji.ttf
$ fc-glyphs.sh SegoeUIEmoji
  Glyphs Unicode Range     Format   Font Name		PostScript Name		Path Name
    1961 0x20-0x1fa95      TrueType Segoe UI Emoji	SegoeUIEmoji 
microsoft/seguiemj.ttf
    2016 0x20-0x1fad6      TrueType Segoe UI Emoji	SegoeUIEmoji 
microsoft/Windows 11 Emoji.ttf

These MS versions seem to be 1.29 and 1.31 but 1.45 is now available with Win11, 
hopefully updated for Unicode 16, and can be extracted from a recent Win11 ISO.

Some MS images are available from GH MIT licensed, but other have restrictions 
that prevent that:

	https://github.com/microsoft/fluentui-emoji	# Color supplied as SVG
	https://github.com/microsoft/fluentui-emoji-animated	# anim-PNG 5GB!

I found these emoji font files on my system, and it looks like TeXlive also 
distributes some fonts, but I don't know if the directory/-ies are installed for 
fontconfig, so I have added symlinks from 
fonts/texmf-dist->../../texmf-dist/fonts/{open,true}type so they are accessible, 
but they have a limited repertoire:

Glyphs Unicode Range	Format	 Font Name		PostScript Name		Path Name
     36 0x1f1e6-0xfe4ee	TrueType Noto Color Emoji Flags	NotoColorEmojiFlags 
NotoColorEmoji-flagsonly.ttf
   1466 0x20-0xfe837	TrueType Noto Color Emoji	NotoColorEmoji	 
NotoColorEmoji-noflags.ttf
   1492 0x20-0xfe837	TrueType Noto Color Emoji	NotoColorEmoji		NotoColorEmoji.ttf
   1492 0x20-0xfe837	TrueType Noto Color Emoji	NotoColorEmoji	 
NotoColorEmoji_WindowsCompatible.ttf
   5335 0x20-0xfe837	TrueType Noto Color Emoji	NotoColorEmoji	 
NotoColorEmoji-emojicompat.ttf
   1456 0x20-0xfe837	TrueType Noto Color Emoji	NotoColorEmoji	 
Noto-COLRv1-noflags.ttf
   1492 0x20-0xfe837	TrueType Noto Color Emoji	NotoColorEmoji		Noto-COLRv1.ttf
   5335 0x20-0xfe837	TrueType Noto Color Emoji	NotoColorEmoji	 
Noto-COLRv1-emojicompat.ttf
   1487 0x20-0xfe837	TrueType Noto Emoji		NotoEmoji-Bold		NotoEmoji[wght].ttf
   1487 0x20-0xfe837	TrueType Noto Emoji		NotoEmoji-Light		NotoEmoji[wght].ttf
   1487 0x20-0xfe837	TrueType Noto Emoji		NotoEmoji-Regular	NotoEmoji[wght].ttf
   1487 0x20-0xfe837	TrueType						NotoEmoji[wght].ttf
   1961 0x20-0x1fa95	TrueType Segoe UI Emoji		SegoeUIEmoji		microsoft/seguiemj.ttf
   2016 0x20-0x1fad6	TrueType Segoe UI Emoji		SegoeUIEmoji		microsoft/Windows 11 
Emoji.ttf
   1492 0x20-0xfe837	TrueType Noto Color Emoji	NotoColorEmoji	 
noto/NotoColorEmoji-Regular.ttf
    885 0x20-0xfe837	TrueType Noto Emoji		NotoEmoji		windows/NotoEmoji-Regular.ttf
   1119 0x20-0x1f9c0	TrueType EmojiOne Color SVGinOT	EmojiOneColorSVGinOT 
windows/EmojiOneColor-SVGinOT.ttf
   1418 0x23-0xe007f	TrueType Twemoji Mozilla	TwemojiMozilla	 
windows/TwemojiMozilla.ttf
   1487 0x20-0xfe837	TrueType Noto Emoji		NotoEmoji-Bold	 
windows/NotoEmoji[wght].ttf
   1487 0x20-0xfe837	TrueType Noto Emoji		NotoEmoji-Light	 
windows/NotoEmoji[wght].ttf
   1487 0x20-0xfe837	TrueType Noto Emoji		NotoEmoji-Regular 
windows/NotoEmoji[wght].ttf
   1487 0x20-0xfe837	TrueType						windows/NotoEmoji[wght].ttf
   1492 0x20-0xfe837	TrueType Noto Color Emoji	NotoColorEmoji	 
windows/NotoColorEmoji_WindowsCompatible.ttf
    885 0x20-0xfe837	TrueType Noto Emoji		NotoEmoji	 
/usr/share/texmf-dist/fonts/truetype/google/noto-emoji/NotoEmoji-Regular.ttf
   1465 0x20-0xfe837	TrueType Noto Color Emoji	NotoColorEmoji	 
/usr/share/texmf-dist/fonts/truetype/google/noto-emoji/NotoColorEmoji.ttf

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher  but when there is no more to cut
                                 -- Antoine de Saint-Exupéry
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.