Awesome
<div align="center"> <div class="b-header"> <a class="active" href="https://github.com/loctvl842/monokai-pro.nvim"> <img width="484" alt="img_v3_0274_94b96554-6c31-431b-a95e-2de719b493hu" src="https://github.com/loctvl842/monokai-pro.nvim/assets/80513079/24a697cf-0bae-4bde-a059-909ca665c333"> <h1>Monokai Pro</h1> <h2>Beautiful functionality for professional developers</h2> </a> </div> </div>Find out more here monokai.pro
⭐ Pro
🛑 Octagon
🤖 Machine
☕ Ristretto
🌈 Spectrum
👴 Classic
🔌 Plugin support
- alpha-nvim
- bufferLine.nvim
- Cmp
- vim-illuminate
- indent-blankline
- neo-tree.nvim
- nvim-notify
- renamer.nvim
- lualine.nvim
- telescope.nvim
- toggleterm.nvim
- nvim-treesitter
- which-key.nvim
- breadcrumb.nvim
- nvim-navic
- wilder.nvim
- Lightline
- barbecue.nvim
- dashboard-nvim
- mason.nvim
- nvim-ts-rainbow2
- rainbow-delimeters.nvim
📦 Installation
Plug 'loctvl842/monokai-pro.nvim'
use {
"loctvl842/monokai-pro.nvim",
config = function()
require("monokai-pro").setup()
end
}
🔨 Configuration
There are several themes included in this plugin.
- Pro – Monokai Pro (default)
- Octagon – Monokai Pro (Filter Octagon)
- Machine – Monokai Pro (Filter Machine)
- Ristretto – Monokai Pro (Filter Machine)
- Spectrum – Monokai Pro (Filter Machine)
- Classic – Monokai Classic
Example configuration:
require("monokai-pro").setup({
transparent_background = false,
terminal_colors = true,
devicons = true, -- highlight the icons of `nvim-web-devicons`
styles = {
comment = { italic = true },
keyword = { italic = true }, -- any other keyword
type = { italic = true }, -- (preferred) int, long, char, etc
storageclass = { italic = true }, -- static, register, volatile, etc
structure = { italic = true }, -- struct, union, enum, etc
parameter = { italic = true }, -- parameter pass in function
annotation = { italic = true },
tag_attribute = { italic = true }, -- attribute of tag in reactjs
},
filter = "pro", -- classic | octagon | pro | machine | ristretto | spectrum
-- Enable this will disable filter option
day_night = {
enable = false, -- turn off by default
day_filter = "pro", -- classic | octagon | pro | machine | ristretto | spectrum
night_filter = "spectrum", -- classic | octagon | pro | machine | ristretto | spectrum
},
inc_search = "background", -- underline | background
background_clear = {
-- "float_win",
"toggleterm",
"telescope",
-- "which-key",
"renamer",
"notify",
-- "nvim-tree",
-- "neo-tree",
-- "bufferline", -- better used if background of `neo-tree` or `nvim-tree` is cleared
},-- "float_win", "toggleterm", "telescope", "which-key", "renamer", "neo-tree", "nvim-tree", "bufferline"
plugins = {
bufferline = {
underline_selected = false,
underline_visible = false,
},
indent_blankline = {
context_highlight = "default", -- default | pro
context_start_underline = false,
},
},
---@param c Colorscheme
override = function(c) end,
---@param cs Colorscheme
---@param p ColorschemeOptions
---@param Config MonokaiProOptions
---@param hp Helper
override = function(cs: Colorscheme, p: ColorschemeOptions, Config: MonokaiProOptions, hp: Helper) end,
})
- Check my nvim to see my plugins setup for
border
if you want to setbackground_clear
For example:
<details> <summary>float_win</summary>require("monokai-pro").setup({
-- ... your config
background_clear = { "float_win" }
-- ... your config
})
require("cmp").setup({
-- ... your config
window = {
border = "rounded",
}
completion = {
border = "rounded",
}
-- ... your config
})
-
With the above config:
-
With the default config:
require("monokai-pro").setup({
-- ... your config
background_clear = {}
-- ... your config
})
require("telescope").setup({
-- ... your config
defaults = {
borderchars = { "█", " ", "▀", "█", "█", " ", " ", "▀" },
}
-- ... your config
})
- With the above config:
- With the default config:
📚 Usage
- Enable this colorscheme by using the following command after
setup
:
" Vim Script
colorscheme monokai-pro
require("monokai-pro").setup({
-- ... your config
})
-- lua
vim.cmd([[colorscheme monokai-pro]])
- To enable
monokai-pro
forLualine
:
require('lualine').setup {
options = {
-- ...
theme = 'monokai-pro'
-- ...
}
}
- To enable
monokai-pro
forbarbecue
:
require('barbecue').setup {
-- ...
theme = 'monokai-pro'
-- ...
}
- To enable
monokai-pro
forlightline
:
" Vim Script
let g:lightline = {'colorscheme': 'monokaipro'}
- Override function for customizing the final color scheme:
require("monokai-pro").setup({
-- ...
override = function()
return {
Normal = { bg = "#000000" }
}
end
-- ...
})
- Customize your own palette:
This is a sample config to use Tokyonight
as the palette:
require("monokai-pro").setup({
-- ...
--- @param filter "classic" | "machine" | "octagon" | "pro" | "ristretto" | "spectrum"
override = function(c)
return {
IndentBlanklineChar = { fg = c.base.dimmed4 },
}
end,
overridePalette = 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
-- ...
})
- Customize the scheme:
This is a sample config to use a darker background for almost all supported plugins:
require("monokai-pro").setup({
-- ...
overrideScheme = function(cs, p, config, hp)
local cs_override = {}
local calc_bg = hp.blend(p.background, 0.75, '#000000')
cs_override.editor = {
background = calc_bg,
}
return cs_override
end
-- ...
})
🔧 Command
- run command
MonokaiProSelect
to launch a menu to choose theme filter (required: nui.nvim) - or we can run command
MonokaiPro
with parameter to change theme filter: For example:MonokaiPro classic