matugen.nvim is a Material You colorscheme for Neovim built around a dedicated template system. It maps your matugen generated colors directly to Neovim highlight groups through a semantic palette without color recomputation
https://github.com/user-attachments/assets/5b9e40a9-a8e1-4b9b-badd-f4b667d55f5e
1. Copy the template
Copy the nvim-colors.json to your matugen templates folder
2. Add to your config.toml
[templates.neovim]
input_path = "~/.config/matugen/templates/nvim-colors.json"
output_path = "~/.config/matugen/themes/nvim-colors.json"
post_hook = "pkill -SIGUSR1 nvim"
3. Install via lazy.nvim
{
"Senal-D-A-Gunaratna/matugen.nvim",
lazy = false,
priority = 1000,
opts = {
load_theme = true, -- set this to false to stop the theme from loading
-- Path to the JSON file generated by matugen
palette_path = "~/.config/matugen/themes/nvim-colors.json",
},
},
Note: If the palette file fails to load, the plugin falls back to a built-in dark theme and notifies you
4. Hyprland opacity (optional but recommended)
Without blur and opacity, transparency won't look right:
hl.window_rule({
match = { class = "kitty", title = "nvim" },
opacity = "0.7",
})
The post_hook in your config.toml handles reloading automatically on each matugen run. To trigger it manually:
pkill -SIGUSR1 nvim
Or from inside Neovim:
:MatugenReload
To check the current configuration, parsing correctness, active templates, and loaded status, run:
:checkhealth matugen
The following plugins are supported via built‑in templates in lua/matugen/templates
All highlight groups derive from a single semantic palette in lua/matugen/palette.lua. Adding support for a new plugin or UI component stays consistent by design
To extend it, see Creating Custom Templates
Contributions are more than welcome! If you want to add support for another plugin or fix a bug, feel free to open a Pull Request. Let's make this colorscheme even better together!
MIT