-- Generated by wallust from your system color scheme. Do not edit by hand. -- Source of truth: wallust/.config/wallust/templates/nvim.lua local bg = "{{background}}" local fg = "{{foreground}}" local cursor = "{{cursor}}" local c = { "{{color0}}", "{{color1}}", "{{color2}}", "{{color3}}", "{{color4}}", "{{color5}}", "{{color6}}", "{{color7}}", "{{color8}}", "{{color9}}", "{{color10}}", "{{color11}}", "{{color12}}", "{{color13}}", "{{color14}}", "{{color15}}", } -- Pick light/dark from the background luminance so plugins (diff, signs, …) behave. local function lum(hex) hex = hex:gsub("#", "") local r = tonumber(hex:sub(1, 2), 16) / 255 local g = tonumber(hex:sub(3, 4), 16) / 255 local b = tonumber(hex:sub(5, 6), 16) / 255 return 0.2126 * r + 0.7152 * g + 0.0722 * b end vim.opt.background = lum(bg) < 0.5 and "dark" or "light" vim.g.colors_name = "wallust" local set = function(name, opts) vim.api.nvim_set_hl(0, name, opts) end -- semantic aliases for the 16-color palette local black, red, green, yellow, blue, magenta, cyan, white = c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8] local brblack, brred, brgreen, bryellow, brblue, brmagenta, brcyan, brwhite = c[9], c[10], c[11], c[12], c[13], c[14], c[15], c[16] local panel = c[1] -- floating / panel background (near bg) local sel = brblack -- selection / visual background local muted = brblack -- dimmed / secondary text -- ── Editor ────────────────────────────────────────────────────────────── set("Normal", { fg = fg, bg = bg }) set("NormalFloat", { fg = fg, bg = panel }) set("NormalNC", { fg = fg, bg = bg }) set("ColorColumn", { bg = panel }) set("Conceal", { fg = muted }) set("Cursor", { fg = bg, bg = cursor }) set("CursorIM", { fg = bg, bg = cursor }) set("CursorLine", { bg = panel }) set("CursorColumn", { bg = panel }) set("CursorLineNr", { fg = fg, bg = panel }) set("LineNr", { fg = muted }) set("SignColumn", { fg = muted, bg = bg }) set("WinSeparator", { fg = muted }) set("VertSplit", { fg = muted }) set("Directory", { fg = blue }) set("DiffAdd", { fg = green, bg = bg }) set("DiffChange", { fg = yellow, bg = bg }) set("DiffDelete", { fg = red, bg = bg }) set("DiffText", { fg = yellow, bg = panel }) set("ErrorMsg", { fg = red, bold = true }) set("WarningMsg", { fg = yellow, bold = true }) set("ModeMsg", { fg = fg }) set("MsgArea", { fg = fg }) set("MoreMsg", { fg = green }) set("Question", { fg = green }) set("NonText", { fg = muted }) set("SpecialKey", { fg = muted }) set("Whitespace", { fg = panel }) set("Title", { fg = yellow, bold = true }) set("Folded", { fg = muted, bg = panel }) set("FoldColumn", { fg = muted, bg = bg }) set("MatchParen", { fg = yellow, bg = panel, bold = true }) set("Search", { fg = bg, bg = yellow }) set("IncSearch", { fg = bg, bg = magenta }) set("CurSearch", { fg = bg, bg = magenta }) set("QuickFixLine", { fg = bg, bg = blue }) set("Visual", { bg = sel }) set("VisualNOS", { bg = sel }) set("StatusLine", { fg = fg, bg = panel }) set("StatusLineNC", { fg = muted, bg = bg }) set("TabLine", { fg = muted, bg = bg }) set("TabLineFill", { fg = muted, bg = bg }) set("TabLineSel", { fg = bg, bg = blue }) set("WildMenu", { fg = bg, bg = blue }) set("Winbar", { fg = fg, bg = panel }) set("WinbarNC", { fg = muted, bg = bg }) set("Pmenu", { fg = fg, bg = panel }) set("PmenuSel", { fg = bg, bg = blue }) set("PmenuSbar", { bg = panel }) set("PmenuThumb", { bg = muted }) set("FloatBorder", { fg = muted }) set("FloatTitle", { fg = yellow, bg = panel }) set("FloatFooter", { fg = muted, bg = panel }) set("SpellBad", { undercurl = true, sp = red }) set("SpellCap", { undercurl = true, sp = yellow }) set("SpellLocal", { undercurl = true, sp = cyan }) set("SpellRare", { undercurl = true, sp = magenta }) -- ── Legacy syntax groups ──────────────────────────────────────────────── set("Comment", { fg = muted, italic = true }) set("Constant", { fg = cyan }) set("String", { fg = green }) set("Character", { fg = green }) set("Number", { fg = red }) set("Boolean", { fg = red }) set("Float", { fg = red }) set("Identifier", { fg = brcyan }) set("Function", { fg = blue }) set("Statement", { fg = magenta }) set("Conditional", { fg = magenta }) set("Repeat", { fg = magenta }) set("Label", { fg = magenta }) set("Operator", { fg = fg }) set("Keyword", { fg = magenta }) set("Exception", { fg = magenta }) set("PreProc", { fg = brblue }) set("Include", { fg = brblue }) set("Define", { fg = brblue }) set("Macro", { fg = brblue }) set("PreCondit", { fg = brblue }) set("Type", { fg = yellow }) set("StorageClass", { fg = yellow }) set("Structure", { fg = yellow }) set("Typedef", { fg = yellow }) set("Special", { fg = brgreen }) set("SpecialChar", { fg = brgreen }) set("Tag", { fg = red }) set("Delimiter", { fg = muted }) set("SpecialComment", { fg = muted, italic = true }) set("Debug", { fg = red }) set("Underlined", { fg = blue, underline = true }) set("Ignore", { fg = muted }) set("Error", { fg = red, bold = true }) set("Todo", { fg = bg, bg = yellow, bold = true }) -- ── Treesitter ────────────────────────────────────────────────────────── set("@comment", { fg = muted, italic = true }) set("@comment.lua", { fg = muted, italic = true }) set("@error", { fg = red, undercurl = true, sp = red }) set("@none", {}) set("@preproc", { fg = brblue }) set("@define", { fg = brblue }) set("@operator", { fg = fg }) set("@string", { fg = green }) set("@string.escape", { fg = red }) set("@string.special", { fg = brgreen }) set("@character", { fg = green }) set("@character.special", { fg = brgreen }) set("@number", { fg = red }) set("@float", { fg = red }) set("@boolean", { fg = red }) set("@constant", { fg = cyan }) set("@constant.builtin", { fg = brcyan }) set("@constant.macro", { fg = brblue }) set("@variable", { fg = fg }) set("@variable.builtin", { fg = red }) set("@variable.parameter", { fg = fg }) set("@variable.parameter.builtin", { fg = fg }) set("@field", { fg = fg }) set("@property", { fg = fg }) set("@function", { fg = blue }) set("@function.builtin", { fg = blue }) set("@function.macro", { fg = brblue }) set("@method", { fg = blue }) set("@constructor", { fg = yellow }) set("@parameter", { fg = fg }) set("@keyword", { fg = magenta }) set("@keyword.function", { fg = magenta }) set("@keyword.operator", { fg = magenta }) set("@keyword.modifier", { fg = magenta }) set("@storageclass", { fg = yellow }) set("@structure", { fg = yellow }) set("@namespace", { fg = blue }) set("@type", { fg = yellow }) set("@type.builtin", { fg = bryellow }) set("@type.definition", { fg = yellow }) set("@punctuation.delimiter", { fg = muted }) set("@punctuation.bracket", { fg = fg }) set("@punctuation.special", { fg = magenta }) set("@text", { fg = fg }) set("@text.strong", { bold = true }) set("@text.emphasis", { italic = true }) set("@text.underline", { underline = true }) set("@text.strike", { strikethrough = true }) set("@text.title", { fg = blue, bold = true }) set("@text.title.1", { fg = blue, bold = true }) set("@text.title.2", { fg = cyan, bold = true }) set("@text.title.3", { fg = green, bold = true }) set("@text.title.4", { fg = yellow, bold = true }) set("@text.title.5", { fg = magenta, bold = true }) set("@text.title.6", { fg = red, bold = true }) set("@text.literal", { fg = green }) set("@text.uri", { fg = cyan, underline = true }) set("@text.todo", { fg = bg, bg = yellow, bold = true }) set("@text.note", { fg = bg, bg = blue, bold = true }) set("@text.warning", { fg = bg, bg = yellow, bold = true }) set("@text.danger", { fg = bg, bg = red, bold = true }) set("@tag", { fg = red }) set("@tag.attribute", { fg = yellow }) set("@tag.delimiter", { fg = muted }) set("@markup.heading", { fg = blue, bold = true }) set("@markup.strong", { bold = true }) set("@markup.italic", { italic = true }) set("@markup.link", { fg = cyan, underline = true }) set("@markup.link.url", { fg = cyan, underline = true }) set("@markup.raw", { fg = green }) set("@markup.list", { fg = magenta }) set("@markup.quote", { fg = muted, italic = true }) set("@diff.add", { fg = green }) set("@diff.delete", { fg = red }) set("@diff.change", { fg = yellow }) set("@conceal", { fg = muted }) -- ── LSP / Diagnostics ─────────────────────────────────────────────────── set("DiagnosticError", { fg = red }) set("DiagnosticWarn", { fg = yellow }) set("DiagnosticInfo", { fg = blue }) set("DiagnosticHint", { fg = cyan }) set("DiagnosticOk", { fg = green }) set("DiagnosticVirtualTextError", { fg = red }) set("DiagnosticVirtualTextWarn", { fg = yellow }) set("DiagnosticVirtualTextInfo", { fg = blue }) set("DiagnosticVirtualTextHint", { fg = cyan }) set("DiagnosticUnderlineError", { undercurl = true, sp = red }) set("DiagnosticUnderlineWarn", { undercurl = true, sp = yellow }) set("DiagnosticUnderlineInfo", { undercurl = true, sp = blue }) set("DiagnosticUnderlineHint", { undercurl = true, sp = cyan }) set("DiagnosticSignError", { fg = red }) set("DiagnosticSignWarn", { fg = yellow }) set("DiagnosticSignInfo", { fg = blue }) set("DiagnosticSignHint", { fg = cyan }) set("DiagnosticFloatingError", { fg = red }) set("DiagnosticFloatingWarn", { fg = yellow }) set("DiagnosticFloatingInfo", { fg = blue }) set("DiagnosticFloatingHint", { fg = cyan }) set("DiagnosticUnnecessary", { undercurl = true, sp = muted }) set("LspReferenceText", { bg = sel }) set("LspReferenceRead", { bg = sel }) set("LspReferenceWrite", { bg = sel }) set("LspCodeLens", { fg = muted }) set("LspCodeLensSeparator", { fg = muted }) set("LspSignatureActiveParameter", { fg = yellow, bold = true }) set("LspInlayHint", { fg = muted, italic = true }) -- ── Git / signs ───────────────────────────────────────────────────────── set("GitSignsAdd", { fg = green }) set("GitSignsChange", { fg = yellow }) set("GitSignsDelete", { fg = red }) set("GitSignsAddLn", { fg = green }) set("GitSignsChangeLn", { fg = yellow }) set("GitSignsDeleteLn", { fg = red }) set("GitSignsCurrentLineBlame", { fg = muted }) set("SignAdd", { fg = green }) set("SignChange", { fg = yellow }) set("SignDelete", { fg = red }) -- ── Misc plugin UI ────────────────────────────────────────────────────── set("TelescopeNormal", { fg = fg, bg = panel }) set("TelescopeBorder", { fg = muted }) set("TelescopePromptBorder", { fg = muted }) set("TelescopeResultsBorder", { fg = muted }) set("TelescopeTitle", { fg = yellow, bold = true }) set("TelescopeSelection", { fg = bg, bg = blue }) set("TelescopeMatching", { fg = yellow, bold = true }) set("WhichKey", { fg = fg }) set("WhichKeyGroup", { fg = blue }) set("WhichKeyDesc", { fg = fg }) set("WhichKeySeparator", { fg = muted }) set("WhichKeyFloat", { bg = panel }) set("WhichKeyValue", { fg = muted }) set("CmpItemAbbr", { fg = fg }) set("CmpItemAbbrDeprecated", { fg = muted, strikethrough = true }) set("CmpItemAbbrMatch", { fg = yellow, bold = true }) set("CmpItemKind", { fg = blue }) set("CmpItemMenu", { fg = muted }) set("NvimTreeNormal", { fg = fg, bg = bg }) set("NvimTreeIndentMarker", { fg = panel }) set("NvimTreeFolderIcon", { fg = blue }) set("NvimTreeOpenedFile", { fg = blue }) set("NvimTreeGitDirty", { fg = yellow }) set("NvimTreeGitNew", { fg = green }) set("NvimTreeGitDeleted", { fg = red }) set("BufferLineFill", { bg = bg }) set("BufferLineBackground", { fg = muted }) set("BufferLineBufferSelected", { fg = fg, bold = true }) set("BufferLineIndicatorSelected", { fg = blue }) set("BufferLineTabSelected", { fg = blue, bold = true }) set("BufferLineModified", { fg = yellow }) set("NeoTreeNormal", { fg = fg, bg = bg })