Home FontsHow to Install JetBrains Mono on Linux (Nerd Font and Ligatures)

How to Install JetBrains Mono on Linux (Nerd Font and Ligatures)

By sk
36 views 10 mins read

Quick Answer

  • To install JetBrains Mono on Linux, run JetBrains' official install script with curl.
  • Install JetBrains Mono from your distro's package manager (ttf-jetbrains-mono on Arch, jetbrains-mono-fonts on Fedora, fonts-jetbrains-mono on Ubuntu/Debian).
  • Download the JetBrains Mono font manually, copy the .ttf files to ~/.local/share/fonts, and run fc-cache -f -v to refresh the font cache.

What is JetBrains Mono?

JetBrains Mono is a free, open-source monospaced typeface designed specifically for developers, with increased letter height, distinct character shapes, and ligature support that make code easier to read.

In this brief guide, we will cover different ways to install JetBrains Mono font on Linux.

Method 1: Install JetBrains Mono using Official One-Line Install Script

JetBrains Mono team published an official install script that downloads, extracts, and installs the font automatically. No manual steps needed!

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

This is the easiest method, and it always installs the latest release. Skip to Method 1 or 2 if you'd rather control each step yourself, or if your environment restricts running remote scripts.

Method 2: Install JetBrains Mono via Package Manager

This is the fastest method if your distro includes JetBrains Mono in its repositories.

Arch Linux / Manjaro:

sudo pacman -S ttf-jetbrains-mono

Fedora, RHEL-based Systems:

sudo dnf install jetbrains-mono-fonts

For a more up-to-date build than Fedora's default repos carry, use the community COPR repository instead:

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

Debian / Linux Mint / Ubuntu:

sudo apt install fonts-jetbrains-mono

If your package manager can't find this package, your distro's repos may not include it yet, use the manual method below instead.

Method 3: Manual Installation (Works on Any Distro)

This method works regardless of which Linux distribution you're using, since it doesn't rely on a package repository.

Step 1: Download the font

JetBrains names each release asset with its version number (e.g. JetBrainsMono-2.304.zip), so there's no fixed "latest" URL to link directly. Fetch the current download link from the GitHub API instead:

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

Alternatively, just open the Jetbrains mon releases page in your browser and download the .zip asset directly.

Step 2: Extract the archive

unzip JetBrainsMono.zip -d JetBrainsMono

Step 3: Move the font files to your local fonts directory

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

Step 4: Refresh the font cache

fc-cache -f -v

Step 5: Verify the installation

fc-list | grep -i "jetbrains"

If the command returns a list of JetBrains Mono font files, the installation succeeded.

Method 4: System-Wide Installation (All Users)

To make JetBrains Mono available to every user on the machine instead of just your account, install it to /usr/share/fonts with sudo:

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

On Arch and Debian-based systems you may also see /usr/local/share/fonts recommended for manually-added fonts, to keep them separate from package-manager-installed ones. Either location works, since fontconfig scans both by default.

After Installing: Enable the Font

Once installed, JetBrains Mono won't appear until you restart the application you want to use it in. Restart your terminal emulator, code editor, or IDE, then select JetBrains Mono from its font settings.

Want Icons Too? Install the JetBrainsMono Nerd Font Version Instead

If you use a terminal prompt theme like Starship, Powerlevel10k, or oh-my-posh, or a status bar like Polybar or Waybar, you actually want JetBrainsMono Nerd Font.

JetBrainsMono Nerd Font is a patched version that adds icon glyphs (Git branch symbols, folder icons, OS logos) on top of the regular typeface. Regular JetBrains Mono will show broken boxes () where these icons should appear.

Option A: using getnf (Nerd Fonts installer script):

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

Arch users can also install the Nerd Font build straight from the official repos without any extra script:

sudo pacman -S ttf-jetbrains-mono-nerd

Option B: manual download:

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

After installing, select "JetBrainsMono Nerd Font" (not plain "JetBrains Mono") in your terminal or prompt theme's config.

Note on Nerd Font variants: The patched fonts ship in three flavors. Pick the one that matches your setup, per the official Nerd Fonts guidance:

  • Nerd Font Mono (NFM): icon glyphs are forced to standard monospace character width; use this if your terminal requires strictly fixed-width fonts
  • Nerd Font (NF, no "Mono" suffix): icons render larger, around 1.5 characters wide; works in most terminals but not all
  • Nerd Font Propo (NFP): proportional icon spacing; use this for GUI elements, status bars, or presentations rather than terminals

No Ligatures? Try JetBrains Mono NL

If ligatures render incorrectly in a specific app (a known issue in some terminals like older xfce4-terminal builds, where == and >= can visually overlap or swap), install JetBrains Mono NL instead.

It's the same typeface with ligatures removed entirely, and it's included in the same download archive as the regular font. Just select the NL font files during installation to install it.

Special Cases: WSL, Flatpak, and Snap Apps

WSL (Windows Subsystem for Linux)

Installing the font inside WSL only makes it available to Linux GUI apps running under WSLg.

If you want the font to show up in Windows Terminal, you need to install it on the Windows side too. Download the .ttf files and double-click each one in Windows Explorer, or right-click → Install.

Flatpak apps

Most Flatpak apps can already see fonts installed in ~/.local/share/fonts, since Flatpak automatically exposes your host font directories to the sandbox through a built-in font-sharing mechanism. No manual permission is usually needed.

That said, some apps (particularly certain Electron-based ones) don't always pick up sandboxed fonts correctly. If a specific Flatpak app still isn't showing the font after a restart, you can grant it broader filesystem access as a fallback:

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

Snap apps

Most Snap apps use strict confinement and read fonts from the host automatically via the desktop interface, but if a font doesn't appear, check:

snap connections <snap-name> | grep font

Configuring Ligatures After Installation

Installing the font is only half the job. Most editors and terminals need ligatures explicitly turned on.

VS Code: in settings.json:

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

Kitty terminal: in kitty.conf:

font_family JetBrains Mono

Kitty renders ligatures by default if the font supports them.

Alacritty: in alacritty.toml:

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

Note: Alacritty does not support ligatures natively as of recent versions.

GNOME Terminal

GNOME Terminal (and other VTE-based terminals) don't render ligatures properly, so switch to Kitty, WezTerm, or Ghostty if ligatures matter to you. Don't switch to Alacritty for this purpose specifically, since it doesn't support ligatures either (see above).

Ghostty: in config:

font-family = JetBrains Mono

Ghostty renders ligatures by default when the font supports them, similar to Kitty.

Troubleshooting

1. Font installed but not showing up anywhere

Run fc-cache -f -v again and confirm the .ttf files are actually in ~/.local/share/fonts with ls ~/.local/share/fonts. A fully quit-and-reopen (not just a new window) is often required.

2. Shows up in some apps but not others

GTK and Qt apps sometimes cache font lists separately. Log out and back in, or reboot, to force a full refresh.

3. Works after reboot but fc-cache alone didn't fix it

This is normal. Some apps only read the system font list once at startup and won't reload until the process fully restarts, not just fc-cache.

4. Flatpak app can't see the font

See the Flatpak section above. Most apps see the font automatically, but a specific app may need an explicit filesystem override.

JetBrains Mono vs. Other Popular Coding Fonts

FontLigaturesNerd Font AvailableBest For
JetBrains MonoYesYesGeneral coding, increased line height
Fira CodeYesYesWide ligature support, older/established
Cascadia CodeYesYesWindows Terminal default, cursive ligatures
IosevkaYes (configurable)YesNarrow/condensed, highly customizable

Related Read:


Uninstalling JetBrains Mono

To remove a user-level install:

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

For a system-wide install:

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

Adjust the path if you installed to /usr/local/share/fonts instead. See the system-wide installation section above.

Frequently Asked Questions (FAQ)

Q: Where does JetBrains Mono get installed on Linux?

A: User-level installs go to ~/.local/share/fonts. System-wide installs go to /usr/share/fonts (JetBrains' own recommended location), making the font available to all users on the machine. /usr/local/share/fonts also works and is preferred on some distros for manually-added fonts.

Q: Why isn't JetBrains Mono showing up after installation?

A: Run fc-cache -f -v to rebuild the font cache, then fully restart the application (not just reopen a window) so it re-reads the system font list.

Q: Is JetBrains Mono free to use?

A: Yes. JetBrains Mono is open-source and released under the SIL Open Font License, free for personal and commercial use.

Q: Does JetBrains Mono support ligatures?

A: Yes, JetBrains Mono includes optional programming ligatures for character combinations like ->, !=, and =>, though you may need to enable ligature support separately in your editor or terminal settings.

Q: Can I install JetBrains Mono without a package manager?

A: Yes. Download the .ttf files directly from the official GitHub releases page, copy them to ~/.local/share/fonts, and run fc-cache -f -v.

Q: What's the difference between JetBrains Mono and JetBrainsMono Nerd Font?

A: Plain JetBrains Mono is the standard typeface. JetBrainsMono Nerd Font is a patched version with the same letterforms plus thousands of extra icon glyphs, used for terminal prompt themes and status bars that display icons.

Q: Why do I see broken boxes instead of icons in my terminal prompt?

A: Your prompt theme (Starship, Powerlevel10k, etc.) needs a Nerd Font variant, not the plain font. Install JetBrainsMono Nerd Font and select it specifically in your terminal profile.

Q: Does JetBrains Mono work in WSL and Windows Terminal?

A: You need to install the font twice. Once inside WSL for Linux GUI apps, and once on the Windows side (by double-clicking the .ttf files in Explorer) for Windows Terminal to see it.

Q: Why can't my Flatpak app see the installed font?

A: Most Flatpak apps see host fonts automatically through Flatpak's built-in font sharing. If a specific app (often an Electron-based one) still doesn't, grant it explicit access with flatpak override --user --filesystem=~/.local/share/fonts <app-id> and restart the app.

Q: What is JetBrains Mono NL?

A: JetBrains Mono NL is the same typeface as JetBrains Mono but without ligatures built in. Use it if an app renders ligatures incorrectly or if you simply prefer plain character rendering.

Q: How do I uninstall JetBrains Mono on Linux?

A: Delete the .ttf files from ~/.local/share/fonts (or /usr/share/fonts//usr/local/share/fonts for a system-wide install), then run fc-cache -f -v to refresh the font cache.

Conclusion

JetBrains Mono is one of the most widely used coding fonts on Linux, and getting it installed only takes a minute. If you use a terminal prompt theme or status bar, don't forget the Nerd Font variant, and if ligatures render oddly in your terminal, JetBrains Mono NL is there as a clean fallback.

Once it's installed, restart your terminal or editor, select JetBrains Mono in the font settings, and you're set.

Resource:

You May Also Like

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More