使用 dmenu 自定义字体

使用 dmenu 自定义字体

我在运行 dmenu 的各个地方找到了参考资料,如下所示:

dmenu_run -b -fn 'Inconsolata 12'

然而,无论我尝试什么字体名称的变化,我总是得到dmenu: warning: cannot load font <font name>

fc-list | grep cons给我:

/usr/share/fonts/truetype/inconsolata/Inconsolata.otf: Inconsolata:style=Medium

它没有显示,xlsfonts并且所有通过 xlsfonts 显示的字体都可以正常工作。

从命令行引用这些字体的正确方法是什么?

此外,这是引用字体的标准方式吗?还是在使用类似的程序时它会发生变化pango

答案1

dmenu 的标准版本不支持 xft 字体。要使用 Inconsolata 等字体,您需要构建 dmenu 的修补版本。

  1. 下载源代码修补
  2. 打开终端,cd进入包含源代码和补丁的目录。
  3. 运行以下命令来应用补丁:

    tar zxvf dmenu-4.5.tar.gz
    cd dmenu-4.5
    mv ../dmenu-4.5-xft.diff .
    patch -p1 < dmenu-4.5-xft.diff
    
  4. 要构建 dmenu 的修改版本,您需要安装以下软件包:libxft-dev libxft2 libxinerama-dev

  5. 更新 UBUNTU 14.04 构建失败

    致命错误:ft2build.h:没有此文件或目录

    要修复此问题,请编辑 config.mk 文件并更改

    XFTINC = -I /usr/local/include/freetype2

    XFTINC = -I /usr/include/freetype2

  6. 运行以下命令来构建并安装修改后的 dmenu 版本:

    make
    sudo make install
    

答案2

您必须使用X 逻辑字体描述 (XLFD)提供的字体的全名xfontsel。例如,您可以使用类似这样的名称-bitstream-*-*-*-*-*-12-*-*-*-*-*-*-*

dmenu_run -b -fn -bitstream-*-*-*-*-*-12-*-*-*-*-*-*-*

xfontsell该工具允许您预览不同的设置。

如果你想使用如下语法:

dmenu_run -b -fn <family>-<size>:<name>=<value>

这更接近你问的,你可以使用Xft 支持补丁。请参阅这里有关如何使用补丁的说明dmenu

答案3

自 dmenu 4.6(2015 年 11 月发布)以来,XFT 字体渲染默认启用(4.6 发行说明),这样就可以了:

dmenu_run -fn 'Inconsolata 12'

相关内容