PibxFT-BGRA Patch для рендеринга Цветных шрифтов Emoji

Есть ли какой-нибудь способ установки libxft-BGRA на Ubuntu ?. В AUR у них есть эта «версия» libxft , которая позволяет широко отображать цветную систему Emoji. Я пытался составить его сам, но, чтобы получить эту работу, мне пришлось удалить стандарт Package LibxFT , который удаляет много пакетов, и я не хочу их удалять. Любое решение?

0
задан 9 March 2021 в 15:28

1 ответ

Я закончил установку исправлений, компиляцию и установку libxft-2.3.3 в префиксе /usr/local, а затем перекомпилировал st, dmenu и dwm, используя там библиотеку и заголовочные файлы, а не версии, предоставляемые Ubuntu. Это позволило мне сохранить версии Ubuntu.

Цветной смайлик в dwm bar

Цветной смайлик в терминале в 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 не забудьте прокомментировать код iscol в drw.c для повторного включения цветных шрифтов после установки патча libxft-bgra, иначе вы не получите цвет ни в одном из них.

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

Дайте мне знать, если вам понадобится еще какая-нибудь информация. Для меня все прошло довольно безупречно, и определенно приятно иметь цветные смайлики в моих бессосных инструментах.

0
ответ дан 18 March 2021 в 23:27

Другие вопросы по тегам:

Похожие вопросы: