
내 dmenu가 noto 컬러 이모티콘 글꼴을 감지할 수 없습니다. 다른 글꼴은 감지할 수 있지만 이 글꼴은 감지할 수 없습니다. 이 문제를 해결하는 방법은 무엇입니까?
➜ 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.
답변1
글꼴 렌더링을 처리하기 위해 호출되는 라이브러리 dmenu
와 같은 몇 가지 짜증나는 도구를 사용합니다. 이 라이브러리에는 컬러 글꼴을 렌더링하지 못하게 하는 버그가 있습니다.st
libxft
다행히 이 버그는 실제로 수정되었습니다., 그러나 어떤 이유로든 업스트림에 병합되지 않았습니다. 따라서 컬러 글꼴을 작동시키려면 이 패치 버전을 설치한 다음 (이 버그로 인해) 컬러 글꼴을 수동으로 비활성화하는 libxft
체크 인을 제거해야 합니다 . dmenu
아래에 이 작업을 수행하기 위한 수동 단계를 작성했지만 더 쉬운 솔루션으로 이 포크를 설치하면 됩니다 dmenu
.https://github.com/valeriangalliat/dmenumoji
수동 단계
아치 리눅스에서는 다음 패키지를 사용하여 패치 버전 libxft
(이전 버전 대체)을 설치할 수 있습니다.libxft-bgra. 다른 배포판에서는 libxft 소스를 다운로드해야 합니다.패치를 적용하다를 클릭한 다음 패치된 libxft 버전을 수동으로 컴파일하고 설치합니다.
패치된 라이브러리를 얻은 후에는 dmenu의 소스를 편집하여 (이전에 깨진) 컬러 글꼴을 비활성화하는 코드를 제거해야 합니다. 이 수표는 상단 근처에 있으며 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;
}
이 코드를 제거하고 dmenu를 다시 컴파일하면 컬러 글꼴을 사용할 수 있습니다!다음은 블로그 게시물입니다..