快速安装

  • 运行 JetBrains 官方安装脚本:curl
  • 通过发行版包管理器安装(Arch: ttf-jetbrains-mono,Fedora: jetbrains-mono-fonts,Ubuntu/Debian: fonts-jetbrains-mono)
  • 手动下载字体,将 .ttf 文件复制到 ~/.local/share/fonts,然后运行 fc-cache -f -v 刷新字体缓存

什么是 JetBrains Mono?

JetBrains Mono 是一款免费、开-s源的等宽字体,专为开发者设计,具有更高的字母高度、清晰的字符形状和连字支持,使代码更易阅读。

方法 1:使用官方一键安装脚本

JetBrains Mono 团队发布了官方安装脚本,可自动下载、解压并安装字体,无需手动操作:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/install_manual.sh)"

这是最简单的方法,始终安装最新版本。如果你希望手动控制每一步,或你的环境restricts运行远程脚本,请使用方法 1 或 2。

方法 2:通过包管理器安装

如果你的发行版仓库中包含 JetBrains Mono,这是最快的方法。

Arch Linux / Manjaro:

sudo pacman -S ttf-jetbrains-mono

Fedora、RHEL 系系统:

sudo dnf install jetbrains-mono-fonts

如需比 Fedora 默认仓库更-d新的版本,可使用社区 COPR 仓库:

sudo dnf copr enable elxreno/jetbrains-mono-fonts
sudo dnf install jetbrains-mono-fonts

Debian / Linux Mint / Ubuntu:

sudo apt install fonts-jetbrains-mono

如果包管理器找不到该软件包,说明你的发行版仓库可能尚未包含它,请改用下面的手动方法。

方法 3:手动安装(适用于任何发行版)

此方法不依赖包仓库,适用于任何 Linux 发行版。

Step 1:下载字体

JetBrains 的每个发布资产都包含版本号(例如 JetBrainsMono-2.304.zip),因此没有固定的“最新”URL。通过 GitHub API 获取当前下载链接:

DOWNLOAD_URL=$(curl -s https://api.github.com/repos/JetBrains/JetBrainsMono/releases/latest | grep "browser_download_url.*zip" | cut -d '"' -f 4)
wget "$DOWNLOAD_URL" -O JetBrainsMono.zip

或者,直接在浏览器中打开 JetBrains Mono 发布页面,下载 .zip 资产。

Step 2:解压归档

unzip JetBrainsMono.zip -d JetBrainsMono

Step 3:将字体文件移动到本地字体目录

mkdir -p ~/.local/share/fonts
cp JetBrainsMono/fonts/ttf/*.ttf ~/.local/share/fonts/

Step 4:刷新字体缓存

fc-cache -f -v

Step 5:验证安装

fc-list | grep -i "jetbrains"

如果命令返回 JetBrains Mono 字体文件列表,则安装成功。

方法 4:系统级安装(所有用户)

要使 JetBrains Mono 可供机器上的所有用户使用,而不是仅限你的账户,请使用 sudo 安装到 /usr/share/fonts:

sudo mkdir -p /usr/share/fonts/jetbrains-mono
sudo cp JetBrainsMono/fonts/ttf/*.ttf /usr/share/fonts/jetbrains-mono/
sudo fc-cache -f -v

在 Arch 和 Debian 系系统上,也可能推荐使用 /usr/local/share/fonts 存放手动添加的字体,以与包管理器-i安装的字体分开。两个位置均可,因为字体config默认都会扫描。

安装后:启用字体

安装后,JetBrains Mono 不会立即出现,需要重启要使用它的应用程序。重启终端模拟器、代码编辑器或 IDE,然后在其字体设置中选择 JetBrains Mono。

需要图标?安装 JetBrainsMono Nerd Font 版本

如果你使用 Starship、Powerlevel10k、oh-my-posh 等终端提示主题,或 Polybar、Waybar 等状态栏,你实际需要的是 JetBrainsMono Nerd Font。

JetBrainsMono Nerd Font 是在常规字体基础上打入了图标字形(Git 分支符号、文件夹图标、操作系统徽标)的修补版本。普通 JetBrains Mono 会显示乱码方块(▯)。

选项 A:使用 getnf(Nerd Fonts 安装脚本):

curl -fsSL https://raw.githubusercontent.com/getnf/getnf/main/install.sh | bash
getnf -i JetBrainsMono

Arch 用户也可以直接从官方仓库安装 Nerd Font 构建版本,无需额外脚本:

sudo pacman -S ttf-jetbrains-mono-nerd

选项 B:手动下载:

mkdir -p ~/.local/share/fonts/JetBrainsMonoNerd
cd ~/.local/share/fonts/JetBrainsMonoNerd
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip
unzip JetBrainsMono.zip
fc-cache -f -v

安装后,在终端或提示主题的字体设置中选择 "JetBrainsMono Nerd Font"(而不是普通的 "JetBrains Mono")。

关于 Nerd Font 变体的说明: 修补后的字体有三种风格。根据你的设置选择,参考 官方 Nerd Fonts 指南:

  • Nerd Font Mono(NFM):图标字形强制为标准的等宽字符宽度;如果你的终端要求严格等宽字体,请使用此版本
  • Nerd Font(NF,无 "Mono" 后缀):图标渲染较大,约 1.5 个字符宽;适用于大多数终端,但并非全部
  • Nerd Font Propo(NFP):比例图标间距;用于 GUI 元素、状态栏或演示文稿,而非终端

没有连字?尝试 JetBrains Mono NL

如果连字在特定应用中渲染不正确(某些终端如旧版 xfce4-terminal 的已知问题,其中 == 和 >= 可能视觉重叠或交换),请安装 JetBrains Mono NL。

它与常规字体相同,但完全移除了连字,包含在同一下载归档中。安装时选择 NL 字体文件即可。

特殊情况:WSL、Flatpak 和 Snap 应用

WSL(Windows Subsystem for Linux)

在 WSL 内部安装字体仅使其可用于 WSLg 下的 Linux GUI 应用。

如果希望字体在 Windows Terminal 中显示,还需要在 Windows 侧安装。下载 .ttf 文件,在 Windows 资源管理器中双-c击每个文件,或右键单击 → 安装。

Flatpak 应用

大多数 Flatpak 应用已能识别安装在 ~/.local/share/fonts 中的字体,因为 Flatpak 通过内置的字体共享机制自动将主机字体目录暴露给沙箱。通常无需手动授权。

但某些应用(尤其是基于 Electron 的应用)可能无法正确识别沙箱字体。如果特定 Flatpak 应用在重启后仍未显示字体,可授予其更广泛的文件系统访问权限作为后备方案:

flatpak override --user --filesystem=~/.local/share/fonts com.your.flatpak.app

Snap 应用

大多数 Snap 应用使用 strict 限制,并通过 desktop 接口自动从主机读取字体。但如果字体未出现,请检查:

snap connections <snap-name> | grep font

安装后配置连字

安装字体只是第一步。大多数编辑器和终端需要显式启用连字。

VS Code:在 settings.json 中:

{
"editor.fontFamily": "JetBrains Mono",
"editor.fontLigatures": true
}

Kitty 终端:在 kitty.conf 中:

font_family JetBrains Mono

Kitty 默认在字体支持时渲染连字。

Alacritty:在 alacritty.toml 中:

[font]
normal = { family = "JetBrains Mono" }

注意: Alacritty 在近期版本中不支持连字。

GNOME Terminal

GNOME Terminal(及其他基于 VTE 的终端)无法正确渲染连字,因此如果连字对你很重要,请切换到 Kitty、WezTerm 或 Ghostty。不要为此目的切换到 Alacritty,因为它也不支持连字(见上文)。

Ghostty:在 config 中:

font-family = JetBrains Mono

Ghostty 默认在字体支持时渲染连字,类似于 Kitty。

故障排除

1. 字体已安装但任何地方都不显示

再次运行 fc-cache -f -v,并用 ls ~/.local/share/fonts 确认 .ttf 文件确实在 ~/.local/share/fonts 中。通常需要完全退-r出并重新打开应用(而不仅仅是新窗口)。

2. 在某些应用中显示,但在其他应用中不显示

GTK 和 Qt 应用有时会分别缓存字体列表。注销并重新登录,或重启,以强制完全刷新。

3. 重启后正常,但仅运行 fc-cache 未修复

这是正常的。某些应用仅在启动时读取系统字体列表,不会在进程完全重启前重新加载,而不仅仅是 fc-cache。

4. Flatpak 应用无法识别字体

请参阅上面的 Flatpak 部分。大多数应用会自动识别字体,但特定应用可能需要显式的文件系统覆盖。



卸载 JetBrains Mono

移除用户级安装:

rm ~/.local/share/fonts/JetBrainsMono*.ttf
fc-cache -f -v

移除系统级安装:

sudo rm -r /usr/share/fonts/jetbrains-mono
sudo fc-cache -f -v

如果安装到了 /usr/local/share/fonts,请相应调整路径。参见上面的系统级安装部分。

常见问题(FAQ)

问:JetBrains Mono 在 Linux 上安装到哪里?

答:用户级安装到 ~/.local/share/fonts。系统级安装到 /usr/share/fonts(JetBrains 官方推荐位置),使字体可供机器上所有用户使用。/usr/local/share/fonts 也可用,在某些发行版上更推荐用于手动添加的字体。

问:安装后 JetBrains Mono 为什么不显示?

答:运行 fc-cache -f -v 重建字体缓存,然后完全重启应用(而不仅仅是重新打开窗口),使其重新读取系统字体列表。

问:JetBrains Mono 免费使用吗?

答:是的。JetBrains Mono 是开-s源的,采用 SIL Open Font License 许可,可免费用于个人和商业用途。

问:JetBrains Mono 支持连字吗?

答:是的。JetBrains Mono 包含可选的编程连字,用于 ->、!= 和 => 等字符组合,但你可能需要在编辑器或终端设置中单独启用连字支持。

问:可以不通过包管理器安装 JetBrains Mono 吗?

答:可以。直接从 官方 GitHub 发布页面 下载 .ttf 文件,复制到 ~/.local/share/fonts,然后运行 fc-cache -f -v。

问:JetBrains Mono 和 JetBrainsMono Nerd Font 有什么区别?

答:普通 JetBrains Mono 是标准字体。JetBrainsMono Nerd Font 是修补版本,具有相同的字母形状,但增加了数千个额外的图标字形,用于显示图标的终端提示主题和状态栏。

问:为什么我的终端提示中显示乱码方块而不是图标?

答:你的提示主题(Starship、Powerlevel10k 等)需要 Nerd Font 变体,而不是普通字体。请安装 JetBrainsMono Nerd Font,并在终端配置文件中专门选择它。

问:JetBrains Mono 在 WSL 和 Windows Terminal 中能用吗?

答:需要安装两次字体。一次在 WSL 内部用于 Linux GUI 应用,一次在 Windows 侧(在资源管理器中双-c击 .ttf 文件)供 Windows Terminal 使用。

问:为什么我的 Flatpak 应用无法识别已安装的字体?

答:大多数 Flatpak 应用通过 Flatpak 内置的字体共享自动识别主机字体。如果特定应用(通常是基于 Electron 的应用)仍无法识别,请使用 flatpak override --user --filesystem=~/.local/share/fonts <app-id> 授予显式访问权限,然后重启应用。

问:什么是 JetBrains Mono NL?

答:JetBrains Mono NL 是与 JetBrains Mono 相同的字体,但未内置连字。如果某个应用连字渲染不正确,或者你更喜欢纯字符渲染,请使用此版本。

问:如何在 Linux 上卸载 JetBrains Mono?

答:从 ~/.local/share/fonts(或系统级安装的 /usr/share/fonts//usr/local/share/fonts)中删除 .ttf 文件,然后运行 fc-cache -f -v 刷新字体缓存。

结论

JetBrains Mono 是 Linux 上最常用的编码字体之一,安装只需一分钟。如果你使用终端提示主题或状态栏,不要忘记 Nerd Font 变体;如果连字在终端中渲染异常,JetBrains Mono NL 可作为干净的替代方案。安装完成后,重启终端或编辑器,在字体设置中选择 JetBrains Mono 即可。

资源: