An interactive installer for Nerd Fonts with automatic distribution detection and dependency management.
- ๐ง Cross-platform Support - Works on Arch, Debian, Ubuntu, Fedora, CentOS, RHEL, and Linux Mint
- ๐ฆ Automatic Dependencies - Installs
curl,unzip, andfontconfigautomatically - ๐ Live Font Discovery - Fetches current font list from Nerd Fonts GitHub API
- ๐ฏ Interactive Selection - Choose specific fonts or install all with one command
- ๐ Smart Installation - Installs to
~/.local/share/fontswith automatic cache updates - ๐จ Beautiful Interface - Colorful terminal output for better user experience
- ๐ก๏ธ Robust Error Handling - Comprehensive error checking and recovery
- โก High Performance - C version optimized for speed and memory efficiency
curl -sSLo nerdfonts-installer https://github.com/fam007e/nerd_fonts_installer/releases/latest/download/nerdfonts-installer && chmod +x nerdfonts-installer && sudo mv nerdfonts-installer /usr/local/bin/Then run:
nerdfonts-installerClick to expand AUR installation options
# Using yay (recommended)
yay -S nerdfonts-installer-bin
# Using paru
paru -S nerdfonts-installer-bin
# Manual installation
git clone https://aur.archlinux.org/nerdfonts-installer-bin.git
cd nerdfonts-installer-bin
makepkg -si# Download and install
curl -sSLo nerdfonts-installer https://github.com/fam007e/nerd_fonts_installer/releases/latest/download/nerdfonts-installer
chmod +x nerdfonts-installer
sudo mv nerdfonts-installer /usr/local/bin/Click to expand build instructions
Install build dependencies:
# Arch Linux / Manjaro
sudo pacman -S gcc make curl jansson
# Ubuntu / Debian / Linux Mint
sudo apt-get install build-essential libcurl4-openssl-dev libjansson-dev
# Fedora
sudo dnf install gcc make libcurl-devel jansson-devel
# CentOS / RHEL
sudo yum install gcc make libcurl-devel jansson-develBuild and install:
git clone https://github.com/fam007e/nerd_fonts_installer.git
cd nerd_fonts_installer
make
sudo cp nerdfonts-installer /usr/local/bin/Simply run:
nerdfonts-installer$ nerdfonts-installer
Detected OS: arch, Package Manager: sudo pacman
Creating directory: /home/fam007e/.local/share/fonts
Creating directory: /home/fam007e/tmp
Fetching available fonts from GitHub...
Found 70 available fonts
Select fonts to install (separate with spaces, or enter "all" to install all fonts):
---------------------------------------------
1. 0xProto 21. DroidSansMono 41. JetBrainsMono 61. SourceCodePro
2. 3270 22. EnvyCodeR 42. Lekton 62. SpaceMono
3. AdwaitaMono 23. FantasqueSansMono 43. LiberationMono 63. Terminus
4. Agave 24. FiraCode 44. Lilex 64. Tinos
5. AnonymousPro 25. FiraMono 45. MPlus 65. Ubuntu
6. Arimo 26. GeistMono 46. MartianMono 66. UbuntuMono
7. AtkinsonHyperlegibleMono 27. Go-Mono 47. Meslo 67. UbuntuSans
8. AurulentSansMono 28. Gohu 48. Monaspace 68. VictorMono
9. BigBlueTerminal 29. Hack 49. Monofur 69. ZedMono
10. BitstreamVeraSansMono 30. Hasklig 50. Monoid 70. iA-Writer
11. CascadiaCode 31. HeavyData 51. Mononoki
12. CascadiaMono 32. Hermit 52. NerdFontsSymbolsOnly
13. CodeNewRoman 33. IBMPlexMono 53. Noto
14. ComicShannsMono 34. Inconsolata 54. OpenDyslexic
15. CommitMono 35. InconsolataGo 55. Overpass
16. Cousine 36. InconsolataLGC 56. ProFont
17. D2Coding 37. IntelOneMono 57. ProggyClean
18. DaddyTimeMono 38. Iosevka 58. Recursive
19. DejaVuSansMono 39. IosevkaTerm 59. RobotoMono
20. DepartureMono 40. IosevkaTermSlab 60. ShareTechMono
---------------------------------------------
Enter the numbers of the fonts to install (e.g., "1 2 3") or type "all" to install all fonts:For minimal dependencies or systems without build tools:
# Run directly (no installation required)
curl -sSL https://raw.githubusercontent.com/fam007e/nerd_fonts_installer/main/nerdfonts_installer.sh | bash
# Or download first
wget https://raw.githubusercontent.com/fam007e/nerd_fonts_installer/main/nerdfonts_installer.sh
chmod +x nerdfonts_installer.sh
./nerdfonts_installer.sh| Distribution | Package Manager | Status | Notes |
|---|---|---|---|
| Arch Linux | pacman |
โ | AUR package available |
| Manjaro | pacman |
โ | Full compatibility |
| EndeavourOS | pacman |
โ | Full compatibility |
| Ubuntu | apt-get |
โ | All LTS versions |
| Debian | apt-get |
โ | Stable and testing |
| Linux Mint | apt-get |
โ | All versions |
| Fedora | dnf |
โ | Recent versions |
| CentOS | yum |
โ | 7, 8, Stream |
| RHEL | yum |
โ | 7, 8, 9 |
Note: Other distributions may work but are not officially tested.
Runtime Dependencies
curl- Downloads fonts and makes API requestsunzip- Extracts font archivesfontconfig- Manages font cache and detection
All dependencies are installed automatically if missing.
Build Dependencies (C version)
gcc- GNU Compiler Collectionmake- Build automationlibcurl-dev- HTTP client librarylibjansson-dev- JSON parsing library
Fonts are installed to ~/.local/share/fonts/ following XDG specifications:
- โ No root required - User-local installation
- โ Automatic detection - Scanned by fontconfig
- โ Standard location - Compatible with all applications
- โ Easy management - Simple to backup or remove
| Version | Dependencies | Speed | Memory | Error Handling | JSON Parsing | Recommended Use |
|---|---|---|---|---|---|---|
| C Binary | libcurl, libjansson | ๐ฅ Fast | ๐ Low | ๐ก๏ธ Advanced | ๐ Native | Production, Daily use |
| Shell Script | bash, curl, unzip | ๐ Slower | ๐ก Higher | ๐ง awk-based | Testing, Quick installs |
# Clone the repository
git clone https://github.com/fam007e/nerd_fonts_installer.git
cd nerd_fonts_installer
# Build the C version
make
# Test the build
./nerdfonts-installer
# Clean build artifacts
make clean๐ฆ nerd_fonts_installer/
โโโ ๐ nerdfonts_installer.c # Main C implementation
โโโ ๐ nerdfonts_installer.sh # Shell script version
โโโ ๐ Makefile # Build configuration
โโโ ๐ LICENSE # MIT license
โโโ ๐ README.md # Documentation
We welcome contributions! Here's how you can help:
Found a bug? Open an issue with:
- Steps to reproduce
- Expected vs actual behavior
- System information (OS, version)
Have an idea? We'd love to hear it! Include:
- Use case description
- Proposed solution
- Benefits to users
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- C code: Follow C11 standard with comprehensive error handling
- Shell scripts: Maintain POSIX compliance where possible
- Testing: Verify functionality across multiple distributions
- Documentation: Update README for user-facing changes
This project is licensed under the MIT License - see the LICENSE file for details.
- ๐จ Nerd Fonts: Huge thanks to @ryanoasis for the incredible Nerd Fonts project
- ๐ GitHub API: For providing reliable font metadata
- ๐ง Linux Community: For inspiration and feedback
- ๐ Issues: GitHub Issues
- ๐ฆ AUR Package: nerdfonts-installer
- ๐ Releases: Latest Release
- ๐ Documentation: Wiki
๐ Made with love for the Linux community
If this project helped you, please consider giving it a โญ!