Etapas manuais

Etapas manuais

Meu dmenu não consegue detectar a fonte noto color emoji. Ele pode detectar outras fontes, mas não esta. Como resolver isso?

➜ fc-list | grep -i "notocoloremoji"
/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf: Noto Color Emoji:style=Regular
➜ dmenu -fn "Noto Color Emoji"
no fonts could be loaded.

Responder1

Várias ferramentas inúteis gostam dmenue stusam uma biblioteca chamada libxftpara lidar com a renderização de fontes. Esta biblioteca possui um bug que a impede de renderizar fontes coloridas.Felizmente, esse bug foi corrigido, mas por alguma razão não foi mesclado no upstream. Portanto, para que as fontes coloridas funcionem, você precisa instalar esta versão corrigida libxfte, em seguida, remover uma verificação dmenuque desativa manualmente as fontes coloridas (por causa desse bug). Escrevi as etapas manuais para fazer isso abaixo, mas como uma solução mais fácil, você pode simplesmente instalar este fork que dmenufaz isso para você:https://github.com/valeriangalliat/dmenumoji

Etapas manuais

No arch linux você pode instalar uma versão corrigida libxft(substituindo a versão antiga) com este pacote:libxft-bgra. Em outras distros você precisará baixar o código-fonte do libxft,aplique o patche, em seguida, compile e instale manualmente a versão corrigida do libxft.

Depois de obter a biblioteca corrigida, você precisa editar a fonte do dmenu para remover o código que desativa as fontes coloridas (anteriormente quebradas). Esta verificação está perto do topo drw.ce tem a seguinte aparência:

    /* Do not allow using color fonts. This is a workaround for a BadLength
     * error from Xft with color glyphs. Modelled on the Xterm workaround. See
     * https://bugzilla.redhat.com/show_bug.cgi?id=1498269
     * https://lists.suckless.org/dev/1701/30932.html
     * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916349
     * and lots more all over the internet.
     */
    FcBool iscol;
    if(FcPatternGetBool(xfont->pattern, FC_COLOR, 0, &iscol) == FcResultMatch && iscol) {
        XftFontClose(drw->dpy, xfont);
        return NULL;
    }

Remova este pedaço de código e recompile o dmenu e você poderá usar fontes coloridas!Aqui está uma postagem do blog.

informação relacionada