Pasos manuales

Pasos manuales

Mi dmenu no puede detectar la fuente emoji de color noto. Puede detectar otras fuentes pero no ésta. ¿Cómo solucionar esto?

➜ 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.

Respuesta1

A varias herramientas inútiles les gusta dmenuy stutilizan una biblioteca llamada libxftpara manejar la representación de fuentes. Esta biblioteca tiene un error que le impide representar fuentes de color.Afortunadamente, este error se ha solucionado., pero por alguna razón no se ha fusionado en sentido ascendente. Por lo tanto, para que las fuentes de color funcionen, debe instalar esta versión parcheada libxfty luego eliminar una marca dmenuque deshabilita manualmente las fuentes de color (debido a este error). He escrito los pasos manuales para hacer esto a continuación, pero como solución más sencilla, puedes instalar esta bifurcación dmenuque hace esto por ti:https://github.com/valeriangalliat/dmenumoji

Pasos manuales

En arch linux puede instalar una versión parcheada libxft(que reemplaza la versión anterior) con este paquete:libxft-bgra. En otras distribuciones necesitarás descargar la fuente de libxft,aplique el parchey luego compilar e instalar manualmente la versión parcheada de libxft.

Una vez que tenga la biblioteca parcheada, deberá editar el código fuente de dmenu para eliminar el código que desactiva las fuentes de color (anteriormente rotas). Esta verificación está cerca de la parte superior drw.cy se ve así:

    /* 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;
    }

¡Elimine este fragmento de código y vuelva a compilar dmenu y podrá usar fuentes de color!Aquí hay una publicación de blog.

información relacionada