nanguo@suse:~> fc-list :charset=1f40d
/usr/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf: Twitter Color Emoji:style=Regular
** 为什么我输入法里的 emoji 是带颜色的,输出后就是黑白的了 **
nanguo@suse:~> fc-list :charset=1f40d
/usr/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf: Twitter Color Emoji:style=Regular
** 为什么我输入法里的 emoji 是带颜色的,输出后就是黑白的了 **
遇过这个问题(我使用的是 noto color emoji),最后是通过配置 fontconfig 解决的,不过我并不会写配置,我直接拿 arch 那边的配置文件来用了。
https://aur.archlinux.org/cgit/aur.git/tree/75-noto-color-emoji.conf?h=noto-color-emoji-fontconfig
<?xml version="1.0"?>
<! DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- 设置 JetBrainsMono Nerd Font 为英文字体 -->
<match target="font">
<edit name="family" mode="prepend">
<string>JetBrainsMono Nerd Font</string>
</edit>
<test qual="any" name="lang">
<string>en</string>
</test>
</match>
<!-- 设置中文字体 -->
<match target="font">
<edit name="family" mode="prepend">
<string>SourceHanSansCN</string>
</edit>
<test qual="any" name="lang">
<string>zh</string>
</test>
</match>
<!-- Add generic family. -->
<match target="pattern">
<test qual="any" name="family"><string>emoji</string></test>
<edit name="family" mode="assign" binding="same"><string>Twitter Color Emoji</string></edit>
</match>
<!-- This adds Noto Color Emoji as a final fallback font for the default font families. -->
<match target="pattern">
<test name="family"><string>sans</string></test>
<edit name="family" mode="append"><string>Twitter Color Emoji</string></edit>
</match>
<match target="pattern">
<test name="family"><string>serif</string></test>
<edit name="family" mode="append"><string>Twitter Color Emoji</string></edit>
</match>
<match target="pattern">
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="append"><string>Twitter Color Emoji</string></edit>
</match>
<match target="pattern">
<test name="family"><string>monospace</string></test>
<edit name="family" mode="append"><string>Twitter Color Emoji</string></edit>
</match>
<!-- Block Symbola from the list of fallback fonts. -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="family">
<string>Symbola</string>
</patelt>
</pattern>
</rejectfont>
</selectfont>
</fontconfig>
你首先得说是在什么程序里是黑白的,这个程序是像普通开源软件那样直接装在系统里的、使用系统库,还是自带了一堆库的闭源软件,又或者是 flatpak 这种容器解决方案?
这很好理解啊,你输入法的候选窗口用的是一个字体,输出到程序后,程序用的是另一个字体了。