polybar 删除不匹配的字符错误

polybar 删除不匹配的字符错误

我正在使用 i3 和 polybar,在我的工作区名称中包含一些 Font Awesome 字符,但是当我启动 polybar 时,它显示以下错误:

warn: Dropping unmatched character  (U+e26f)
warn: Dropping unmatched character  (U+e028)
warn: Dropping unmatched character  (U+e026)
warn: Dropping unmatched character  (U+e21a)
warn: Dropping unmatched character  (U+e23a)
warn: Dropping unmatched character  (U+e0cb)
warn: Dropping unmatched character  (U+e016)
warn: Dropping unmatched character  (U+e10c)

我已尽力在 polybar 配置文件中定义字体,但没有效果!我的 polybar 配置文件字体:

font-0 = System San Francisco Display:size=9
font-1 = Font Awesome 5 Brands Regular:size=9
font-2 = Font Awesome 5 Free Regular:size=9
font-3 = Font Awesome 5 Free Solid:size=9

这是输出fc-list | grep Awesome

/home/user/.fonts/fa-brands-400.ttf: Font Awesome 5 Brands,Font Awesome 5 Brands Regular:style=Regular
/home/user/.fonts/fa-regular-400.ttf: Font Awesome 5 Free,Font Awesome 5 Free Regular:style=Regular
/home/user/.fonts/fa-solid-900.ttf: Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid

答案1

polybar wiki 有一个指导用于调试字体问题。

第 2 步说明:

检查您使用的所有图标是否都支持以下字体:
使用 gucharmap 并启用View > Show only glyphs from this font(这个很重要),然后搜索 (Ctrl-F) 放置的字符(从终端输出中复制它们),然后使用左上角的下拉菜单切换到配置中的每种字体。如果所需的图标从未出现,则说明 polybar 配置中的所有字体都不支持该图标。要查找提供该图标的字体,我们建议您使用本页底部的 perl 脚本。
另一种方法是在 gucharmap 中禁用Show only glyphs from this font,图标现在应该会再次显示,如果没有显示,则表示您的系统上没有任何支持该图标的字体。如果它确实出现了,您可以按住右键单击,它会在工具提示中显示它来自的字体。

如果你按照这个步骤操作,你会发现那些不是 FontAwesome 图标。那些来自四季。如果您想使用该字体,您还需要知道它是一种位图字体,在 ubuntu 上默认情况下是禁用的。 askubuntu 答案可以告诉您如何做到这一点。

答案2

@Aidin 有一个 perl 脚本polybar 维基字体页面。您可以使用该脚本来查找具有特定代码点的字体。

    #!/usr/bin/perl
    # https://github.com/fbreitwieser
    use strict;
    use warnings;
    use Font::FreeType;
    my ($char) = @ARGV;
    foreach my $font_def (`fc-list`) {
        my ($file, $name) = split(/: /, $font_def);
        my $face = Font::FreeType->new->face($file);
        my $glyph = $face->glyph_from_char($char);
        if ($glyph) {
            print $font_def;
        }
    }

如果您将代码片段保存在文件“find_font.pl”中,只需通过 调用它即可perl find_glyph.pl ""。它将为您提供提供字形的字体。

您可能需要安装 FreeType Perl 模块。在基于 Debian 的系统上,您可以使用以下命令进行安装:

apt install libfont-freetype-perl

或者手动安装:

perl -MCPAN -e 'install Font::FreeType'

高血压

相关内容