libxft-bgra 补丁用于渲染彩色表情符号字体

libxft-bgra 补丁用于渲染彩色表情符号字体

有没有方法可以libxft-bgra在 ubuntu 上安装?在 AUR 中,他们有这个“版本”,libxft它允许您在整个系统范围内渲染彩色表情符号。我尝试自己编译它,但为了使其正常工作,我不得不删除标准libxft包,这会删除很多包,我不想卸载它们。有什么解决办法吗?

答案1

我最终在前缀 /usr/local 中修补、编译和安装了 libxft-2.3.3,然后使用那里的库和头文件(而不是 Ubuntu 提供的版本)重新编译了 st、dmenu 和 dwm。这使我能够保留 Ubuntu 版本。

dwm 栏中的彩色表情符号

Ubuntu 终端中的彩色表情符号

st on  master➜ cat /etc/issue
Ubuntu 20.04.2 LTS \n \l

dwm on  haplo_dwm [$!]➜ ldd /usr/local/bin/st | grep -i xft
        libXft.so.2 => /usr/local/lib/libXft.so.2 (0x00007f775d893000)

st on  master [$!]➜ ldd /usr/local/bin/dwm | grep -i xft
        libXft.so.2 => /usr/local/lib/libXft.so.2 (0x00007fa4b186a000)

st on  master [$!]➜ ldd /usr/local/bin/dmenu | grep -i xft
        libXft.so.2 => /usr/local/lib/libXft.so.2 (0x00007f2ce7bf1000)

st on  master [$!]➜ apt search libxft
Sorting... Done
Full Text Search... Done
libxft-dev/focal,now 2.3.3-0ubuntu1 amd64 [installed]
  FreeType-based font drawing library for X (development files)

libxft2/focal,now 2.3.3-0ubuntu1 amd64 [installed,automatic]
  FreeType-based font drawing library for X

对于 dwm 和 dmenu,安装补丁 libxft-bgra 后,不要忘记注释掉代码iscol以重新启用彩色字体,否则您将无法在它们中获得颜色。drw.c

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

如果您需要更多信息,请告诉我。对我来说,一切都非常顺利,而且在我的 suckless 工具中拥有彩色表情符号绝对是一件好事。

相关内容