monokai-pro.nvim is under active development.
Version v2.0.0 involves a large internal refactor, so some short-term regressions are expected. If you encounter issues, please report them here — they help stabilize the next release.
If you are maintaining a fork with fixes, please consider contributing upstream via pull requests so improvements benefit the whole community.
Using lazy.nvim:
{
"loctvl842/monokai-pro.nvim",
lazy = false,
priority = 1000,
config = function()
require("monokai-pro").setup()
vim.cmd.colorscheme("monokai-pro")
end,
}Using packer.nvim:
use {
"loctvl842/monokai-pro.nvim",
config = function()
require("monokai-pro").setup()
vim.cmd.colorscheme("monokai-pro")
end
}require("monokai-pro").setup({
transparent_background = false,
terminal_colors = true,
devicons = true,
styles = {
comment = { italic = true },
keyword = { italic = true },
type = { italic = true },
storageclass = { italic = true },
structure = { italic = true },
parameter = { italic = true },
annotation = { italic = true },
tag_attribute = { italic = true },
},
filter = "pro", -- classic | octagon | pro | machine | ristretto | spectrum
day_night = {
enable = false,
day_filter = "pro",
night_filter = "spectrum",
},
inc_search = "background", -- underline | background
background_clear = {
"toggleterm",
"telescope",
"renamer",
"notify",
},
plugins = {
bufferline = {
underline_selected = false,
underline_visible = false,
underline_fill = false,
bold = true,
},
indent_blankline = {
context_highlight = "default", -- default | pro
context_start_underline = false,
},
},
override = function(scheme)
return {}
end,
override_palette = function(filter)
return {}
end,
override_scheme = function(scheme, palette, colors)
return {}
end,
})Plugin highlights can be lazy-loaded to reduce initial colorscheme load time. Highlights are applied when:
- Event-based: A Vim event fires (e.g.,
VimEnter,FileType) - Module-based: A module is required (e.g.,
require("telescope"))
Each plugin spec can define a lazy field:
-- Eager loading (default)
{ name = "treesitter", lazy = false }
-- Lazy loading on module require
{ name = "telescope", lazy = { module = "telescope" } }
-- Lazy loading on event
{ name = "dashboard", lazy = { event = "VimEnter" } }
-- Both triggers
{ name = "neo-tree", lazy = { module = "neo-tree", event = "FileType neo-tree" } }:lua print(vim.inspect(require("monokai-pro.theme.triggers").applied_plugins))require("monokai-pro").setup({
disabled_plugins = { "bufferline", "neo-tree" },
})33 plugins supported
| Plugin | Lazy Loading |
|---|---|
| aerial.nvim | module |
| alpha-nvim | module |
| blink.cmp | module |
| bufferline.nvim | module |
| coc.nvim | module |
| dashboard-nvim | event |
| fidget.nvim | module |
| fzf-lua | module |
| gitsigns.nvim | module |
| indent-blankline.nvim | module |
| lazy.nvim | module |
| lualine.nvim | built-in |
| mason.nvim | module |
| mini.nvim | module |
| neo-tree.nvim | module |
| noice.nvim | module |
| nvim-cmp | module |
| nvim-navic | module |
| nvim-notify | module |
| nvim-tree.lua | module |
| nvim-treesitter | eager |
| nvim-ufo | module |
| packer.nvim | module |
| rainbow-delimiters.nvim | module |
| renamer.nvim | module |
| nvim-scrollbar | module |
| snacks.nvim | module |
| telescope.nvim | module |
| toggleterm.nvim | module |
| vim-illuminate | module |
| which-key.nvim | module |
| wilder.nvim | module |
| Built-in LSP | eager |
require("lualine").setup({
options = { theme = "monokai-pro" },
})require("barbecue").setup({
theme = "monokai-pro",
})let g:lightline = {'colorscheme': 'monokaipro'}monokai-pro.nvim can be integrated with NvChad's base46 theme system, enabling theme toggle functionality.
Step 1: Create theme files in your NvChad config:
-- lua/themes/monokai-pro.lua
return require("monokai-pro").nvchad()-- lua/themes/monokai-pro-light.lua
return require("monokai-pro").nvchad("light")Step 2: Update your chadrc.lua:
M.base46 = {
theme = "monokai-pro",
theme_toggle = { "monokai-pro", "monokai-pro-light" },
}Step 3: Ensure monokai-pro is installed (without loading the colorscheme):
{
"loctvl842/monokai-pro.nvim",
lazy = false,
priority = 1000,
config = function()
require("monokai-pro").setup()
-- Don't call vim.cmd.colorscheme() - let NvChad handle it
end,
}You can also create theme files for other filters:
-- lua/themes/monokai-pro-spectrum.lua
return require("monokai-pro").nvchad("spectrum")require("monokai-pro").setup({
override = function(scheme)
return {
Normal = { bg = "#000000" },
IndentBlanklineChar = { fg = scheme.base.dimmed4 },
}
end,
})require("monokai-pro").setup({
override_palette = function(filter)
return {
dark2 = "#101014",
dark1 = "#16161E",
background = "#1A1B26",
text = "#C0CAF5",
accent1 = "#f7768e",
accent2 = "#7aa2f7",
accent3 = "#e0af68",
accent4 = "#9ece6a",
accent5 = "#0DB9D7",
accent6 = "#9d7cd8",
dimmed1 = "#737aa2",
dimmed2 = "#787c99",
dimmed3 = "#363b54",
dimmed4 = "#363b54",
dimmed5 = "#16161e",
}
end,
})require("monokai-pro").setup({
override_scheme = function(scheme, palette, colors)
return {
editor = {
background = colors.blend(palette.background, 0.75, "#000000"),
},
}
end,
})| Command | Description |
|---|---|
:MonokaiPro |
Select filter with picker (requires nui.nvim) |
:MonokaiPro <filter> |
Set filter directly (e.g., :MonokaiPro spectrum) |
:MonokaiProSelect |
Alias for :MonokaiPro |
base = {
dark = "#19181a", -- darker background
black = "#221f22", -- background
red = "#ff6188", -- accent1
green = "#a9dc76", -- accent4
yellow = "#ffd866", -- accent3
blue = "#fc9867", -- accent2
magenta = "#ab9df2", -- accent6
cyan = "#78dce8", -- accent5
white = "#fcfcfa", -- text
dimmed1 = "#c1c0c0",
dimmed2 = "#939293",
dimmed3 = "#727072",
dimmed4 = "#5b595c",
dimmed5 = "#403e41",
}MIT







