FiraD2 is a programming font that combines the best of FiraCode's ligatures and coding features with D2Coding's excellent Korean Hangul support. This font provides optimal readability for code that includes both English and Korean text.
- Perfect Korean Support: Incorporates D2Coding's Hangul glyphs (U+3131-U+318E, U+AC00-U+D7A3)
- Programming Ligatures: Maintains FiraCode's popular programming ligatures (→, >=, !=, etc.)
- Multiple Variants: Regular fonts, Nerd Font versions with icons, and web fonts
- Optimized Spacing: Carefully adjusted character widths for better readability
- Cross-platform: Works on Windows, macOS, and Linux
Download the latest fonts from the Releases page.
| File | Description | Best For |
|---|---|---|
FiraD2-Regular.ttf |
Main font for general use | Code editors, IDEs |
FiraD2-Bold.ttf |
Bold variant | Emphasis, headers |
FiraD2-Regular.woff2 |
Web font format | Web applications |
FiraD2NerdFont-Regular.ttf |
With programming icons | Terminal, Vim/Neovim |
FiraD2NerdFont-Bold.ttf |
Bold with icons | Terminal emphasis |
- Download the
.ttffiles - Right-click and select "Install" or "Install for all users"
- Restart your applications
- Download the
.ttffiles - Double-click to open Font Book
- Click "Install Font"
- Restart your applications
- Download the
.ttffiles - Copy to
~/.local/share/fonts/or/usr/share/fonts/ - Run
fc-cache -fv - Restart your applications
Before building, you need:
- Python 3.7+
- FontForge with Python bindings
- wget and unzip utilities
The easiest way to build FiraD2 with all dependencies managed:
# Clone the repository
git clone https://github.com/partrita/FiraD2.git
cd FiraD2
# Enter Nix development environment
nix develop
# Build fonts (downloads assets automatically)
python scripts/build.py build
# Exit when done
exitBuild in a containerized environment:
# Clone and build Docker image
git clone https://github.com/partrita/FiraD2.git
cd FiraD2
docker build -t firad2 .
# Run interactive container
docker run -it -v "$(pwd)":/app firad2
# Inside container: build fonts
python3 scripts/build.py build
# Exit container
exitFor advanced users who want to set up dependencies manually:
sudo apt-get update
sudo apt-get install fontforge python3-fontforge wget unzipbrew install fontforge wget
pip3 install fontforge-python# Clone repository
git clone https://github.com/partrita/FiraD2.git
cd FiraD2
# Download required font assets (you'll need to do this manually)
# - FiraCode: https://github.com/tonsky/FiraCode/releases
# - D2Coding: https://github.com/naver/d2codingfont/releases
# - FiraCode NerdFont: https://github.com/ryanoasis/nerd-fonts/releases
# Extract fonts to assets/ directories:
# assets/en_font/ - FiraCode TTF files
# assets/ko_font/ - D2Coding TTF files
# assets/en_nerd_font/ - FiraCode NerdFont TTF files
# Build fonts
python3 scripts/build.py build
# Clean up (optional)
python3 scripts/build.py clean| Command | Description |
|---|---|
python scripts/build.py build |
Build fonts from existing assets |
python scripts/build.py test |
Test font building process |
python scripts/build.py clean |
Clean generated files |
Add to your settings.json:
{
"editor.fontFamily": "FiraD2, Consolas, monospace",
"editor.fontLigatures": true,
"editor.fontSize": 14
}# Check if font is installed
fc-list | grep FiraD2
# Configure your terminal to use FiraD2NerdFont-Regular@font-face {
font-family: 'FiraD2';
src: url('path/to/FiraD2-Regular.woff2') format('woff2');
font-display: swap;
}
code, pre {
font-family: 'FiraD2', 'Fira Code', monospace;
}The scripts/config.py file contains build configuration options:
KOREAN_FONT_WIDTH: Width for Korean charactersENGLISH_FONT_WIDTH: Width for English charactersTARGET_EM: Target em size for font scaling- Font source paths and output directories
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Test the build process
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- FiraCode: Base programming font with ligatures
- D2Coding: Korean coding font for Hangul support
- FiraCode Nerd Font: Icon-enhanced variant
- Python 3.7+
- FontForge with Python bindings
- Basic Unix utilities (wget, unzip)
- Some terminal emulators may not display ligatures correctly
- Web font loading might require proper CORS headers
- Font metrics may need adjustment for specific applications
This project is licensed under the SIL Open Font License 1.1.
- FiraCode: SIL OFL 1.1
- D2Coding: SIL OFL 1.1
- Nerd Fonts: MIT License
- FiraCode by Nikita Prokopov
- D2Coding by NAVER
- Nerd Fonts project
Made with ❤️ for developers who work with Korean and English code