Sto eseguendo PureBrowser (~=Firefox ESR 52.8.0) su PureOS (~=Debian main testing) e ho fonts-noto-color-emoji-0~20180424-2
installato.
Quando visito https://en.wikipedia.org/wiki/List_of_Emojis osservo che:
- alcune emoji vengono visualizzate a colori (come previsto)
- alcune emoji vengono visualizzate come disegni al tratto, anziché a colori
- alcune emoji sono visualizzate a colori, ma sono troppo grandi
- le emoji mancanti appaiono come "tofu" (come previsto)
Questo persiste dopo aver eseguito fc-cache -f -v
.
Se copio e incollo quel testo nell'editor di testo (gedit), l'emoji appare come previsto (a colori a una dimensione normale o come tofu):
Perché sta succedendo e come posso risolverlo?
Risposta accettata:
Ci sono diversi problemi in gioco qui:
- Il carattere di sistema predefinito è Deja Vu Sans, contiene l'emoji in bianco e nero.
- Il browser raggruppa il proprio font specifico per le emoji chiamato
EmojiOneMozilla.ttf
(originariamente fornito in bundle in Firefox, incluso anche nel fork di PureBrowser), contiene emoji a colori. (Nota a margine:a causa di modifiche alla licenza, le versioni recenti di Firefox bundleTwemoji
invece.) - Hai anche installato Noto Emoji, contiene emoji a colori più recenti in uno stile diverso. Il ridimensionamento di questo carattere è gestito in modo errato dalla versione di Firefox da cui è stato eseguito il fork di PureBrowser.
Quando si incontra un carattere emoji, il browser sceglie tra questi tre caratteri per decidere come renderli. L'ordine sopra è l'ordine di precedenza, che sembra essere anche un ordine di copertura crescente, quindi le emoji più vecchie/comuni sono rese in Deja Vu, le emoji più recenti in Emoji One e le emoji all'avanguardia in Noto Emoji mal ridimensionate.
La soluzione "corretta" è correggere il browser e/o Noto in modo che il ridimensionamento delle emoji di Noto nel browser sia corretto. Inoltre, aggiorna il suggerimento sui caratteri in modo che i simboli emoji colorati siano preferiti rispetto al carattere predefinito del sistema. Risolvere questi problemi non è banale. Per cominciare, vedi:
- https://github.com/googlei18n/noto-emoji/issues/36
- https://superuser.com/questions/1111369
- https://github.com/eosrei/emojione-color-font/issues/17
Nel frattempo, una soluzione alternativa è sostituire EmojiOneMozilla.tff
con un carattere emoji a colori che ridimensiona correttamente e ha una copertura dei simboli uguale o migliore rispetto a Noto:
- Scarica l'ultima versione di Twemoji/eosrei da https://github.com/eosrei/twemoji-color-font/releases (in formato zip)
- Estrai
TwitterColorEmoji-SVGinOT.ttf
- Elimina
/usr/lib/purebrowser/fonts/EmojiOneMozilla.ttf
- Copia
TwitterColorEmoji-SVGinOT.ttf
in quella cartella
Ora i simboli emoji di Noto non vengono visualizzati, perché il TTF di Twemoji ha la stessa copertura di emoji. Se la copertura di Noto migliora e il tuo pacchetto Noto viene aggiornato, il problema si ripresenterà per eventuali nuovi simboli emoji. A quel punto dovrai aspettare una nuova versione di Twemoji/eosrei e riapplicare la soluzione alternativa.
Correlati:come rendere sempre piccola la barra delle attività della shell di GNOME?Se il tuo pacchetto PureBrowser viene aggiornato, potrebbe aggiungere nuovamente EmojiOneMozilla.ttf, nel qual caso dovrai eliminarlo di nuovo. Potrebbe rimuovere TwitterColorEmoji-SVGinOT.ttf, nel qual caso dovrai aggiungerlo di nuovo.