11# mona.nvim
22
33[ ![ CI] ( https://github.com/hydepwns/mona.nvim/workflows/CI/badge.svg )] ( https://github.com/hydepwns/mona.nvim/actions )
4+ [ ![ LuaRocks] ( https://img.shields.io/luarocks/v/hydepwns/mona.nvim?color=blue )] ( https://luarocks.org/modules/hydepwns/mona.nvim )
45
5- Enhanced monospaced font management and configuration for Neovim .
6+ Enhanced Monaspace font management for Neovim with automated installation, preview, and terminal config generation .
67
7- > Monaspace is a next-generation font family from GitHub Next, designed for code: ligatures, texture healing, and beautiful style mixing. [ Learn more] ( https://github.com/githubnext/monaspace )
8+ > Monaspace is a next-generation font family from GitHub Next, designed for code with ligatures, texture healing, and beautiful style mixing. [ Learn more] ( https://github.com/githubnext/monaspace )
89
9- ** 💡 tldr; Want to see the fonts side by side?** Visit [ monaspace.githubnext.com] ( https://monaspace.githubnext.com/ ) for an interactive font preview!
10+ ** 💡 Preview fonts:** [ monaspace.githubnext.com] ( https://monaspace.githubnext.com/ )
11+ ** 📦 Install:** ` luarocks install mona.nvim `
12+
13+ ## Quick Start
14+
15+ ``` bash
16+ # Install plugin
17+ luarocks install mona.nvim
18+
19+ # In Neovim
20+ :MonaInstall variable all # Install fonts
21+ :MonaPreview # Preview fonts
22+ :MonaStatus # Check status
23+ ```
1024
1125## Features
1226
13- - ** Automated Font Installation** : Install Monaspace fonts directly from Neovim
14- - ** Font Feature Configuration ** : Control texture healing, ligatures, and character variants
15- - ** Terminal Configuration Generator** : Generate configs for Alacritty, Kitty, WezTerm, and Ghostty
16- - ** Font Preview System ** : Preview different font combinations
17- - ** Health Check System** : Diagnose installation and configuration issues
18- - ** Cross-platform Support ** : Works on macOS, Linux, and Windows
27+ - ** Automated Font Installation** - Install Monaspace fonts directly from Neovim
28+ - ** Font Preview System ** - Preview different font combinations side-by-side
29+ - ** Terminal Config Generator** - Generate configs for Alacritty, Kitty, WezTerm, Ghostty
30+ - ** Font Feature Control ** - Texture healing, ligatures, character variants
31+ - ** Health Check System** - Diagnose installation and configuration issues
32+ - ** Cross-platform** - macOS, Linux, Windows
1933
2034## Installation
2135
22- ### Using lazy.nvim
36+ ### LuaRocks
37+
38+ ``` bash
39+ luarocks install mona.nvim
40+ ```
41+
42+ ### lazy.nvim
2343
2444``` lua
2545{
@@ -42,7 +62,7 @@ Enhanced monospaced font management and configuration for Neovim.
4262}
4363```
4464
45- ### Using packer
65+ ### packer
4666
4767``` lua
4868use {
@@ -54,37 +74,28 @@ use {
5474}
5575```
5676
57- ## Quick Start
58-
59- 1 . ** Install plugin** using your preferred package manager
60- 2 . ** Install fonts** : ` :MonaInstall variable all `
61- 3 . ** Check status** : ` :MonaStatus `
62- 4 . ** Preview fonts** : ` :MonaPreview `
63- 5 . ** Generate config** : ` :MonaExportConfig alacritty ~/.config/alacritty/fonts.toml `
64-
6577## Commands
6678
67- ### Font Management
68-
69- - ` :MonaInstall [type] [families] ` - Install fonts (` type ` : otf/variable/frozen, ` families ` : all or neon,argon,xenon)
70- - ` :MonaUpdate ` - Update fonts to latest version
71- - ` :MonaUninstall [families] ` - Remove fonts
72- - ` :MonaStatus ` - Show installation status
73-
74- ### Configuration
75-
76- - ` :MonaPreview ` - Show font preview window
77- - ` :MonaExportConfig <terminal> [filepath] ` - Generate terminal config (alacritty/kitty/wezterm/ghostty)
78- - ` :MonaLoad ` - Load default font style mappings
79- - ` :MonaHealth ` - Run health check diagnostics
79+ | Command | Description |
80+ | ---------| -------------|
81+ | ` :MonaInstall [type] [families] ` | Install fonts (` type ` : otf/variable/frozen, ` families ` : all or neon,argon,xenon) |
82+ | ` :MonaUpdate ` | Update fonts to latest version |
83+ | ` :MonaUninstall [families] ` | Remove fonts |
84+ | ` :MonaStatus ` | Show installation status |
85+ | ` :MonaPreview ` | Show font preview window |
86+ | ` :MonaExportConfig <terminal> [filepath] ` | Generate terminal config (alacritty/kitty/wezterm/ghostty) |
87+ | ` :MonaLoad ` | Load default font style mappings |
88+ | ` :MonaHealth ` | Run health check diagnostics |
8089
8190## Key Mappings
8291
83- - ` <leader>mf ` - Open font preview (` :MonaPreview ` )
92+ - ` <leader>mf ` - Font preview (` :MonaPreview ` )
8493- ` <leader>mi ` - Install fonts (` :MonaInstall ` )
8594- ` <leader>ms ` - Show status (` :MonaStatus ` )
8695- ` <leader>mh ` - Health check (` :MonaHealth ` )
8796
97+ ## Configuration
98+
8899### Font Features
89100
90101``` lua
@@ -157,44 +168,13 @@ require("mona").setup({
157168
158169## Font Families
159170
160- - ** Neon** - Monospace (default)
161- - ** Argon** - Monospace with rounded corners
162- - ** Xenon** - Slab serif
163- - ** Radon** - Handwritten style
164- - ** Krypton** - Display style
165-
166- ** 🎨 See all fonts in action:** [ monaspace.githubnext.com] ( https://monaspace.githubnext.com/ )
167-
168- ## CI/CD
169-
170- This project uses GitHub Actions for continuous integration:
171-
172- - ** Multi-version testing** : Lua 5.1-5.4 and Neovim 0.9.0, 0.10.0, nightly
173- - ** Linting** : Automated code quality checks with luacheck
174- - ** Automated releases** : Tag-based releases with changelog generation
175-
176- ## Testing
177-
178- ``` bash
179- # Quick Validation
180- lua validate.lua
181-
182- # Optional entrypoints
183- # Unit tests
184- lua test/test_config.lua
185- lua test/test_utils.lua
186- lua test/test_highlights.lua
187- # Integration tests
188- nvim --headless -u test/minimal_init.lua -c " lua require('plenary.busted').run('test/plugin')"
189- # Run all tests
190- make test
191- # Individual test types
192- make test-unit # Unit tests only
193- make test-integration # Integration tests only
194- make validate # Validation script
195-
196- make clean # Clean test artifacts
197- ```
171+ | Family | Style | Use Case |
172+ | --------| -------| ----------|
173+ | ** Neon** | Monospace | Default coding |
174+ | ** Argon** | Monospace (rounded) | Softer appearance |
175+ | ** Xenon** | Slab serif | Bold emphasis |
176+ | ** Radon** | Handwritten | Italic emphasis |
177+ | ** Krypton** | Display | Headers/titles |
198178
199179## Troubleshooting
200180
@@ -203,15 +183,31 @@ make clean # Clean test artifacts
203183Run ` :MonaHealth ` or ` lua validate.lua ` to diagnose:
204184
205185- Font installation status
206- - Terminal compatibility
186+ - Terminal compatibility
207187- Required tools availability
208188- Configuration validation
209189
210190### Common Issues
211191
212- 1 . ** Fonts not showing** : Run ` :MonaInstall `
213- 2 . ** Terminal not supported** : Check ` :MonaHealth `
214- 3 . ** Font features not working** : Ensure GUI Neovim for full support
192+ 1 . ** Fonts not showing** → Run ` :MonaInstall `
193+ 2 . ** Terminal not supported** → Check ` :MonaHealth `
194+ 3 . ** Font features not working** → Ensure GUI Neovim
195+
196+ ## Development
197+
198+ ``` bash
199+ # Quick validation
200+ lua validate.lua
201+
202+ # Run tests
203+ make test
204+
205+ # Individual test types
206+ make test-unit # Unit tests
207+ make test-integration # Integration tests
208+ make validate # Validation script
209+ make clean # Clean artifacts
210+ ```
215211
216212## License
217213
0 commit comments