221 lines
7.0 KiB
Lua
221 lines
7.0 KiB
Lua
vim.pack.add({
|
|
"https://github.com/ellisonleao/gruvbox.nvim"
|
|
})
|
|
|
|
-- Default options:
|
|
require("gruvbox").setup({
|
|
terminal_colors = false, -- add neovim terminal colors
|
|
undercurl = true,
|
|
underline = true,
|
|
bold = true,
|
|
italic = {
|
|
strings = true,
|
|
emphasis = true,
|
|
comments = true,
|
|
operators = false,
|
|
folds = true,
|
|
},
|
|
strikethrough = true,
|
|
invert_selection = false,
|
|
invert_signs = false,
|
|
invert_tabline = false,
|
|
inverse = true, -- invert background for search, diffs, statuslines and errors
|
|
contrast = "soft", -- can be "hard", "soft" or empty string
|
|
palette_overrides = {
|
|
-- 1. Darken all root background variants (from hardest to softest)
|
|
dark0_hard = "#0d0f10", -- The main background when contrast = "hard"
|
|
dark0 = "#121415", -- The standard medium background
|
|
dark0_soft = "#181a1b", -- The background when contrast = "soft"
|
|
|
|
-- 2. Darken the secondary UI layer (used for active lines and selection areas)
|
|
dark1 = "#1d1f21", -- Used for things like CursorLine background
|
|
dark2 = "#282a2e", -- Used for subtle UI dividers
|
|
dark3 = "#373b41", -- Used for inactive tabs or panels
|
|
dark4 = "#4c566a", -- Used for fold markers and subtle lines
|
|
|
|
-- 3. Soften the text color (prevents blinding stark white text against the dark backdrop)
|
|
light0_hard = "#e5e9f0",
|
|
light0 = "#d8dee9", -- The main text color (foreground)
|
|
light0_soft = "#c8d0e0",
|
|
},
|
|
|
|
|
|
overrides = {
|
|
-- Comments: dusty earth gray, slightly desaturated
|
|
["@comment"] = { fg = "#6b6863", italic = true },
|
|
["Comment"] = { fg = "#6b6863", italic = true },
|
|
|
|
-- Strings: olive/pastel green instead of bright green
|
|
["@string"] = { fg = "#879050" },
|
|
["String"] = { fg = "#878057" },
|
|
|
|
-- Keywords: pale brick red, muted
|
|
["@keyword"] = { fg = "#a86a63" },
|
|
["Keyword"] = { fg = "#a86a63" },
|
|
["@keyword.conditional"] = { fg = "#a86a63" },
|
|
|
|
-- Functions: warm dusty brown/orange
|
|
["@function"] = { fg = "#c2a073" },
|
|
["Function"] = { fg = "#c2a073" },
|
|
|
|
-- Types: muted warm taupe/beige
|
|
["@type"] = { fg = "#a89688" },
|
|
["Type"] = { fg = "#a89688" },
|
|
|
|
-- Numbers: soft desaturated orange
|
|
["@number"] = { fg = "#b8956a" },
|
|
["Number"] = { fg = "#b8956a" },
|
|
|
|
-- Booleans: muted warm brown
|
|
["@boolean"] = { fg = "#9a7b6f" },
|
|
["Boolean"] = { fg = "#9a7b6f" },
|
|
|
|
-- Operators: desaturated warm gray
|
|
["@operator"] = { fg = "#8b8580" },
|
|
["Operator"] = { fg = "#8b8580" },
|
|
|
|
-- Special/Tags: muted dusty blue
|
|
["@tag"] = { fg = "#7a8b9a" },
|
|
["Tag"] = { fg = "#7a8b9a" },
|
|
|
|
-- Defaults: muted slate gray
|
|
["@variable"] = { fg = "#a39a91" },
|
|
["Variable"] = { fg = "#a39a91" },
|
|
|
|
-- Constants: soft desaturated teal
|
|
["@constant"] = { fg = "#8a9a8b" },
|
|
["Constant"] = { fg = "#8a9a8b" },
|
|
|
|
-- Exceptions: muted warm red
|
|
["@exception"] = { fg = "#a67b7b" },
|
|
["Exception"] = { fg = "#a67b7b" },
|
|
|
|
-- Parameters: dusty lavender gray
|
|
["@parameter"] = { fg = "#a1958a" },
|
|
["Parameter"] = { fg = "#a1958a" },
|
|
|
|
-- Methods: warm muted copper
|
|
["@method"] = { fg = "#c4a88b" },
|
|
["Method"] = { fg = "#c4a88b" },
|
|
|
|
-- Fields: soft desaturated brown
|
|
["@field"] = { fg = "#9a8b7b" },
|
|
["Field"] = { fg = "#9a8b7b" },
|
|
|
|
-- Properties: muted sage green
|
|
["@property"] = { fg = "#8a9a7b" },
|
|
["Property"] = { fg = "#8a9a7b" },
|
|
|
|
-- Import: dusty cool gray
|
|
["@include"] = { fg = "#8f8780" },
|
|
["Include"] = { fg = "#8f8780" },
|
|
|
|
-- Definitions: muted warm gray
|
|
["@define"] = { fg = "#8f8a85" },
|
|
["Define"] = { fg = "#8f8a85" },
|
|
|
|
-- Macros: soft desaturated purple
|
|
["@macro"] = { fg = "#8a7b9a" },
|
|
["Macro"] = { fg = "#8a7b9a" },
|
|
|
|
-- Title: warm muted orange
|
|
["Title"] = { fg = "#c9a66b" },
|
|
|
|
-- Directory: dusty blue-gray
|
|
["Directory"] = { fg = "#7a8590" },
|
|
|
|
-- Statement: pale brick
|
|
["Statement"] = { fg = "#b55a5a" },
|
|
|
|
-- Work: muted warm tone
|
|
["Work"] = { fg = "#c9a66b" },
|
|
|
|
-- Cursor: keep bright for visibility
|
|
["Cursor"] = { fg = "#121415", bg = "#d8dee9" },
|
|
["CursorLine"] = { bg = "#1d1f21" },
|
|
["CursorColumn"] = { bg = "#1d1f21" },
|
|
|
|
-- UI elements: subtle muted tones
|
|
["LineNr"] = { fg = "#5a5d63" },
|
|
["LineNrActive"] = { fg = "#9aa0a6" },
|
|
["VertSplit"] = { fg = "#282a2e" },
|
|
["FoldColumn"] = { fg = "#5a5d63" },
|
|
["Folded"] = { fg = "#5a5d63", bg = "#181a1b" },
|
|
["SignColumn"] = { fg = "#5a5d63" },
|
|
|
|
-- Status lines: muted dark
|
|
["StatusLine"] = { fg = "#9aa0a6", bg = "#181a1b" },
|
|
["StatusLineNC"] = { fg = "#6b6863", bg = "#181a1b" },
|
|
["TabLine"] = { fg = "#9aa0a6", bg = "#181a1b" },
|
|
["TabLineSel"] = { fg = "#d8dee9", bg = "#282a2e" },
|
|
|
|
-- Search/highlights: softened
|
|
["Search"] = { fg = "#121415", bg = "#c9a66b" },
|
|
["IncSearch"] = { fg = "#121415", bg = "#b55a5a" },
|
|
["MatchParen"] = { bg = "#282a2e", bold = true },
|
|
|
|
-- Diff: muted colors
|
|
["DiffAdd"] = { fg = "#121415", bg = "#8a9a7b" },
|
|
["DiffChange"] = { fg = "#121415", bg = "#8a8590" },
|
|
["DiffDelete"] = { fg = "#121415", bg = "#a67b7b" },
|
|
["DiffText"] = { fg = "#121415", bg = "#c9a66b" },
|
|
|
|
-- Alerts: softened
|
|
["InfoMsg"] = { fg = "#7a8b9a" },
|
|
["Question"] = { fg = "#9aa0a6" },
|
|
|
|
-- Visual: muted
|
|
["Visual"] = { bg = "#3d2d31" },
|
|
["VisualNOS"] = { bg = "#3d1a1e" },
|
|
|
|
-- Quickfix: subtle
|
|
["QuickfixLine"] = { bg = "#282a2e" },
|
|
|
|
-- Pmenu: dusty
|
|
["Pmenu"] = { fg = "#9aa0a6", bg = "#181a1b" },
|
|
["PmenuSel"] = { fg = "#d8dee9", bg = "#282a2e" },
|
|
["PmenuSbar"] = { bg = "#181a1b" },
|
|
["PmenuThumb"] = { bg = "#373b41" },
|
|
|
|
-- Whitespace: very subtle
|
|
["Whitespace"] = { fg = "#373b41" },
|
|
["@punctuation.bracket"] = { fg = "#987f87" },
|
|
["@punctuation.delimiter"] = { fg = "#6b8580" },
|
|
["@punctuation.special"] = { fg = "#987f87" },
|
|
["@punctuation.braces"] = { fg = "#987f87"},["Delimiter"] = { fg = "#987f87" },
|
|
["Special"] = { fg = "#987f87" },
|
|
|
|
|
|
|
|
["ErrorMsg"] = { fg = "#a86a63" }, -- muted brick
|
|
["WarningMsg"] = { fg = "#b59a78" }, -- aged brass
|
|
|
|
["DiagnosticError"] = { fg = "#a86a63" },
|
|
["DiagnosticWarn"] = { fg = "#b59a78" },
|
|
["DiagnosticInfo"] = { fg = "#7f8c94" },
|
|
["DiagnosticHint"] = { fg = "#8a9684" },
|
|
|
|
|
|
-- 1. Force the file tree backgrounds to perfectly match your root dark/muted palette
|
|
NeoTreeNormal = { fg = "#d8dee9", bg = "#0d0f10" }, -- Uses your custom dark palette values
|
|
NeoTreeNormalNC = { fg = "#c8d0e0", bg = "#0d0f10" }, -- Keeps background locked when focusing code windows
|
|
|
|
-- 2. Blend the vertical layout line seamlessly
|
|
NeoTreeWinSeparator = { fg = "#1d1f21", bg = "NONE" },
|
|
|
|
-- 3. Mute or adjust specific directory components
|
|
NeoTreeDirectoryName = { fg = "#286770" }, -- Classic Gruvbox blue made flat
|
|
NeoTreeDirectoryIcon = { fg = "#ce9b0f" }, -- Keep the iconic yellow but bounded
|
|
NeoTreeFileName = { fg = "#d8dee9" }, -- Clean primary font color
|
|
|
|
-- 4. Keep git modification trackers subtle
|
|
NeoTreeGitModified = { fg = "#8a9a8b" }, -- Soft olive instead of glaring neon green
|
|
NeoTreeGitUntracked = { fg = "#cc7917" },
|
|
},
|
|
|
|
dim_inactive = false,
|
|
transparent_mode = false,
|
|
})
|
|
|
|
vim.cmd("colorscheme gruvbox")
|