kickstart.nvim/lua/custom/plugins/gruvbox.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")