Giter Club home page Giter Club logo

emojione-color-font's Introduction

Project End of Life

Upstream licensing has changed (details). This is the final release of this project. There will be no further updates. Switch to Twitter Color Emoji SVGinOT Font for Unicode 10.0 and Emoji 5.0.

Thank you!

EmojiOne Color SVGinOT Font

A color and B&W emoji SVGinOT font built from EmojiOne artwork with support for ZWJ, skin tone diversity and country flags.

The font works in all operating systems, but will currently only show color emoji in Firefox, Thunderbird, Photoshop CC 2017, and Windows Edge V38.14393+. This is not a limitation of the font, but of the operating systems and applications. Regular B&W outline emoji are included for backwards/fallback compatibility.

Do you prefer Twitter Emoji for Everyone graphics?

Table of Contents

Examples

Before: Firefox in Ubuntu Linux.

Before EmojiOne Color in Firefox Linux

After: Firefox in all three operating systems, plus fall back outline characters in the other browsers. Firefox color emoji in Linux, OS X, and Firefox

See before and after on your machine:

What is SVGinOT?

SVG in Open Type is a standard by Adobe and Mozilla for color OpenType and Open Font Format fonts. It allows font creators to embed complete SVG files within a font enabling full color and even animations. There are more details in the SVGinOT proposal and the OpenType SVG table specifications.

SVGinOT Font demos (Firefox only):

Install on Linux

The font can be installed for a user or system-wide. Get the latest version from releases: https://github.com/eosrei/emojione-color-font/releases

Note: This requires Bitstream Vera is installed and will change your systems default serif, sans-serif and monospace fonts.

Why Bitstream Vera

The default serif, sans-serif and monospace font for most Linux distributions is DejaVu. DejaVu includes a wide range of symbols which override the EmojiOne Color characters. The previous solution was to make EmojiOne Color the default system font, but that causes a number of issues. A better solution is a different font that doesn't override any emoji characters such as Bitstream Vera. Bitstream Vera is the source of the glyphs used in DejaVu, so it's not very different. 99%+ of people will not notice the difference.

Additional default font options

The Noto and Roboto font families conflict far less than DejaVu. You may want to try them. Primary issues are the 0x2639 and 0x263a characters.

Known issues

Manual install on any Linux

Install for the current user without root:

# 1. Download the latest version
wget https://github.com/eosrei/emojione-color-font/releases/download/v1.4/EmojiOneColor-SVGinOT-Linux-1.4.tar.gz
# 2. Uncompress the file
tar zxf EmojiOneColor-SVGinOT-Linux-1.4.tar.gz
# 3. Run the installer
cd EmojiOneColor-SVGinOT-Linux-1.4
./install.sh

Install on Ubuntu Linux

Launchpad PPA: https://launchpad.net/~eosrei/+archive/ubuntu/fonts

sudo apt-add-repository ppa:eosrei/fonts
sudo apt-get update
sudo apt-get install fonts-emojione-svginot

Useful: [Emojione Picker for Ubuntu][13] [13]: https://github.com/gentakojima/emojione-picker-ubuntu

Install on Arch Linux

AUR package: https://aur.archlinux.org/packages/ttf-emojione-color/

yaourt -S ttf-emojione-color

Install on Gentoo Linux

Gentoo repository: https://github.com/jorgicio/jorgicio-gentoo

# Install layman using Portage with USE="git" enabled, the default.
emerge layman
# Add the repo.
layman -s jorgicio
# Install the package.
emerge emojione-color-font

Install on OS X

There are three install options for OS X. Both SVGinOT versions are available from releases: https://github.com/eosrei/emojione-color-font/releases

  1. EmojiOneColor-SVGinOT-1.4.zip - The regular version of the font installs like any other font and can be specifically selected, but OS X will default to the Apple Color Emoji font for emojis.
  2. EmojiOneColor-SVGinOT-OSX-1.4.zip - A hack to replace the Apple Color Emoji font by using the same internal name. Install and accept the warning in Font Book.
  3. emojione-apple.ttf - A SBIX bitmap Apple-format EmojiOne color font is available in the emojione project.

Reiterating: Only FireFox supports the SVGinOT color emoji for now. Safari and Chrome will use the fallback black and white emoji.

Install on Windows

There are two install options for Windows. Both SVGinOT versions are available from releases: https://github.com/eosrei/emojione-color-font/releases

Standard install

The regular version of the font installs like any other font and can be specifically selected, but Windows will default to the Segoe UI Emoji font for emoji characters. Download: https://github.com/eosrei/emojione-color-font/releases/download/v1.4/EmojiOneColor-SVGinOT-1.4.zip

Replace the default Windows emoji fonts

Windows 7, 8, 10 use emoji from both Segoe UI Symbol and Segoe UI Emoji. We need to replace both fonts, but keep the existing symbol characters from Segoe UI Symbol.

This package contains an install script that will generate both fonts (or in Windows 7, just Segoe UI Symbol) and install them for you. Running the install script requires both Python and pip in the PATH.

  1. Download the most recent Python 3 for Windows: https://www.python.org/downloads/windows/
  2. Start the installer, select "Add Python 3.5 to PATH" and finish the install process.
  3. Download EmojiOne Color Windows package from releases: https://github.com/eosrei/emojione-color-font/releases/download/v1.4/EmojiOneColor-SVGinOT-Win-1.4.zip
  4. Uncompress the file.
  5. Open the new EmojiOneColor directory.
  6. Run install.cmd. Note: This will take some time.
  7. Install both new fonts when requested.
  8. Done!

Reiterating: Only FireFox supports the SVGinOT color emoji for now. IE and Chrome will use the fallback black and white emoji.

Building

Overview:

  1. B&W SVGs are generated on-the-fly from the color SVGs
  2. The B&W SVGs are imported based on their filename to create either regular glyphs or ligature glyphs.
  3. The color SVGs are imported to override both types of glyphs.

Requires:

  • Inkscape
  • Imagemagick
  • potrace/mkbitmap
  • FontTools 3.0+
  • FontForge 20160405+
  • SVGO
  • make
  • SCFBuild (Created for this project!)

Setup and build on Ubuntu 14.04 LTS:

sudo add-apt-repository ppa:fontforge/fontforge
sudo apt-get update
sudo apt-get install inkscape potrace npm nodejs nodejs-legacy fontforge \
python-fontforge python-pip python-yaml imagemagick git make
sudo npm install -g svgo
sudo pip install fonttools
git clone https://github.com/eosrei/emojione-color-font.git
cd emojione-color-font
git clone https://github.com/eosrei/scfbuild.git SCFBuild
make -j 4

License

The artwork and TTF fonts are licensed CC-BY-4.0. Please see LICENSE.md for details.

emojione-color-font's People

Contributors

13rac1 avatar happy-ferret avatar ibboard avatar qubbit avatar yincrash avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

emojione-color-font's Issues

Override/blacklist DejaVu emoji glyphs without making Emoji One Color the default font

The Problem

The current readme recommends creating/modifying the user's fontconfig fonts.conf to make Emoji One Color the primary fallback font for sans-serif, serif and, monospace font families. This causes a number of issues including #1, #5, and #16. Ideally the DejaVu font family would stay the default and Emoji One Color would override/replace the emoji included in DejaVu Sans.

According to my tests in #16 (comment), only DejaVu Sans has the actual emoji characters which cause this problem:
ohnoitsdejavu which is what happens when the recommended fonts.conf is not installed.

A nice solution would be to blacklist the DejaVu Sans glyphs...

Blacklisting glyphs

There has been a number of requests for an option to "blacklist glyphs" or "create virtual fonts" in fontconfig over the years, but there is no current implementation AFAIK. (Too much detail follows, but this is a good place to keep the research.) 😉

Mixing arbitrary unicode ranges into a virtual font
might be needed when some fonts have just a few bad
characters [eg numbers], but normally mixing would be
by language.

Ideas on how to approach it [if not done already]?

src: https://lists.freedesktop.org/archives/fontconfig/2004-October/001045.html

Blacklisting glyphs in fonts has been a long standing wish for lots of
people, and the patch for fontconfig was even written once I think, but
it was never applied. Fontconfig people are just blaming the fonts with
all the different scripts. But as said before, it'll have to be
fontconfig which needs to be patched, since fonts won't do anything as
long as font substitution isn't available everywhere (and even then it
remains to be seen).

src: https://sourceforge.net/p/dejavu/mailman/message/9671050/

I remember that once upon a time the whole issue of making it possible
for FontConfig to blacklist glyphs from
fonts was discussed.

The idea was that it is easy and fast to write a few lines of XML into
a FontConfig .conf file while it is slow and
laborious to remove glyphs from a font.

Perhaps now is the time to actually implement this functionality in FontConfig?

src: https://lists.freedesktop.org/archives/fontconfig/2008-January/002847.html
Followed up by:

Sure, Pango totally uses fontconfig to determine if a font supports a
character. So this can completely be fixed in fontconfig. Someone
needs to go finish the patch and pass it through Keith I think.

src: https://lists.freedesktop.org/archives/fontconfig/2008-January/002850.html

  • Finish patch for fontconfig to allow configuration to disable
    certain Unicode codepoints per font. The write such configuration for
    the crappy glyphs.

Pick whichever you prefer and just do it.

src: https://mail.gnome.org/archives/gtk-i18n-list/2007-December/msg00007.html

Solutions

As much fun as it would be to go down another rabbit hole, I don't have the time to patch fontconfig right now. Plus, backwards compatibility would still be an issue. The recommended solution is to remove the offending glyphs.

Actually IMO if the Latin glyph are crappy, removing them is the single
most correct solution.

src: https://lists.freedesktop.org/archives/fontconfig/2008-January/002846.html

This means a fork of DejaVu Sans is probably the answer. Any other ideas?! 😎

Fonts should be in ~/.local/share/fonts/ instead of the deprecated ~/.fonts/

~/.fonts/ is deprecated. The new correct location is ~/.local/share/fonts/.

XDG Details: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

#3. Create a XDG user font directory, if you don't have one:
mkdir -p ~/.local/share/fonts/
#4. Move the font into ~/.fonts/
mv EmojiOneColor-SVGinOT.ttf ~/.local/share/fonts/

I need to do further tests to make sure it works in all supported Linux distributions, before making any changes to the recommended install.

[Ubuntu 16.04] DejaVu version gets priority over BitStream Vera and EmojiOne Color

Steps to reproduce:

  • Font version: fonts-emojione-svginot 1.2-1 (from ppa)

  • Screenshots:
    13-06-2016 12-29-53

  • Operating system: Ubuntu 16.04 x64

  • Firefox: 47.0

  • Steps to reproduce:

    sudo apt-add-repository ppa:eosrei/fonts
    sudo apt-get update
    sudo apt-get install fonts-emojione-svginot

13-06-2016 12-35-23

13-06-2016 12-40-53

fc-match -s serif

DejaVuSerif.ttf: "DejaVu Serif" "Book"
EmojiOneColor-SVGinOT.ttf: "Emoji One Color" "Regular"
EmojiOneColor-SVGinOT.ttf: "EmojiOne Color" "Regular"
DejaVuSerif-Bold.ttf: "Bitstream Vera Serif" "Bold"
DejaVuSerif-Italic.ttf: "Bitstream Vera Serif" "Italic"
DejaVuSerif-BoldItalic.ttf: "Bitstream Vera Serif" "Bold Italic"
Times_New_Roman.ttf: "Times New Roman" "Обычный"
n021003l.pfb: "Nimbus Roman No9 L" "Regular"
Kinnari.ttf: "Kinnari" "Regular"
Norasi.ttf: "Norasi" "Regular"
KhmerOS.ttf: "Khmer OS" "Regular"
NanumMyeongjo.ttf: "NanumMyeongjo" "Regular"
Lohit-Punjabi.ttf: "Lohit Punjabi" "Regular"
lklug.ttf: "LKLUG" "Regular"
FreeSerif.ttf: "FreeSerif" "Обычный"
FreeSans.ttf: "FreeSans" "Обычный"
FreeMono.ttf: "FreeMono" "Обычный"
opens___.ttf: "OpenSymbol" "Regular"
KacstOne.ttf: "KacstOne" "Regular"
FiraSans-Regular.ttf: "Fira Sans" "Regular"
fontawesome-webfont.ttf: "FontAwesome" "Regular"
NanumGothic.ttf: "NanumGothic" "Regular"
fonts-japanese-gothic.ttf: "TakaoPGothic" "Regular"
Laksaman.ttf: "Laksaman" "Regular"
Courier_New.ttf: "Courier New" "Обычный"
Padauk-book.ttf: "Padauk Book" "Regular"
DejaVuSans.ttf: "Bitstream Vera Sans" "Book"
DejaVuSansMono.ttf: "Bitstream Vera Sans Mono" "Book"
Sawasdee.ttf: "Sawasdee" "Regular"
PTC55F.ttf: "PT Sans Caption" "Regular"
Roboto-Regular.ttf: "Roboto" "Regular"
TibetanMachineUni.ttf: "Tibetan Machine Uni" "Regular"
AbyssinicaSIL-R.ttf: "Abyssinica SIL" "Regular"
STIXGeneral-Regular.otf: "STIXGeneral" "Regular"
STIX-Regular.otf: "STIX" "Regular"
STIXNonUnicode-Regular.otf: "STIXNonUnicode" "Regular"
mplus-1c-regular.ttf: "M+ 1c" "regular"
NotoSans-Regular.ttf: "Noto Sans" "Regular"
NotoSansCJK-Regular.ttc: "Noto Sans CJK JP" "Regular"
Anonymice Powerline.ttf: "Anonymous Pro for Powerline" "Regular"
anonymous Pro-Powerline.ttf: "Anonymous Pro" "Regular"
SFUIDisplay-Regular.otf: "SF UI Display" "Обычный"
iosevka-regular.ttf: "Iosevka" "Regular"
NanumBarunGothic.ttf: "NanumBarunGothic" "Regular"
Ubuntu-C.ttf: "Ubuntu Condensed" "Regular"
Ubuntu-R.ttf: "Ubuntu" "Regular"
Waree.ttf: "Waree" "Regular"
s050000l.pfb: "Standard Symbols L" "Regular"
LiberationSansNarrow-Regular.ttf: "Liberation Sans Narrow" "Regular"
Existence-Light.ttf: "Existence" "Light"
PTF75F.ttf: "PT Serif" "Bold"
STIX-Italic.otf: "STIX" "Italic"
LiberationSans-Italic.ttf: "Liberation Sans" "Italic"
DejaVuSans-BoldOblique.ttf: "Bitstream Vera Sans" "Bold Oblique"
Webdings.ttf: "Webdings" "Обычный"

fc-match -s sans-serif

DejaVuSans.ttf: "DejaVu Sans" "Book"
EmojiOneColor-SVGinOT.ttf: "Emoji One Color" "Regular"
EmojiOneColor-SVGinOT.ttf: "EmojiOne Color" "Regular"
DejaVuSans-Bold.ttf: "Bitstream Vera Sans" "Bold"
DejaVuSans-Oblique.ttf: "Bitstream Vera Sans" "Oblique"
DejaVuSans-BoldOblique.ttf: "Bitstream Vera Sans" "Bold Oblique"
Verdana.ttf: "Verdana" "Обычный"
Arial.ttf: "Arial" "Обычный"
n019003l.pfb: "Nimbus Sans L" "Regular"
Waree.ttf: "Waree" "Regular"
Laksaman.ttf: "Laksaman" "Regular"
NotoSansCJK-Regular.ttc: "Noto Sans CJK JP" "Regular"
KhmerOS.ttf: "Khmer OS" "Regular"
NanumGothic.ttf: "NanumGothic" "Regular"
Lohit-Punjabi.ttf: "Lohit Punjabi" "Regular"
lklug.ttf: "LKLUG" "Regular"
FreeSans.ttf: "FreeSans" "Обычный"
FreeMono.ttf: "FreeMono" "Обычный"
FreeSerif.ttf: "FreeSerif" "Обычный"
opens___.ttf: "OpenSymbol" "Regular"
Norasi.ttf: "Norasi" "Regular"
KacstOne.ttf: "KacstOne" "Regular"
FiraSans-Regular.ttf: "Fira Sans" "Regular"
fontawesome-webfont.ttf: "FontAwesome" "Regular"
Courier_New.ttf: "Courier New" "Обычный"
Padauk-book.ttf: "Padauk Book" "Regular"
DejaVuSansMono.ttf: "Bitstream Vera Sans Mono" "Book"
DejaVuSerif.ttf: "Bitstream Vera Serif" "Book"
Sawasdee.ttf: "Sawasdee" "Regular"
PTC55F.ttf: "PT Sans Caption" "Regular"
NanumMyeongjo.ttf: "NanumMyeongjo" "Regular"
Roboto-Regular.ttf: "Roboto" "Regular"
TibetanMachineUni.ttf: "Tibetan Machine Uni" "Regular"
AbyssinicaSIL-R.ttf: "Abyssinica SIL" "Regular"
STIXGeneral-Regular.otf: "STIXGeneral" "Regular"
STIX-Regular.otf: "STIX" "Regular"
STIXNonUnicode-Regular.otf: "STIXNonUnicode" "Regular"
mplus-1c-regular.ttf: "M+ 1c" "regular"
NotoSans-Regular.ttf: "Noto Sans" "Regular"
Anonymice Powerline.ttf: "Anonymous Pro for Powerline" "Regular"
anonymous Pro-Powerline.ttf: "Anonymous Pro" "Regular"
SFUIDisplay-Regular.otf: "SF UI Display" "Обычный"
iosevka-regular.ttf: "Iosevka" "Regular"
NanumBarunGothic.ttf: "NanumBarunGothic" "Regular"
Ubuntu-C.ttf: "Ubuntu Condensed" "Regular"
Ubuntu-R.ttf: "Ubuntu" "Regular"
s050000l.pfb: "Standard Symbols L" "Regular"
LiberationSansNarrow-Regular.ttf: "Liberation Sans Narrow" "Regular"
Existence-Light.ttf: "Existence" "Light"
PTF75F.ttf: "PT Serif" "Bold"
STIX-Italic.otf: "STIX" "Italic"
LiberationSans-Italic.ttf: "Liberation Sans" "Italic"
Webdings.ttf: "Webdings" "Обычный"

fc-match -s monospace

DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"
EmojiOneColor-SVGinOT.ttf: "Emoji One Color" "Regular"
EmojiOneColor-SVGinOT.ttf: "EmojiOne Color" "Regular"
PowerlineSymbols.otf: "PowerlineSymbols" "Medium"
Andale_Mono.ttf: "Andale Mono" "Обычный"
Courier_New.ttf: "Courier New" "Обычный"
Courier_New_Italic.ttf: "Courier New" "Курсив"
n022003l.pfb: "Nimbus Mono L" "Regular"
TlwgTypo.ttf: "Tlwg Typo" "Regular"
TlwgTypist.ttf: "Tlwg Typist" "Regular"
NotoSansCJK-Regular.ttc: "Noto Sans Mono CJK JP" "Regular"
KhmerOSsys.ttf: "Khmer OS System" "Regular"
NanumGothic.ttf: "NanumGothic" "Regular"
DejaVuSans.ttf: "Bitstream Vera Sans" "Book"
DejaVuSans-Bold.ttf: "Bitstream Vera Sans" "Bold"
DejaVuSans-Oblique.ttf: "Bitstream Vera Sans" "Oblique"
DejaVuSans-BoldOblique.ttf: "Bitstream Vera Sans" "Bold Oblique"
Lohit-Punjabi.ttf: "Lohit Punjabi" "Regular"
lklug.ttf: "LKLUG" "Regular"
FreeMono.ttf: "FreeMono" "Обычный"
FreeSans.ttf: "FreeSans" "Обычный"
FreeSerif.ttf: "FreeSerif" "Обычный"
opens___.ttf: "OpenSymbol" "Regular"
Norasi.ttf: "Norasi" "Regular"
KacstOne.ttf: "KacstOne" "Regular"
FiraSans-Regular.ttf: "Fira Sans" "Regular"
fontawesome-webfont.ttf: "FontAwesome" "Regular"
Laksaman.ttf: "Laksaman" "Regular"
Padauk-book.ttf: "Padauk Book" "Regular"
DejaVuSerif.ttf: "Bitstream Vera Serif" "Book"
Sawasdee.ttf: "Sawasdee" "Regular"
PTC55F.ttf: "PT Sans Caption" "Regular"
NanumMyeongjo.ttf: "NanumMyeongjo" "Regular"
Roboto-Regular.ttf: "Roboto" "Regular"
TibetanMachineUni.ttf: "Tibetan Machine Uni" "Regular"
AbyssinicaSIL-R.ttf: "Abyssinica SIL" "Regular"
STIXGeneral-Regular.otf: "STIXGeneral" "Regular"
STIX-Regular.otf: "STIX" "Regular"
STIXNonUnicode-Regular.otf: "STIXNonUnicode" "Regular"
mplus-1c-regular.ttf: "M+ 1c" "regular"
NotoSans-Regular.ttf: "Noto Sans" "Regular"
Anonymice Powerline.ttf: "Anonymous Pro for Powerline" "Regular"
anonymous Pro-Powerline.ttf: "Anonymous Pro" "Regular"
SFUIDisplay-Regular.otf: "SF UI Display" "Обычный"
iosevka-regular.ttf: "Iosevka" "Regular"
NanumBarunGothic.ttf: "NanumBarunGothic" "Regular"
Ubuntu-C.ttf: "Ubuntu Condensed" "Regular"
Ubuntu-R.ttf: "Ubuntu" "Regular"
Waree.ttf: "Waree" "Regular"
s050000l.pfb: "Standard Symbols L" "Regular"
LiberationSansNarrow-Regular.ttf: "Liberation Sans Narrow" "Regular"
Existence-Light.ttf: "Existence" "Light"
PTF75F.ttf: "PT Serif" "Bold"
STIX-Italic.otf: "STIX" "Italic"
LiberationSans-Italic.ttf: "Liberation Sans" "Italic"
Webdings.ttf: "Webdings" "Обычный"

Create Homebrew package for OS X

Homebrew is a package manager for OS X. This tool allows users to issue commands like brew cask install font-hack to quickly install a package.

@0xadada Any interest in making a package for this project also? This already has the SVGinOT-OSX font version.

Spaces around Emojione characters show up as boxes in GTK apps

If I use an Emojione supplied character in a GTK app then spaces to either side of it show up as a rectangle with four small rectangles in.

Example:
screenshot from 2016-03-04 21-41-04

Text in the bottom is ❣ a b c ✄. Hexdump of that is:

00000000  20 20 20 e2 9d a3 20 20  20 61 20 62 20 63 20 e2  |   ...   a b c .|
00000010  9c 84 20 0a                                       |.. .|

Firefox renders those characters fine.

Steps to reproduce:

  1. Install Emojione according to instructions in README
  2. Type "space space space" followed by an emoji (e.g. "+:+)" for a smiley face in default Gnome ibus setup)

Behaviour: Spaces suddenly turn into boxes as soon as emoji is there

Expected: Spaces stay looking like spaces!

System: Gnome 3.16, GTK 3.16, openSUSE Leap 42.1

Don’t override fonts.conf

Currently, the install script overrides the file $HOME/.config/fontconfig/fonts.conf (after creating a backup). This might break other customisations of font configuration that a user did before. But fontconfig also supports a more modern approach of independent configuration files. So instead of overriding fonts.conf, I would suggest adding a file 10-emojione.conf to $HOME/.config/fontconfig/conf.d/.

[Linux] Inconsistently parsed fontconfig causes font selection problems

The Fontconfig Edit Mode: prepend_first is, probably, causing a number of font selection issues #35, #37, and #39. The existing/provided configuration is technically correct according to all tests I've tried, but it is still causing problems in programs which parse the fontconfig themselves. Issue: prepend_first does not work as expected in fontconfig.

Actual 56-emojione-color.conf

  <match target="pattern">
    <!-- If the requested font is sans-serif -->
    <test qual="any" name="family">
        <string>sans-serif</string>
    </test>
    <!-- Make Bitstream Vera Sans the first result -->
    <edit name="family" mode="prepend_first"> 
      <string>Bitstream Vera Sans</string>
    </edit>
    <!-- Followed by EmojiOne Color -->
    <edit name="family" mode="prepend_first">     <!-- THIS! -->
      <string>EmojiOne Color</string>
    </edit>
  </match>

Actual Result:

$ fc-match -s sans
Vera.ttf: "Bitstream Vera Sans" "Roman"
EmojiOneColor-SVGinOT.ttf: "EmojiOne Color" "Regular"
DejaVuSans.ttf: "DejaVu Sans" "Book"

Expected, Result:

$ fc-match -s sans
EmojiOneColor-SVGinOT.ttf: "EmojiOne Color" "Regular"
Vera.ttf: "Bitstream Vera Sans" "Roman"
DejaVuSans.ttf: "DejaVu Sans" "Book"

Why the "Expected Result"? prepend_first seems like it would be applied in order, so the first font listed would become the second font in the list when a second prepend_first is encountered. It doesn't work that way though. The first font stays the first font.

Need to find a configuration that works for everything.

[Linux] Steam client shows number icons instead of numbers in price tag.

Font version: v1.1
Screenshots: Wrong icons: https://i.imgur.com/Lsuze7E.png
Wrong icons

Expected display: https://i.imgur.com/cMVT4f1.png
Expected display

Operating system: Linux Mint 17.3
Steps to reproduce Install Font v1.1, start the Steam client on Linux and go to the main shop site.

Since the update to font version 1.1 (Installed via PPA), the Steam client shows number icons instead of numbers on some price tags. The Steam client uses Chromium as Browser Backend.

Firefox shows some colour emoji in the address bar, but not all

I installed fonts-emojione-svginot (1.2-1) and fontconfig (2.11.94-0ubuntu1) from the eosrei/fonts PPA onto an Ubuntu 16.04 system.

When I visit http://eosrei.github.io/emojione-color-font/full-demo.html with Firefox 47.0, all of the emoji are displayed correctly. They are always shown correctly inside web pages. The Ubuntu window titlebar also renders all emoji correctly including regional indicators and face+color combos as a single glyph (albeit in black and white)

However the rest of the Firefox GUI is inconsistent. For the tab title, address bar, search bar, history and other GUI, most of the emoji appear in black and white, and country flags are shown as two regional indicator characters. Faces with skin colour joiners are shown as two glyphs. The only exception are 'New in Unicode 9.0' emojis which are rendered correctly and in colour everywhere. Presumably because no other installed font supports those glyphs.

I tried setting my Firefox default sans-serif font to EmojiOne but it didn't change anything. Any idea how to get Firefox to use the right font?

Firefox tab & URL bar font (Ubuntu)

Firstly, thank you for this colour font - it works wonderfully in Firefox on Ubuntu.

The only issue is that the text on tabs, in the URL bar, menus, etc now uses a Serif font which looks a bit ugly.

Is there any way to keep the Emoji font, but have FF use a different fallback font for its application text?

Hope I've explained that well enough :-)

Consider Chocolatey as a Windows distribution channel

Chocolatey is a distribution tool for Windows applications, including many free software applications (for example, https://chocolatey.org/packages/pidgin). It allows an end-user to get application updates somewhat like using apt or yum on GNU/Linux.

I have not explicitly seen it used for fonts, but it basically script-based and seems like a viable platform to deliver updates, which I imagine will continue apace for a font based on Emoji One.

https://github.com/chocolatey/choco/wiki/ChocolateyFAQs
https://github.com/chocolatey/choco/wiki/Moderation

[Linux] Chrome and Firefox do not display number emoji correctly

I currently have no issues with this font except for this one. I'm guessing the number emoji are overridden somewhere, but I wonder why no other emojis are. Everything else looks fine.

  • Font version: 1.2
  • Screenshots:
    Chrome
    chrome_emoji
    Firefox
    firefox_emoji
  • Operating system: Arch Linux x64
  • Steps to reproduce:
  1. Install font
  2. Open Chrome or Firefox
  3. visit a page that contains number emoji

readme: Add how to override the Windows default Segoe UI Emoji font

The readme currently says:

Install on Windows

The font installs like any other font and can be specifically selected, but the system will default to the Segoe UI Emoji font.

It can be manually selected in CSS, but making it the default is still TBD.

Is there a method to override Segoe UI Emoji?

Install failed

When I open the font file and tap Install on Ubuntu 16.04, the install fails.

Missing ligatures info for ENCLOSING KEYCAP characters

  • Font version: 1.3
  • Screenshots: Not necessary.
  • Operating system: MacOSX
  • Steps to Reproduce:

I'm currently trying to use the font from a PDF rendering library called ApacheFOP. The library does not support the non-BPM codepoints so I'm implementing the support (https://issues.apache.org/jira/browse/FOP-1969). That said I was able to print almost all the glyphs including flags (🇮🇹) and families (👨‍👩‍👦 ) using the ligatures table.

It looks like the font is missing the ligature info for the ENCLOSING KEYCAP characters (1⃣ 2⃣ etc..). I was wondering if it is a bug or an expected behavior.

Thanks

[firefox] gfx.font_rendering.fontconfig.fontlist.enabled must remain false

First of all, thanks a lot for these. Only issue is that when I do:

gfx.font_rendering.fontconfig.fontlist.enabled = false
restart
gfx.font_rendering.fontconfig.fontlist.enabled = true
restart
The problem with the fonts comes back

I'm using Firefox 45.0.1 on Ubuntu 15.10.
I'm just leaving it as false at the moment, not sure if it's having any detrimental affects.

Cheers

Increase regular glyph weight

The existing b&w outlines are the default output of potrace given the current input. They are far too thin. Long term, I'd like to find a good solution to have fills, but for now the glyph weight should be increased during FontForge import.

Font in Firefox is forced to Bitstream Vera Sans

Hello. As you probably know, when using Firefox with the current /etc/fonts/conf.d/56-emojione-color.conf, ugly things happen to the default font. In particular, even if the user has picked a specific font from the Firefox preferences, Bitstream Vera Sans will always be used.

I do not know the correct fix for this, but I have a temporary workaround. Font-config can ignore any programs that are named Firefox (or Iceweasel, for older versions of Debian GNU/Linux). Since Firefox seems to work fine without the 56-emojione-color.conf file, this is a harmless kludge.

Here's a patch:

 --- 56-emojione-color.conf.orig 2016-06-10 11:44:50.000000000 -0700
 +++ 56-emojione-color.conf 2016-08-06 09:20:57.000000000 -0700
 @@ -71,11 +71,18 @@
 </edit>
 </match>

 + <!-- XXX Firefox default font bug is somewhere below this line. -->
 <match target="pattern">
 <!-- If the requested font is sans-serif -->
 <test qual="any" name="family">
 <string>sans-serif</string>
 </test>
 + <test qual="any" name="prgname" compare="not_contains">
 + <string>firefox</string>
 + </test>
 + <test qual="any" name="prgname" compare="not_contains">
 + <string>iceweasel</string>
 + </test>
 <!-- Make Bitstream Vera Sans the first result -->
 <edit name="family" mode="prepend_first">
 <string>Bitstream Vera Sans</string>
 @@ -85,6 +92,7 @@
 <string>EmojiOne Color</string>
 </edit>
 </match>
 + <!-- XXX Firefox default font bug is above this line. -->

 <match target="font">
 <!-- If the requested font is Bitstream Vera Sans Mono -->

I apologize for not providing a correct fix, but I have not yet learned the weird fonts.conf XML language. (So far, I think the FC decision to use XML to represent a programming language is rather barfy. I'd rather they just gave me a regular language and had a "compiler" to convert it to XML.)

Versions

  • Firefox-ESR 45.3.0
  • Debian GNU/Linux 8, Jessie
  • Latest emojione-color.conf from github.

I'm attaching the debug output from running Firefox with the environment variable FC_DEBUG=1 both with and without the patch so you can see how FC is picking the fonts.
fcdebug.prepatch.txt
fcdebug.postpatch.txt

Here is what Firefox looks like when using emojione without my patch:

incorrect-font-in-firefox-prepatch

Applying my patch, Firefox now uses the correct font:

correct-font-in-firefox-postpatch

[Linux] Squares instead of text in some applications

First of all, thank you very much for your work. I think it's awesome to be able to see color emojis at last on Linux.

I'm having a problem with Mysql Workbench, showing squares instead of text in the main screen. Most screens and dialogs also have this problem but in a minor scale, they are mostly usable.

mysql_workbench_63

Some details blurred on purpose, but not squares in there:

mysql_workbench_63_b

Supplied fontconfig causes serif font to be used in Evolution Preview Pane

When I install emojione-color-font from AUR (using Antergos here), and my font is set to Cantarell, a serif font appears in my e-mails in Evolution. I couldn't determine any issue being closely related to this, so I opened this ticket.
I'm not even sure what additional information is required. Please let me know, and I'll update.

Remove BLACK LARGE SQUARE and other black glyphs from font

Using version 1.2 2160610 on Ubuntu 14.04.

I suggest removing BLACK LARGE SQUARE and possibly other monochrome glyphs from this font. Old fonts supported it fine because there's no color, but including it in the font causes some problems without any obvious benefit to me.

Problem 1: There's are some older usages of BLACK LARGE SQUARE in web apps that set the CSS color property. These all show up as black now. I understand this is a bug that they should fix and have reported it where I can.

Problem 2: On apps that fall back to the monochrome outlines, BLACK LARGE SQUARE shows up as WHITE LARGE SQUARE. For other similar symbols, the outline is harder to read than what the user previously had.

You could special case this and similar glyphs by making the fallback have a solid fill instead of just an outline, but it seems like it would be easier to just exclude it.

selection_106

Other glyphs that should also be reconsidered:

🎵 🎶 〰️ ➰ ✔️ 🔃 ➕ ➖ ➗ ✖️ 💲 💱 ©️ ®️ ™️▪️◼️◾️🕐 🕑 🕒 🕓 🕔 🕕 🕖 🕗 🕘 🕙 🕚 🕛 🕜 🕝 🕞 🕟 🕠 🕡 🕢 🕣 🕤 🕥 🕦 🕧

Add text/emoji variation selectors

The fonts default to emoji representation right now, which is technically incorrect. The text and emoji variation selectors should be implemented using font ligatures to correctly select text or emoji versions as requested.

The emoji style variants are all produced with the addition of U+FE0E VARIATION SELECTOR-15 (VS15) for a text presentation or U+FE0F VARIATION SELECTOR-16 (VS16) for an emoji presentation.

Details:

Making color Emojis show up everywhere on Linux (not just in browser)?

@eosrei wrote in README.md:

[...] The font works in all operating systems, but will currently only show color emoji in Mozilla Firefox and Thunderbird. This is not a limitation of the font, but of the operating systems and applications. [...]

Why is that?

What exactly is the limitation in Linux desktop operating systems and applications?

I saw you also posted in googlefonts/noto-emoji#36.

But what exactly needs to be done to make color Emojis show up everywhere on Linux (not just in the browser)?

Add Summary License File

I'm currently packaging the font for the Arch Linux AUR, it'd be helpful if the git source provided a copy of the License section of README.md in its own file, so that can just be installed into the relevant location.

Symbola font in CSS breaks Emoji/ZWJ functionality

If I try the ZWJ example link from the README (http://unicode.org/emoji/charts/emoji-zwj-sequences.html) then I currently see grey shapes without any joining. Using the DOM Inspector in Firefox then I see that it is using Symbola, falling back to "Nimbus Roman No9 L".

If I edit the CSS to remove Symbola then I get joined colour images.

I thought that the fonts.conf file should have overridden all fonts to put Emoji One first, but apparently this is an exception (which is ironic, because they appear to be using a list of fonts specifically selected for their improved emoji support!)

I'm poking in to this now to see if I can work out more.

Bitstream Vera doesn't contain regional accented characters

Hi,

I installed the font through the ppa. Emojis work, but because the Bitstream Vera family doesn't contain any regional characters all applications that use the system default (e.g. Firefox) look like crap. :/ Uninstall fixes it (thankfully).

Can you tell me what setting/file are you changing to set the system default? I looked at install.sh, but I can't find it. (I understand Ubuntu users should be able to change the font through system settings, but I'm using Xubuntu and apparently this damn system doesn't have a GUI option for it.)

Thanks,

C.

(Also, could you maybe add a note about this to Known Issues? I bet I'm not the only non-english-xfce-user-in-need-of-emojis out there :] )

Mathematica font breaking

Hi,
i am on arch linux,
these fonts break the Mathematica fonts. To restore Mathematica just remove them.
hope this information helps.

Linux install script fails when attempting to unzip the file

Following instructions in readme.md for install on linux

As the title says.

when I do
unzip EmojiOneColor-SVGinOT.ttf.zip

I get the following error
Archive: EmojiOneColor-SVGinOT.ttf.zip End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in one of EmojiOneColor-SVGinOT.ttf.zip or EmojiOneColor-SVGinOT.ttf.zip.zip, and cannot find EmojiOneColor-SVGinOT.ttf.zip.ZIP, period.

Solution was to use wget, not curl to download the zip archive.
New first line is.
wget https://github.com/eosrei/emojione-color-font/releases/download/v1.0-beta/EmojiOneColor-SVGinOT.ttf.zip

David.

Using Debian Jessy.

Squirrel glyph color inversion

Just a minor issue, but when I mark the squirrel/chipmunk glyph ( 🐿 ) , the black in its eye and along the tail are inverted to white.

This particular glyph seems to be quite unique in this way, as I cannot reproduce it with any of the other glyphs I've screened, so far.

Tested under Windows 8.1, with Firefox 45.

How do I get my old symbols back?

I downloaded this on ubuntu basically because I wanted a fallback font for the symbols my font didn't already support. But I don't actually like that all of my old symbols were overwritten. U+25b6 became a light arrow in a circle, for instance, instead of a nice heavy black right-facing arrow. (I'm using Chrome, so I don't get the colors)

I think that all I need to do is undo the part where Bitstream Vera Sans was made the default font, but I can't actually find where to do that. I downloaded Unity Tweak Tool, but in Fonts it says I'm using Ubuntu Regular.

On net, I'd rather uninstall everything than keep things the way they are... but ideally I could still use this font for places no other font supports.

Apply Color SVG transform with svgo

The required color SVG transforms are currently applied as a "SVG transform" I'd prefer them "baked" into the actual SVG data to reduce potential hassles and file sizes. svgo can do this.

[Suggestion] emojione installation in Gentoo and Gentoo-based distros

Hi!
I'm a Gentoo user and also maintain an overlay (non-official repo), and also maintain the package for your project.
So there are the instructions to install and to add to your README:

First install layman (if not installed) with the USE="git" enabled, with Portage. (Is enabled by default, btw)

emerge layman

Then, add my repo:

layman -s jorgicio

and then install the package:

emerge emojione-color-font

It solves dependencies.

Thanks!

Vertical alignment slightly too low

Vertical alignment slightly too low, compare to selection box.
vertical-too-low

Verses DejaVu.
vert-align

Some test html:

gO <a href="test.html">gO 😀 🐵 <span style="font-family: 'DejaVu Sans';">😀 🐵</span></a>

Probably something to fix in SCFBuild, hopefully it can be automated.

Overlapping text in some applications

First of all, I would like to congratulate you on your hard work. It's great to finally see proper emojis on linux.

After installing the font, there is some overlapping text on applications such as Liferea and Geary.
3bb777f7eb65

System is Ubuntu 15.10, Unity 7.3.3 with Ambiance, and according to screenfetch, the (default?) font
is Ubuntu 11. It also happens on AwesomeWM running on a separate X display.

60cca2e1b744

Font was installed in ~/.local/share/fonts automatically using the built in font viewer, and the config was copied from the OMG! Ubuntu! article.

Apologies if this has been reported before, I couldn't any issues related to mine while going through existing ones.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.