Usando símbolos de Nerdfont e Emoji com qualquer fonte (original) no Linux
Depois de ler a nota sobre esta questão no FAQ do terminal Kitty, comecei a prestar atenção em editores, IDEs e terminais que suportam fontes de fallback.
Uma fonte de fallback é uma tipografia alternativa contendo símbolos para o maior número possível de caracteres Unicode. Quando um sistema de exibição encontra um caractere que não faz parte do repertório de nenhuma das outras fontes disponíveis, um símbolo de uma fonte de fallback é usado em seu lugar. Tipicamente, uma fonte de fallback conterá símbolos representativos dos vários tipos de caracteres Unicode. 1
Mas nem todos os editores, IDEs ou terminais suportam fontes de fallback. Como o emulador de terminal alacritty, por exemplo.
No entanto, o pacote fontconfig do Linux é muito completo e permite criar famílias de fontes, que entendi serem fontes virtuais que você cria para ter o mecanismo de fallback configurado manualmente.
Então, vamos direto ao ponto! Primeiro crie um arquivo em ~/.config/fontconfig
chamado fonts.conf
com o seguinte conteúdo:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<match target="font">
<edit name="autohint" mode="assign">
<bool>true</bool>
</edit>
</match>
<alias>
<family>my-chosen-font-family</family>
<prefer>
<family>JetBrains Mono</family>
<family>Symbols Nerd Font</family>
<family>Noto Color Emoji</family>
</prefer>
</alias>
</fontconfig>
A tag <match>
solicita auto-hinting para ter fontes com melhor aparência.
A tag <alias>
contém o nome da sua fonte virtual my-chosen-font-family
e o conjunto de fontes que pertencem a ela. No meu caso, tenho uma fonte original (não modificada), a symbols nerd font e a de emoji.
Agora tudo o que você precisa fazer é configurar seus aplicativos para usá-la. Em alacritty seria:
font:
normal:
family: my-chosen-font-family
style: Regular
bold:
family: my-chosen-font-family
style: Bold
italic:
family: my-chosen-font-family
style: Italic
bold_italic:
family: my-chosen-font-family
style: Bold Italic
Aproveite!
_
= M =