Wednesday, 4 May 2016

Blog backlog, Post 1, Emoji

Short version

dnf copr enable hadess/emoji
dnf update cairo
dnf install eosrei-emojione-fonts 

Long version

A little while ago, I was reading this article, called "Emoji: how do you get from U+1F355 to 🍕?", which said, and I reluctantly quote: "[...] and I don’t know what Linux does, but it’s probably black and white and who cares [...]".

Well. I care. And you probably do as well if your pizza slice above is black and white.

So I set out to check on the status of Behdad Esfahbod (or just "Behdad" as we know him)'s patches to add colour font support to cairo, which he presented at GUADEC in Strasbourg Gothenburg. It adds support for the "bitmap in font" as Android does, and as freetype supports.

It kind of worked, and Matthias Clasen reworked the patches a few times, completing the support. This is probably not the code that will be worked on and will land in cairo, but it's a good enough base for people interested in contributing to use.

After that, we needed something to display using that feature. We ended up using the same font recommended in this article, the Emoji One font.

There's still plenty to be done to support emojis, even after the cairo support is merged. We'd need a way to input emojis (maybe Lalo Martins is listening), and support in a lot of toolkits other than GNOME (Firefox only supports the SVG-in-OTF format, WebKit, Chrome, LibreOffice don't seem to know about colour fonts either).

You can find more information about design interests in GNOME around Emoji on the Wiki.

Update: Behdad's presentation was in Gothenburg, not Strasbourg. You can also see the video on YouTube.


Marius Gedminas said...

Yay this is moving forwards again! 🙌

Giovanni Campagna said...

Hey this is awesome work!

Any chance you could do i686 builds as well? I would love to test this!
Right now dnf refuses to install if you have system cairo i686, which is unfortunately (indirectly) required by steam and skype.

Bastien Nocera said...

@Giovanni: There are i686 builds as well, it's just that COPR doesn't setup multilib by default. You can either install the .repo file for i386 by hand, or install the package itself by hand. The former is likely better to get updates if they are needed in the future.

Anonymous said...

Thank you so much for working on this!
I've waited ages & been stuck with b&w support.
Linux could always user colored emoji fonts and going with EmojiOne set is a great choice since they are open-natured as well.

Im sure the EmojiOne team would gladly help since they've been part of some great projects and have also made a Chrome Add-on for emoji input.
Also as user/contribute do let us know what(&where) we can do to help out this effort.

Thank You to the team for investing your time into this!

Elad said...

The design wiki page suggests text replacement to replace ":)" with the emoji equivalent... I really hope this will *not* be implemented.

I use old-style ascii emoticons on purpose, because Emoji can look very differently according to what platform the receiving side is using and which font they have installed, which can lead to a lot of ambiguity. If text will be replaced with emojis as I type it, it will be very difficult to avoid these misunderstandings.

Bastien Nocera said...

@Elad: it's a design playground. Nothing is set in stone, and you should really discuss with designers, not a package builder :)

Anonymous said...
This comment has been removed by a blog administrator.