A guy falling in love with his Beast.
- ๐ซ How to reach me [email protected]
Monokai Pro theme for Neovim written in Lua, with multiple filters: Pro, Classic, Machine, Octagon, Ristretto, Spectrum
License: MIT License
A guy falling in love with his Beast.
When the cursor is between indent lines it turns invisible. Using the default config
Hey! first of all thank you for this theme, its awesome!
one question though,
is there a way to change the font to some custom font? instead of the Mononoki Nerd Font?
I am using monokai-pro in neovim (specifically LunarVim). I have a very hard time seeing the actual cursor: it is dark blue. I would like the cursor to be white, but I can't figure out how to accomplish that particular override. How would this be accomplished in the setup?
I'm using your monokai-pro colorscheme with Neovim (on Linux and OpenBSD) and I'm very happy with it :)
But with nvim-treesitter.lua
plugin (also used with Neovim), I don't like italic style used for some items, especially for Markdown inline => https://github.com/loctvl842/monokai-pro.nvim/blob/master/lua/monokai-pro/theme/plugins/nvim-treesitter.lua
Is it possible and how could I override monokai-pro colorscheme for nvim-treesitter.lua plugin ? I would like to set italic = false
for @markup.italic.markdown_inline
and other items.
Hello,
Thank your for porting this great color theme to neovim. It looks great.
I would like to set octagon version of monokai-pro but it does not seem to work. The color theme still looks lke Pro.
As proposed in the README, I added the following lines to my init.lua
:
require("monokai-pro").setup({
transparent_background = false, -- better set to false
italic_comments = true,
theme = "octagon", -- classic | octagon | pro | machine | ristretto | spectrum
diagnostic = {
background = true, -- highlight background of diagnostic
},
plugins = {
bufferline = {
underline_selected = true, -- better set `false` if you don't use kitty terminal
}
}
})
Am I missing something ?
Hi, i just wanted to point out some differences i noticed between the monokai pro theme on vscode and this neovim theme.
My goal is to be able to modify/ovveride this theme to match it a little better.
screenshot (left: neovim, right: vscode)
my current ovverides
override = function()
return {
Normal = { bg = "#121212" },
DiagnosticVirtualTextError = { bg = "none" },
DiagnosticVirtualTextInformation = { bg = "none" },
DiagnosticVirtualTextWarning = { bg = "none" },
DiagnosticVirtualTextHint = { fg = "Gray", bg = "none" },
DiagnosticSignHint = { fg = "Gray" },
}
end,
This is my setup
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"
},-- "float_win", "toggleterm", "telescope", "which-key", "renamer", "neo-tree"
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,
})
I get this message after updating this theme to v1.21.0:
Invalid filter, expected "classic", "machine", "octagon", "pro", "ristretto" or "spectrum"
This is new and never happened in the past.
I'm on
NVIM v0.9.5
Build type: Release
LuaJIT 2.1.1703358377
I was wondering if this plugin can somehow be updated to better compliment treesitter? I'm getting sub optimal syntax highlighting with LaTeX at the moment.
The project was refactored at v3 and now the highlight groups have changed, which are covered in the Migration Guide.
Here's a snippet from the help page:
==============================================================================
4. HIGHLIGHTS *ibl.highlights*
IblIndent *hl-IblIndent*
The default highlight group for indentation characters.
Default: takes the values from |hl-Whitespace| when not defined ~
IblWhitespace *hl-IblWhitespace*
The default highlight group for whitespace characters.
Default: takes the values from |hl-Whitespace| when not defined ~
IblScope *hl-IblScope*
The default highlight group for |ibl.config.scope| characters.
Default: takes the values from |hl-LineNr| when not defined ~
In VsCode I am used to have a 'marker' on the 80th column.
Would be great to have this option in Monokai ;)
Since I am new in the (Lazy)Vim, at this moment I do not know how to fix this myself.
Since the 1.19 release, there has been a log about enabling nvim-web-devicons for a better experience.
My expected behaviour when the setting devicons
is set to false
would be to not have such log.
My colorcolumn seems to be invisible.
I've tried several things:
filter
but no setting seems to make the colorcolumn visible.:set colorcolumn=80
.The colorcolumn is visible in any other theme so i'm guessing it has nothing to do with my terminal colors.
My config for the monokai-pro theme is pretty much the default one
require("monokai-pro").setup({
filter = "octagon",
plugins = {
bufferline = {
underline_selected = false,
underline_visible = false,
},
},
})
Versions:
When overwriting styles i would like the option to remove undercurls.
vim.api.nvim_set_hl(0, 'DiagnosticUnnecessary', { undercurl = false })
override = function()
return {
DiagnosticUnnecessary = { fg = "Gray", italic = true }
}
end,
Hi, I've checked the doc and I don't see where to enable the cursorcolumn
I already enabled it in my vim editor (astrovim)
I really like the monokai theme, and your monokai-pro.nvim almost completely reproduce the monokai theme. I really like it. But I dont like italic font. Is there a option to turn off all italics.
Vertical column used as characters delimiter seems to be hidden
set colorcolumn="80"
I am trying to migrate from https://github.com/sainnhe/sonokai to this plugin theme.
How do i change the color of the diagnostic messsages, you can see in the "monokai-pro" screenshot that the error message is in the color "white" and the info message is in the color "blue"
I would prefer if the error message was red and the info message was gray ( like in the sonokai screenshot)
I like this theme a lot but I'd like to provide a function similar to the palette and theme overrides but for when the colorscheme is defined.
An example would be:
cs = vim.tbl_deep_extend("force", cs, Config.overrideColorscheme and Config.overrideColorscheme(cs, p, config, hp) or {})
at this line which would allow changing colour values for all of the other pre-computed colours provided by the palette. Please do note that this example does not work as cs
is a local to the file and has some builtin lua functions applied to it that I don't yet understand, however this functionality would be really good for people who wish to slightly tweak the existing themes and filters to create, effectively, mini-forks of the existing ones without having to do a lot of work to offer them back (as not everyone else may like them).
Previously I had a copy of this repository as just files, in my dotfiles repository as a hackish workaround (I've moved since to a fork) and modifying them directly but doing this would make things a lot easier for myself and potentially for others who would enjoy tweaking a few things or making divergent themes based on monokai.
I would like to make some changes to the color palette. Is it possible to adjust this in the override
functions? As I see the the colorpalette is loaded with out override capabilities I guess.
Thanks.
Is it possible to have Monokai classic theme for lualine?
In README it incorrectly addressed that neo-tree (NeoTree* hl groups) is supported while only nvim-tree (NvimTree* hl groups) plugin is actually supported.
Could you please also add support of neo-tree plugin?
Hello. I have an error when I trying to update your theme.
error: The following untracked working tree files would be overwritten by checkout: doc/tags Please move or remove them before you switch branches. Aborting
With the new built-in feature of neovim, inlay hints can be viewed.
But with this colorscheme it is hardly visible if visible at all:
The inlay hints are there, just not visible enough:
Is it possible to alter the colorscheme, so that the inlay hints could be seen properly?
With tokyonight it looks just fine, but I'd like to use monokai pro.
Thanks in advance!
As https://github.com/HiPhish/nvim-ts-rainbow2 has been deprecated, bring support for https://github.com/HiPhish/rainbow-delimiters.nvim
Love the theme, but in comparison to other themes, I noticed that there is less differentiation in colors. For example, here return
, other keywords like if
, fields like .caffeinate
, and the =
all get the same color. Compare this to dawnfox (from nightfox.nvim), where the same four things all have different colors.
Hi. Thanks a lot for this package, it has been my daily driver for a couple of months now and I really enjoy using it.
Like many other Neovim users, I use Telescope for many purposes, and one functionality I find myself using quite often is the :Telescope colorscheme
command. I am aware that the :MonokaiProSelect
command exists, however, I would like to be able to select among the Monokai Pro variants within Telescope. Several theme plugins with variants (i.e. Tokyo Night, Rose Pine, Kanagawa) expose their variants as individual themes. Would it be possible to offer such functionality? Please let me know what you think.
Thanks a lot for your work!
The indentline.nvim plugin provides indent guides, but somehow this colorscheme seems to conflict with its indent hightlighting (or the other way around, I am not sure).
When I open neovim the indent guides don't appear, when when I run :colo monokai-pro
, they appear. I don't know why that is.
I have brought a minimal reproducible example.
Below is my ~/.config/nvim
.
โโโ init.lua
โโโ lazy-lock.json
โโโ lua
โโโ core
โย ย โโโ options.lua
โโโ plugins
โโโ indentline.lua
โโโ monokai-pro.lua
โโโ treesitter.lua
4 directories, 6 files
init.lua
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
print("Installing lazy.nvim ...")
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- Core configs loaded from ./lua/core/
require("core.options")
-- Plugins configured at ./lua/plugins/
require("lazy").setup("plugins")
-- Colorscheme
vim.cmd([[colorscheme monokai-pro]])
This is lua/plugins/indentline.lua
return {
"lukas-reineke/indent-blankline.nvim",
main = "ibl",
opts = {
indent = { char = "โ", },
scope = {
enabled = false,
show_start = false, -- don't underline line where scope begins
show_end = false,
}
},
}
lua/plugins/monokai-pro.lua
return {
"loctvl842/monokai-pro.nvim",
opts = {
filter = "ristretto",
styles = {
comment = { italic = false },
keyword = { italic = false }, -- 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
},
plugins = {
indent_blankline = {
context_highlight = "default", -- default | pro
},
},
},
}
I am also adding lua/plugins/treesitter.lua
just because indentline uses it
return {
'nvim-treesitter/nvim-treesitter',
dependencies = {
'nvim-treesitter/nvim-treesitter-context',
'nvim-treesitter/nvim-treesitter-textobjects',
},
config = function()
require("nvim-treesitter.configs").setup({
ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "javascript", "html", "typescript", "python" },
auto_install = true,
sync_install = false,
ignore_install = { "markdown", "diff" },
highlight = { enable = true, },
textobjects = {
select = {
enable = true,
lookahead = true,
ignore_surrounding_whitespace = true,
keymaps = {
-- You can use the capture groups defined in textobjects.scm
['aa'] = '@parameter.outer',
['ia'] = '@parameter.inner',
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
["ic"] = "@class.inner",
["as"] = "@scope",
}
},
-- Popup window with definition
-- lsp_interop = {
-- enable = true,
-- border = 'none',
-- floating_preview_opts = {},
-- peek_definition_code = {
-- ["<leader>ds"] = "@function.outer", -- definition show
-- ["<leader>dS"] = "@class.outer",
-- },
-- },
}
})
end,
}
the last one lua/core/options.lua
, this should not be making the issue as far as I know.
vim.o.number = true
vim.o.relativenumber = true
vim.o.pumheight = 12
vim.o.shiftwidth = 4
vim.o.tabstop = 4
vim.o.smartindent = true
vim.o.expandtab = true
vim.o.undofile = true
vim.o.hlsearch = true
vim.o.cursorline = true
vim.o.ignorecase = true
vim.o.smartcase = true
vim.o.splitright = true
vim.o.splitbelow = true
vim.o.swapfile = false
vim.o.laststatus = 3
vim.o.updatetime = 250
vim.o.termguicolors = true
vim.o.signcolumn = 'yes'
vim.o.wrap = false
vim.o.scrolloff = 8
vim.g.netrw_banner = 0
Hello,
I'm using wilder to have command line auto completion.
This plugin adds a list of possible completions when searching or starting to type commands (:
or /
or ?
).
Right now, we can't see the suggestions with monokai-pro
theme, as the completion text is black on a black foreground.
Example of wilder with monokai-pro. We can't see any suggestion.
Example of wilder with sonokai. We can see wilder suggestion just above my command:
Is it possible to support wilder
?
Or is there any tweak I can make to the monokai-pro
config to change the text color of the suggestions text ?
Thank you for the plugin.
I copied the example configurations to my .lua file it it worked fine.
-- ...
transparent_background = true, -- I want transparent 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
},
-- ...
Then I uncommented nvim-tree
and neo-tree
, and it worked. My nvim tree is now transparent.
-- ...
transparent_background = true, -- I want transparent 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
},
-- ...
I tried the same with bufferline, but it resulted in errors.
-- ...
transparent_background = true, -- I want transparent background
background_clear = {
-- "float_win",
"toggleterm",
"telescope",
-- "which-key",
"renamer",
"notify",
"nvim-tree",
"neo-tree",
"bufferline", -- errors on nvim open
},
-- ...
I'm new to Vim and trying to get a monokai-pro-themed neovim with transparent backgrounds.
my nevim theme is as follows. I wish all variable types have the same color(such as int and vector<t_segment_inf>)๏ผ besides, the color of Local variables should be different from formal parameters and actual parameters.
Just like the following pic came from vscode monokai pro.
Do you have any tips to do that?
Thanks!
error here
Error detected while processing /Users/kyotaro.sakamoto/dotfiles/config/nvim/init.lua:
E5113: Error while calling lua chunk: vim/_editor.lua:0: /Users/kyotaro.sakamoto/dotfiles/config/nvim/init.lua..nvim_exec2() called at /Users/kyotaro.sakamoto/dotfiles/config/nvim/init.lua:0../Users/kyotaro.saka
moto/.local/share/nvim/lazy/monokai-pro.nvim/colors/monokai-pro.lua: Vim(colorscheme):E5113: Error while calling lua chunk: ...m/lazy/monokai-pro.nvim/lua/monokai-pro/color_helper.lua:34: attempt to perform arit
hmetic on field 'r' (a nil value)
stack traceback:
...m/lazy/monokai-pro.nvim/lua/monokai-pro/color_helper.lua:34: in function 'lighten'
...ai-pro.nvim/lua/monokai-pro/theme/plugins/bufferline.lua:52: in function 'setup'
...vim/lazy/monokai-pro.nvim/lua/monokai-pro/theme/init.lua:58: in function 'generate_hl_groups'
...vim/lazy/monokai-pro.nvim/lua/monokai-pro/theme/init.lua:77: in function 'setup'
...hare/nvim/lazy/monokai-pro.nvim/lua/monokai-pro/init.lua:9: in function 'load'
.../share/nvim/lazy/monokai-pro.nvim/colors/monokai-pro.lua:1: in main chunk
[C]: in function 'nvim_exec2'
vim/_editor.lua: in function 'cmd'
/Users/kyotaro.sakamoto/.config/nvim/lua/colorscheme.lua:11: in main chunk
[C]: in function 'require'
/Users/kyotaro.sakamoto/dotfiles/config/nvim/init.lua:8: in main chunk
stack traceback:
[C]: in function 'nvim_exec2'
vim/_editor.lua: in function 'cmd'
/Users/kyotaro.sakamoto/.config/nvim/lua/colorscheme.lua:11: in main chunk
[C]: in function 'require'
/Users/kyotaro.sakamoto/dotfiles/config/nvim/init.lua:8: in main chunk
my monokai-pro configs
{
"loctvl842/monokai-pro.nvim",
lazy = true,
dependencies = {
{ "nvim-tree/nvim-web-devicons" },
{ "nvim-telescope/telescope.nvim" },
{ "nvim-tree/nvim-tree.lua" },
{ "akinsho/bufferline.nvim" },
},
config = function()
require("monokai-pro").setup({
transparent_background = true,
terminal_colors = false,
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 = "spectrum", -- 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,
})
end
},
my bufferline configs
-- Tab UIs
{
'akinsho/bufferline.nvim',
tag = "v4.2.0",
dependencies = 'nvim-tree/nvim-web-devicons',
config = function()
local bufferline = require('bufferline')
bufferline.setup {
options = {
mode = "tabs", -- set to "tabs" to only show tabpages instead
separator_style = 'slant',
always_show_bufferline = true,
style_preset = bufferline.style_preset.default, -- or bufferline.style_preset.minimal,
max_name_length = 18,
tab_size = 18,
diagnostics = "nvim_lsp",
diagnostics_indicator = function(count, level, diagnostics_dict, context)
local icon = level:match("error") and "๏ " or "๏ฑ "
return " " .. icon .. count
end,
color_icons = true -- whether or not to add the filetype icon highlights
}
}
end
},
any solution?
Currently ColorColumn background is the same as the Normal background:
Which essentially makes enabling CursorColumn useless by default.
Would be nice to have same value as CursorLine:
CursorLine xxx guibg=#313443
I am aware of both #16 and #14, however users that do not like to use ColorColumn should have it disabled appropriately using
set cc=
or vim.opt.colorcolumn=""
So having the ColorColumn a different color will not impact them anyway.
Hi,
When LSP is done loading with typescript using tsserver, the colors changes (see screen recording).
Variable colors which were white become purple, and interface colors also changes.
I think it may be related to semantic tokens, but I'm not sure.
Also, should export statement be red?
Anyway, nice theme! Thanks
Hi there,
First time nvim user here. Saw this theme and thought it was the perfect Monokai Pro theme plugin! However, I installed this theme the other day and am having a few problems with it.
:MonokaiPro
command.custom/chadrc.lua
M.ui = {
theme = "monokai-pro",
theme_toggle = { "monokai-pro", "one_light" },
hl_override = highlights.override,
hl_add = highlights.add,
}
custom/plugins.lua
{
"loctvl842/monokai-pro.nvim",
lazy = false,
priority = 1000,
config = function()
local monokai = require("monokai-pro")
monokai.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
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 = "pro", -- default | pro
context_start_underline = false,
},
},
---@param c Colorscheme
override = function(c) end,
})
vim.cmd([[colorscheme monokai-pro]])
end,
},
There aren't instructions for lazy.nvim so I just took the packer example and ported that snippet to lazy. I didn't make any other modifications to the plugin itself. Will I need to port the plugin itself to make use of lazy properly? It seems like it sort of works so I'm not totally sure.
Thanks in advance! :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.