Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 8 additions & 139 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,158 +1,27 @@
# NerdFonts

This is a PowerShell module for installing NerdFonts on your system. This module and repository does not contain the fonts themselves,
but rather a way to install them on your system.

🎉 Kudos to owner of NerdFonts, @ryanoasis and the rest of the NerdFonts community! 🎉
For any issues with the fonts themselves, please refer to the [NerdFonts](https://github.com/ryanoasis/nerd-fonts/) repository.
All donations on this repository will go to the NerdFonts project.

## Prerequisites

- This module is cross-platform and supports the latest LTS version of [PowerShell](https://learn.microsoft.com/en-us/powershell/scripting/overview) on Windows, Linux, and macOS. This is not to be confused with Windows PowerShell. Install PowerShell by following the [official installation guide](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell).
- This module depends on the [Fonts](https://psmodule.io/Fonts) module to manage fonts on the system. This will be installed automatically when installing the module.
NerdFonts is a PowerShell module for downloading and installing fonts from Nerd Fonts.

## Installation

To install the module simply run the following command in a PowerShell terminal.
Install the module from the PowerShell Gallery:

```powershell
Install-PSResource -Name NerdFonts
Import-Module -Name NerdFonts
```

## Usage

### Install a NerdFont

To install a NerdFont on the system you can use the following command.

```powershell
Install-NerdFont -Name 'FiraCode' # Tab completion works on name
```

To download the font from the NerdFonts repository and install it on the system, run the following command.

```powershell
Install-NerdFont -Name 'FiraCode' -Scope AllUsers #Tab completion works on Scope too
```

To install only a specific variant from the archive, use the `-Variant` parameter. `Mono` is useful for terminal and editor setups where you only want the monospace family.

```powershell
Install-NerdFont -Name 'FiraCode' -Variant Mono
```

### Install all NerdFonts

To install all NerdFonts on the system you can use the following command.
## Documentation

This will download and install all NerdFonts to the current user.

```powershell
Install-NerdFont -All
```

To install all NerdFonts on the system for all users, run the following command.
This requires the shell to run in an elevated context (sudo or run as administrator).

```powershell
Install-NerdFont -All -Scope AllUsers
```

You can combine `-All` with `-Variant` to limit what gets installed from each archive:

```powershell
Install-NerdFont -All -Variant Mono
```

### Check if a NerdFont is installed

The [Fonts](https://psmodule.io/Fonts) module is installed automatically as a dependency and provides the
[`Get-Font`](https://psmodule.io/Fonts/Functions/Get-Font/) command for querying installed fonts on the system.

To check if a specific NerdFont is installed for the current user:

```powershell
Get-Font -Name 'FiraCode*'
```
Documentation is published at [psmodule.io/NerdFonts](https://psmodule.io/NerdFonts/).

To check across all users on the system:
Use PowerShell help and command discovery for module details:

```powershell
Get-Font -Name 'FiraCode*' -Scope AllUsers
```

If the command returns results, the font is installed. If it returns nothing, the font is not installed in that scope.

When you run `Install-NerdFont` again without `-Force`, fonts that are already installed in the requested scope are skipped. Downloaded archives are also cached per Nerd Fonts release so retries and repeated installs do not need to fetch the same ZIP again.

Cache locations:

- Windows: `%LOCALAPPDATA%/PSModule/NerdFonts/cache`
- macOS and Linux: `$HOME/.cache/PSModule/NerdFonts`

You can inspect the active cache path in PowerShell with:

```powershell
if ($IsWindows) {
Join-Path ([Environment]::GetFolderPath('LocalApplicationData')) 'PSModule/NerdFonts/cache'
} else {
Join-Path $HOME '.cache/PSModule/NerdFonts'
}
```

### Update an installed NerdFont

Individual font files do not embed a NerdFonts release version, so there is no direct way to check whether an installed
NerdFont is outdated. To ensure you have the version bundled with the module, reinstall the font using the `-Force` parameter:

```powershell
Install-NerdFont -Name 'FiraCode' -Force
```

If the font was originally installed for all users, update it with the matching scope (requires elevated privileges):

```powershell
Install-NerdFont -Name 'FiraCode' -Force -Scope AllUsers
```

This re-downloads and installs the font version bundled with your installed NerdFonts module, overwriting any existing
files. `-Force` also bypasses the local archive cache so the font ZIP is fetched again before reinstalling. To pick up newer font releases, update the NerdFonts module first (`Update-PSResource -Name NerdFonts` if you
installed via PSResourceGet, or `Update-Module -Name NerdFonts` if you installed via PowerShellGet).

### Uninstall a NerdFont

To uninstall a NerdFont, use the [`Uninstall-Font`](https://psmodule.io/Fonts/Functions/Uninstall-Font/) command
from the [Fonts](https://psmodule.io/Fonts) module (installed automatically as a dependency).

To uninstall a NerdFont from the current user:

```powershell
Uninstall-Font -Name 'FiraCode*' # Tab completion works on name
```

To uninstall a NerdFont for all users (requires elevated privileges):

```powershell
Uninstall-Font -Name 'FiraCode*' -Scope AllUsers
Get-Command -Module NerdFonts
Get-Help <CommandName> -Examples
```

## Contributing

Coder or not, you can contribute to the project! We welcome all contributions.

### For Users

If you don't code, you still sit on valuable information that can make this project even better. If you experience that the
product does unexpected things, throw errors or is missing functionality, you can help by submitting bugs and feature requests.
Please see the issues tab on this project and submit a new issue that matches your needs.

### For Developers

If you do code, we'd love to have your contributions. Please read the [Contribution guidelines](CONTRIBUTING.md) for more information.
You can either help by picking up an existing issue or submit a new one if you have an idea for a new feature or improvement.

## Links

- NerdFonts | [GitHub](https://github.com/ryanoasis/nerd-fonts) | [Web](https://www.nerdfonts.com/)
Issues and pull requests are welcome. Please use the repository issue tracker to report bugs, request features, or discuss improvements.
Loading