summaryrefslogtreecommitdiff
path: root/.config/wallust/templates/nvim.lua
diff options
context:
space:
mode:
authorseraphim <18ycm9tx@anonaddy.me>2026-08-23 18:07:29 +0700
committerseraphim <18ycm9tx@anonaddy.me>2026-08-23 18:07:29 +0700
commited3e8f6ec6929327ab19e512ffb0d8ece12ed5a8 (patch)
treef1a783af87d29b8d78ce20df5a485f92b8c32d5d /.config/wallust/templates/nvim.lua
parent3c71645d355910b6998e97a1efca6f5a7c7608bc (diff)
reorganize directories, so everything in .config
Diffstat (limited to '.config/wallust/templates/nvim.lua')
-rw-r--r--.config/wallust/templates/nvim.lua306
1 files changed, 306 insertions, 0 deletions
diff --git a/.config/wallust/templates/nvim.lua b/.config/wallust/templates/nvim.lua
new file mode 100644
index 0000000..be60dd7
--- /dev/null
+++ b/.config/wallust/templates/nvim.lua
@@ -0,0 +1,306 @@
+-- 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 })