A complete overhaul of the gruvbox original theme, based on ellisonleao's gruvbox.nvim and folke's tokyonight.nvim themes.
| Dark | ||
|---|---|---|
| Hard | Medium | Soft |
|
|
|
| Light | ||
| Hard | Medium | Soft |
|
|
|
- Neovim >= 0.9.0
- Git (Any recent version may work)
{ "pedrog14/gruvbox.nvim", lazy = false, priority = 1000 }Plug 'pedrog14/gruvbox.nvim'Built-in plugin manager (vim.pack):
vim.pack.add({ { src = "https://github.com/pedrog14/gruvbox.nvim" } })vim.o.background = "dark" -- or "light" for light mode
vim.cmd.colorscheme("gruvbox")set background=dark " or 'light' for light mode
colorscheme gruvboxThe default settings for gruvbox are:
{
cache = true,
dim_inactive = false,
terminal_colors = true,
transparent = false,
---@type table<string, boolean>?
plugins = {
all = package.loaded.lazy == nil,
auto = true,
},
---@type table<Style, vim.api.keyset.highlight>?
style = {
comment = { italic = true },
operator = {},
selection = {},
sign = {},
string = {},
},
---@type Contrast?
contrast = "medium",
---@type fun(colors: GruvboxColors)?
color_override = nil,
---@type fun(hl: table<string, vim.api.keyset.highlight>, colors: GruvboxColors)?
group_override = nil,
}You can modify your settings by calling the require("gruvbox").setup lua function before setting your colorscheme to gruvbox, with the proper argument table as presented above.
You can modify and specify your own colors. For example:
require("gruvbox").setup({
color_override = function(colors)
colors.bg0 = colors.gray
colors.fg1 = "#ffffff"
end
})If you don't enjoy the current color for a specific highlight group, now you can just override it in the setup. For example:
require("gruvbox").setup({
group_override = function(hl, colors)
hl.Normal = { bg = "#000000" }
hl.SignColumn = { fg = colors.orange }
end
})Please notice that the highlight table must be defined as seen on :h nvim_set_hl(), in the {val} parameter section.





