From 9f12ea8a648fa6483b392dc9ba1d7dbf4e61057c Mon Sep 17 00:00:00 2001 From: seraphim <18ycm9tx@anonaddy.me> Date: Sun, 23 Aug 2026 13:48:20 +0700 Subject: - --- wallust/.config/wallust/templates/nvim.lua | 306 +++++++++++++++++++++++++++++ wallust/.config/wallust/wallust.toml | 1 + 2 files changed, 307 insertions(+) create mode 100644 wallust/.config/wallust/templates/nvim.lua (limited to 'wallust') diff --git a/wallust/.config/wallust/templates/nvim.lua b/wallust/.config/wallust/templates/nvim.lua new file mode 100644 index 0000000..be60dd7 --- /dev/null +++ b/wallust/.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 }) diff --git a/wallust/.config/wallust/wallust.toml b/wallust/.config/wallust/wallust.toml index c8fdbdb..d1e8925 100644 --- a/wallust/.config/wallust/wallust.toml +++ b/wallust/.config/wallust/wallust.toml @@ -1,6 +1,7 @@ backend = "fastresize" [templates] +nvim = { template = "nvim.lua", target = "~/.cache/wallust/colors/wallust.lua" } foottheme = { template = "foot-colors-custom.ini", target = "~/.cache/wallust/foot-theme.ini" } vicinae_dark = { template = "vicinae-dark.toml", target = "~/.cache/wallust/vicinae-dark.toml" } vicinae_light = { template = "vicinae-light.toml", target = "~/.cache/wallust/vicinae-light.toml" } -- cgit v1.2.3