news 2026/9/30 6:35:44

Adwaita Mono Nerd Font 完整指南:GNOME 默认等宽字体的图标化改造与使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Adwaita Mono Nerd Font 完整指南:GNOME 默认等宽字体的图标化改造与使用
  • 开发工具
  • CLI

【免费下载链接】nerd-fonts

Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more

项目地址:https://gitcode.com/GitHub_Trending/ne/nerd-fonts
点击查看免费下载

导读

本指南围绕 Nerd Fonts 仓库中 AdwaitaMono 补丁字体 展开,系统介绍 Adwaita Mono——GNOME 48+ 桌面环境的默认等宽字体——在打上 Nerd Fonts 图标补丁后的全部使用要点:三种变体(Nerd Font / Mono / Propo)如何选择、14 套内置图标集的构成与版本、连字行为,以及下载已补丁字体或使用 font-patcher 自行打补丁两条获取路径。阅读完你将能准确判断"该用哪个变体装进终端",并能基于当前仓库完成安装与定制。

Adwaita Mono:GNOME 桌面默认等宽字体的来龙去脉

Adwaita Mono 是GNOME 48+ 的默认等宽字体。它并非从零设计,而是对 Iosevka 字体的定制化修改,目标是让等宽场景与 Adwaita Sans 视觉风格协调统一;而 Adwaita Sans 本身又是 Inter 字体的一种变体,其核心差异化在于对小写字母 L(l)做了消歧处理,避免与数字 1、大写 I 混淆。

当前仓库中的 Adwaita Mono 上游版本为34.1(见 fonts.json 中"version": "34.1"的声明)。字体源文件与许可证由 GNOME 官方 GitLab 实例提供,Nerd Fonts 仓库仅负责对其进行图标补丁化:

  • 未打补丁的原始字体存放在 src/unpatched-fonts/AdwaitaMono/,包含AdwaitaMono-Regular.ttf、AdwaitaMono-Bold.ttf、AdwaitaMono-Italic.ttf、AdwaitaMono-BoldItalic.ttf四个字重/样式文件;
  • 打补丁后的成品位于 patched-fonts/AdwaitaMono/。

在 fonts.json 的元数据中,Adwaita Mono 被标记为"isMonospaced": true(等宽字体)、"licenseId": "OFL-1.1-no-RFN"(SIL Open Font License 1.1,且不允许 Reserved Font Name 声明,对应主仓库表格中 *RFN 一栏的 "NO"),"description": "The monospace typeface for GNOME"。主 readme.md 的 Patched Fonts 表格同样将其版本列为 34.1。

三种字体变体:Nerd Font / Mono / Propo 该怎么选

Nerd Fonts 的补丁过程会对每个源字体生成三个变体,AdwaitaMono 也不例外。理解三者的差异是正确安装的前提。

TL;DR 速查

  • 终端等强制等宽场景:选择带Nerd Font Mono(缩写NFM)的变体。它严格保持每个字形占一个字符宽度的等宽特性,是终端、命令行工具、代码编辑器的安全之选;
  • 希望图标更大更醒目:选择不带Mono的Nerd Font(缩写NF)变体。此时图标宽度约为普通字母的 1.5 倍,视觉冲击力更强,多数现代终端都能支持,但实际效果因终端而异(ymmv);
  • 比例字体场景(GUI 界面元素、幻灯片/演示文稿等):选择带Nerd Font Propo(缩写NFP)的变体。"Propo" 即 proportional(比例)的缩写,图标按比例宽度排布,适合非等宽排版环境。

变体在仓库中的体现

这三个变体的区分可以直接从仓库文件命名中验证。以 install.sh 的安装逻辑为例,脚本通过文件名匹配筛选变体:

  • 变体M:find_filter="-name '*NerdFontMono*'"(只取 Mono 变体)
  • 变体P:find_filter="-name '*NerdFontPropo*'"(只取 Propo 变体)
  • 默认:-not -name '*NerdFontMono*' -and -not -name '*NerdFontPropo*' -and -name '*NerdFont*'(排除两类,取纯 Nerd Font 变体)

安装后的字族名称对应为:AdwaitaMono Nerd Font、AdwaitaMono Nerd Font Mono、AdwaitaMono Nerd Font Propo。请以该名称在终端或编辑器的字体设置中检索。

图标集构成:AdwaitaMono 内置了哪些图标

Nerd Fonts 的核心价值在于将多套业界常用图标字体合并注入到等宽字体中。AdwaitaMono 补丁版包含以下 14 套图标集(上游版本与许可证来自 patched-fonts/AdwaitaMono/README.md 的 Icon sets 表格):

图标集名称上游项目版本许可证
Codiconsmicrosoft/vscode-codicons0.0.45CC BY 4.0
Deviconsdevicons/devicon2.17.0MIT
extraglyphssource-foundry/Hack-MIT
Font AwesomeFortAwesome/Font-Awesome6.5.1CC BY 4.0
Font Awesome ExtensionAndreLZGava/font-awesome-extension0.0.3MIT
Font Logoslukas-w/font-logos1.3.0unlicensed
MaterialDesignTemplarian/MaterialDesign-FontOct 6, 2022Apache 2.0
Octiconsprimer/octicons18.3.0MIT
Seti and originaljesseweed/seti-ui0.8.1MIT
Pomiconsgabrielelana/pomicons1.001OFL 1.1 RFN
Powerline Extraryanoasis/powerline-extra-symbols1.200MIT
Powerline Symbolspowerline/powerline1.000 (ca 2013)MIT
Power Symbols IECjloughry/UnicodeFeb 2015MIT
Weather Iconserikflowers/weather-icons2.0.10 (1.100)OFL 1.1

这套图标集构成与仓库全局的图标资产保持一致——完整的图标 SVG 源文件位于 src/svgs/,字形数据与名称映射分别维护在 glyphnames.json 中。正因为注入了 Material Design Icons、Font Awesome、Octicons 等主流图标集,开发者才能在 Vim、tmux、shell 提示符(Powerline 风格)、文件管理器预览等场景中直接输出对应的图标字形。

连字支持:补丁后是否保留连字

Adwaita Mono 源于 Iosevka,Iosevka 本身以丰富的编程连字(ligature)著称。补丁后的行为规则如下:

  • 连字通常会被保留在补丁字体中。font-patcher 只做字形合并,不会主动破坏源字体的连字规则;
  • 历史上 Nerd Fontsv2.0.0 的Nerd Font Mono变体曾不包含连字,这一限制自v2.1.0 起已移除。也就是说,只要使用 v2.1.0 及更新版本的补丁字体,Mono 变体同样保留连字;
  • 如果你的终端支持连字渲染、但个人不希望看到连字效果,通常可以在终端自身的设置中显式关闭连字功能,无需更换字体。

两条获取路径:下载成品 or 自行打补丁

方案一:直接下载已补丁字体

最省事的做法是从仓库的 Release 页面获取稳定版本。AdwaitaMono 提供了两种封装格式,均位于最新 Release 的下载资源中:

  • AdwaitaMono.zip(通用压缩包)
  • AdwaitaMono.tar.xz(体积更小)

下载解压后,将字体文件安装到系统字体目录(Linux 通常为~/.local/share/fonts或/usr/share/fonts),然后运行fc-cache -f刷新字体缓存即可在终端中看到。

方案二:使用 font-patcher 自行打补丁

如果你需要裁剪图标集以缩小字体体积、或要定制源字体未提供的字重/样式变体,可以基于仓库中的 font-patcher 脚本自行处理:

# 以 Adwaita Mono 原字体为例,生成带全部图标集的补丁字体 font-patcher -c AdwaitaMono-Regular.ttf # 也可以只注入部分图标集(--only)以控制最终文件大小 font-patcher --only "Font Awesome" AdwaitaMono-Regular.ttf

font-patcher 支持通过--mono、--proportional等参数控制输出变体类型,以及--only/--exclude精确指定注入哪些图标集。可用的全部命令行参数可在仓库根目录的 font-patcher 脚本与 src/config.sample.cfg 配置样例中查阅。打补丁所需的源字体正是 src/unpatched-fonts/AdwaitaMono/ 目录下的四个.ttf文件。

在 Linux 上一键安装所有补丁字体

仓库提供了跨平台的安装脚本,也可按需只安装 AdwaitaMono。以 install.sh 为例,其支持通过环境变量或参数选择字体目录与变体:

# 仅安装 AdwaitaMono 的默认 Nerd Font 变体 ./install.sh AdwaitaMono # 指定变体:M 为 Mono、P 为 Propo ./install.sh -M AdwaitaMono # 安装 AdwaitaMono Nerd Font Mono ./install.sh -P AdwaitaMono # 安装 AdwaitaMono Nerd Font Propo

脚本内部正是通过前面介绍的find_filter规则按文件名筛选出对应变体的字体文件,再复制到系统字体目录并刷新缓存。Windows 用户可参考同目录的 install.ps1;在浏览器中通过 CSS 使用图标字体的方式,可参见 css/nerd-fonts-generated.css。

小结

Adwaita Mono 作为 GNOME 48+ 的默认等宽字体,经由 Nerd Fonts 补丁后兼具 Iosevka 血统的字形风格与 14 套主流图标集的完整字形覆盖。选择变体时记住一句话:终端用 Mono,大图标用 NF,比例排版用 Propo。下载成品或基于 font-patcher 自行定制,两条路径在当前仓库中都有完整的实现支撑(元数据见 fonts.json,源字体见 src/unpatched-fonts/AdwaitaMono/),可随时落地使用。

  • 开发工具
  • CLI

【免费下载链接】nerd-fonts

Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more

项目地址:https://gitcode.com/GitHub_Trending/ne/nerd-fonts
点击查看免费下载
上一篇:如何在vim和neovim中使用fff作为文件选择器
下一篇:QuantTrader: Python驱动的量化交易工具箱

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 6:35:03

Windows 上用 Kimi Code 搭配 ESP-IDF 搭建 ESP32-C3 开发环境并点亮 LED

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/30 6:33:24

纯Verilog实现FPGA硬解PNG:DEFLATE与Huffman解码实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/30 6:32:53

VMware搭建Windows Server:DNS与IIS Web站点配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/30 6:32:38

Linux面试题大全:覆盖命令、权限、进程、网络与Shell脚本

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华