Adding custom color schemes.

This commit is contained in:
calcu1on 2025-07-31 12:27:11 -04:00
parent 074e475d40
commit 6eda929dd3
5 changed files with 748 additions and 2 deletions

195
colors/demoiselles.lua Normal file
View File

@ -0,0 +1,195 @@
local variant = vim.o.background -- "dark" or "light"
local colors = {}
if variant == "dark" then
colors = {
bg = "#1b1b1b", -- Bone black
fg = "#ddccbb", -- Lead white (muted for dark bg)
comment = "#807060", -- Warm neutral
red = "#d96a59", -- Vermilion-ochre
green = "#6ea177", -- Emerald green
yellow = "#e0b15e", -- Cadmium yellow
blue = "#8fb9c9", -- Cobalt blue
magenta = "#c9b78e", -- Ochre-pink repurposed
cyan = "#a3b6a8", -- Cool neutral accent
cursorline = "#2a2e33", -- Slightly lighter than bg
highlight = "#444444", -- For visual selections
}
else
colors = {
bg = "#fcf8f0", -- Lead white / fresco ivory
fg = "#3b3025", -- Deep umber brown
red = "#a5443a", -- Rusty vermilion
green = "#4f7c69", -- Emerald green softened
yellow = "#c69c3a", -- Renaissance gold / cadmium yellow
blue = "#3b6a8b", -- Muted cobalt blue
magenta = "#8c7a5e", -- Ochre-pink accent
cyan = "#a8c3d1", -- Soft sky blue-grey
comment = "#8b7e70", -- Warm stone grey
cursorline = "#e0d5c8", -- Pale ivory shadow
highlight = "#c9a04f", -- Gold highlight
}
end
vim.cmd("hi clear")
vim.o.termguicolors = true
vim.g.colors_name = "demoiselles"
local set = vim.api.nvim_set_hl
local function hi(group, opts) set(0, group, opts) end
-- Core UI
hi("Normal", { fg = colors.fg, bg = colors.bg })
hi("CursorLine", { bg = colors.cursorline })
hi("Visual", { bg = colors.highlight })
hi("LineNr", { fg = colors.comment })
hi("CursorLineNr",{ fg = colors.yellow, bold = true })
hi("VertSplit", { fg = colors.comment })
hi("StatusLine", { fg = colors.fg, bg = colors.cursorline })
hi("StatusLineNC",{ fg = colors.comment, bg = colors.cursorline })
hi("Pmenu", { fg = colors.fg, bg = colors.cursorline })
hi("PmenuSel", { fg = colors.bg, bg = colors.yellow })
hi("Search", { fg = colors.bg, bg = colors.yellow })
hi("IncSearch", { fg = colors.bg, bg = colors.red })
-- Syntax
hi("Comment", { fg = colors.comment, italic = true })
hi("Constant", { fg = colors.red })
hi("String", { fg = colors.yellow })
hi("Character", { fg = colors.yellow })
hi("Number", { fg = colors.red })
hi("Boolean", { fg = colors.red })
hi("Float", { fg = colors.red })
hi("Identifier", { fg = colors.blue })
hi("Function", { fg = colors.green })
hi("Statement", { fg = colors.blue })
hi("Conditional", { fg = colors.magenta })
hi("Repeat", { fg = colors.magenta })
hi("Label", { fg = colors.yellow })
hi("Operator", { fg = colors.fg })
hi("Keyword", { fg = colors.blue, bold = true })
hi("Exception", { fg = colors.red })
hi("PreProc", { fg = colors.magenta })
hi("Include", { fg = colors.blue })
hi("Define", { fg = colors.magenta })
hi("Macro", { fg = colors.magenta })
hi("PreCondit", { fg = colors.magenta })
hi("Type", { fg = colors.green })
hi("StorageClass",{ fg = colors.green })
hi("Structure", { fg = colors.green })
hi("Typedef", { fg = colors.green })
hi("Special", { fg = colors.cyan })
hi("SpecialChar", { fg = colors.yellow })
hi("Tag", { fg = colors.blue })
hi("Delimiter", { fg = colors.fg })
hi("SpecialComment",{ fg = colors.comment, italic = true })
hi("Debug", { fg = colors.red })
hi("Underlined", { fg = colors.blue, underline = true })
hi("Bold", { bold = true })
hi("Italic", { italic = true })
hi("Error", { fg = colors.red, bold = true })
hi("Todo", { fg = colors.magenta, bold = true })
hi("WarningMsg", { fg = colors.yellow })
hi("ErrorMsg", { fg = colors.red, bold = true })
-- Diagnostics (LSP)
hi("DiagnosticError", { fg = colors.red })
hi("DiagnosticWarn", { fg = colors.yellow })
hi("DiagnosticInfo", { fg = colors.blue })
hi("DiagnosticHint", { fg = colors.cyan })
hi("DiagnosticUnderlineError", { undercurl = true, sp = colors.red })
hi("DiagnosticUnderlineWarn", { undercurl = true, sp = colors.yellow })
hi("DiagnosticUnderlineInfo", { undercurl = true, sp = colors.blue })
hi("DiagnosticUnderlineHint", { undercurl = true, sp = colors.cyan })
-- LSP Semantic Tokens
hi("@lsp.type.class", { fg = colors.yellow })
hi("@lsp.type.function", { fg = colors.blue })
hi("@lsp.type.variable", { fg = colors.fg })
hi("@lsp.type.parameter", { fg = colors.cyan })
hi("@lsp.type.property", { fg = colors.green })
hi("@lsp.type.enum", { fg = colors.magenta })
-- Treesitter
hi("@comment", { fg = colors.comment, italic = true })
hi("@function", { fg = colors.blue })
hi("@keyword", { fg = colors.red, italic = true })
hi("@string", { fg = colors.green })
hi("@variable", { fg = colors.fg })
hi("@type", { fg = colors.yellow })
hi("@property", { fg = colors.green })
hi("@number", { fg = colors.magenta })
-- Telescope
hi("TelescopeBorder", { fg = colors.comment })
hi("TelescopePromptTitle",{ fg = colors.yellow, bold = true })
hi("TelescopeSelection", { bg = colors.cursorline })
hi("TelescopeMatching", { fg = colors.blue })
-- DAP (Debug)
hi("DebugBreakpoint", { fg = colors.red })
hi("DebugBreakpointLine", { bg = colors.cursorline })
hi("DebugPC", { bg = colors.highlight })
hi("DebugCurrentLine", { underline = true, sp = colors.yellow })
-- Pmenu (Completion)
hi("Pmenu", { fg = colors.fg, bg = colors.cursorline })
hi("PmenuSel", { fg = colors.bg, bg = colors.highlight })
hi("PmenuThumb", { bg = colors.highlight })
-- Notify / Noice / Snacks
hi("NotifyINFOBorder", { fg = colors.blue })
hi("NotifyWARNBorder", { fg = colors.yellow })
hi("NotifyERRORBorder", { fg = colors.red })
hi("NotifyDEBUGBorder", { fg = colors.cyan })
hi("NotifyTRACEBorder", { fg = colors.magenta })
hi("NoicePopup", { bg = colors.cursorline })
hi("NoicePopupmenu", { bg = colors.cursorline, fg = colors.fg })
-- Git Diff
hi("DiffAdd", { fg = colors.green })
hi("DiffChange", { fg = colors.blue })
hi("DiffDelete", { fg = colors.red })
-- Terminal Colors
vim.g.terminal_color_0 = colors.bg
vim.g.terminal_color_1 = colors.red
vim.g.terminal_color_2 = colors.green
vim.g.terminal_color_3 = colors.yellow
vim.g.terminal_color_4 = colors.blue
vim.g.terminal_color_5 = colors.magenta
vim.g.terminal_color_6 = colors.cyan
vim.g.terminal_color_7 = colors.fg
vim.g.terminal_color_8 = colors.comment
vim.g.terminal_color_9 = colors.red
vim.g.terminal_color_10 = colors.green
vim.g.terminal_color_11 = colors.yellow
vim.g.terminal_color_12 = colors.blue
vim.g.terminal_color_13 = colors.magenta
vim.g.terminal_color_14 = colors.cyan
vim.g.terminal_color_15 = colors.fg
-- Apply Snacks highlights unconditionally
hi("SnacksNormal", { fg = colors.fg, bg = colors.bg })
hi("SnacksNormalNC", { fg = colors.comment, bg = colors.bg })
hi("SnacksWinBar", { fg = colors.magenta, bg = colors.bg, bold = true })
hi("SnacksWinBarNC", { fg = colors.comment, bg = colors.bg })
hi("SnacksCursorLine", { bg = colors.highlight })
hi("SnacksCursor", { bg = colors.highlight })
hi("SnacksPickerFile", { fg = colors.green, bold = true })
hi("SnacksPickerDir", { fg = colors.comment })
hi("SnacksPickerPathHidden", { fg = colors.comment, italic = true })
hi("SnacksPickerPathIgnored",{ fg = colors.comment, italic = true })
hi("SnacksPickerPrefix", { fg = colors.yellow })
hi("SnacksPickerNormal", { fg = colors.fg, bg = colors.yellow }) -- Normal picker line
hi("SnacksPickerSelected", { fg = colors.bg, bg = colors.highlight }) -- Selected item (invert fg/bg)
hi("SnacksPickerCursor", { fg = colors.yellow, bg = colors.cursorline })
hi("NormalFloat", { fg = colors.fg, bg = colors.bg })

201
colors/nighthawks.lua Normal file
View File

@ -0,0 +1,201 @@
-- nighthawks.lua
-- Neovim colorscheme inspired by Edward Hopper's "Nighthawks" (1942)
-- Dark = cinematic nighttime neon
-- Light = soft morning reinterpretation
local variant = vim.g.nighthawks_variant or "dark"
local colors = {}
if variant == "dark" then
colors = {
bg = "#0e1a22", -- Deep midnight navy
fg = "#d4d8dc", -- Pale warm white
comment = "#6a7b85", -- Smoky teal-gray
red = "#d15b4d", -- Neon diner red
green = "#6fa88d", -- Jade counter green
yellow = "#e3c770", -- Warm interior light
blue = "#5a87a5", -- Windowpane blue
magenta = "#b67aa0", -- Soft wine glow
cyan = "#77aab7", -- Cool teal accent
cursorline = "#172730", -- Slightly lighter than bg
highlight = "#24404f", -- Dim cyan highlight
}
else
colors = {
bg = "#f6f4f2", -- Muted paper white
fg = "#2f3b44", -- Charcoal ink
comment = "#868d93", -- Cool gray
red = "#b14f42", -- Brick red
green = "#5d8b76", -- Muted jade
yellow = "#c8a856", -- Soft sunlight gold
blue = "#3f6c89", -- Subdued cobalt
magenta = "#9b6f86", -- Dusty rose
cyan = "#649aa5", -- Sky teal
cursorline = "#e3dfdc", -- Light stone gray
highlight = "#c2b89c", -- Warm neutral highlight
}
end
local function hi(group, opts)
vim.api.nvim_set_hl(0, group, opts)
end
-- Core UI
hi("Normal", { fg = colors.fg, bg = colors.bg })
hi("CursorLine", { bg = colors.cursorline })
hi("Visual", { bg = colors.highlight })
hi("LineNr", { fg = colors.comment })
hi("CursorLineNr",{ fg = colors.yellow, bold = true })
hi("VertSplit", { fg = colors.comment })
hi("StatusLine", { fg = colors.fg, bg = colors.cursorline })
hi("StatusLineNC",{ fg = colors.comment, bg = colors.cursorline })
hi("Pmenu", { fg = colors.fg, bg = colors.cursorline })
hi("PmenuSel", { fg = colors.bg, bg = colors.blue, bold = true })
hi("Search", { fg = colors.bg, bg = colors.yellow, bold = true })
hi("IncSearch", { fg = colors.bg, bg = colors.red, bold = true })
-- Syntax
hi("Comment", { fg = colors.comment, italic = true })
hi("Constant", { fg = colors.red })
hi("String", { fg = colors.yellow })
hi("Character", { fg = colors.yellow })
hi("Number", { fg = colors.cyan })
hi("Boolean", { fg = colors.cyan, bold = true })
hi("Float", { fg = colors.cyan })
hi("Identifier", { fg = colors.blue })
hi("Function", { fg = colors.green, bold = true })
hi("Statement", { fg = colors.blue })
hi("Conditional", { fg = colors.magenta })
hi("Repeat", { fg = colors.magenta })
hi("Label", { fg = colors.yellow })
hi("Operator", { fg = colors.fg })
hi("Keyword", { fg = colors.blue, bold = true })
hi("Exception", { fg = colors.red })
hi("PreProc", { fg = colors.magenta })
hi("Include", { fg = colors.blue })
hi("Define", { fg = colors.magenta })
hi("Macro", { fg = colors.magenta })
hi("PreCondit", { fg = colors.magenta })
hi("Type", { fg = colors.green })
hi("StorageClass",{ fg = colors.green })
hi("Structure", { fg = colors.green })
hi("Typedef", { fg = colors.green })
hi("Special", { fg = colors.cyan })
hi("SpecialChar", { fg = colors.yellow })
hi("Tag", { fg = colors.blue })
hi("Delimiter", { fg = colors.fg })
hi("SpecialComment",{ fg = colors.comment, italic = true })
hi("Debug", { fg = colors.red })
hi("Underlined", { fg = colors.blue, underline = true })
hi("Bold", { bold = true })
hi("Italic", { italic = true })
hi("Error", { fg = colors.red, bold = true })
hi("Todo", { fg = colors.yellow, bold = true })
hi("WarningMsg", { fg = colors.yellow })
hi("ErrorMsg", { fg = colors.red, bold = true })
-- Diagnostics (LSP)
hi("DiagnosticError", { fg = colors.red })
hi("DiagnosticWarn", { fg = colors.yellow })
hi("DiagnosticInfo", { fg = colors.blue })
hi("DiagnosticHint", { fg = colors.cyan })
hi("DiagnosticUnderlineError", { undercurl = true, sp = colors.red })
hi("DiagnosticUnderlineWarn", { undercurl = true, sp = colors.yellow })
hi("DiagnosticUnderlineInfo", { undercurl = true, sp = colors.blue })
hi("DiagnosticUnderlineHint", { undercurl = true, sp = colors.cyan })
-- LSP Semantic Tokens
hi("@lsp.type.class", { fg = colors.yellow })
hi("@lsp.type.function", { fg = colors.blue })
hi("@lsp.type.variable", { fg = colors.fg })
hi("@lsp.type.parameter", { fg = colors.cyan })
hi("@lsp.type.property", { fg = colors.green })
hi("@lsp.type.enum", { fg = colors.magenta })
-- Treesitter
hi("@comment", { fg = colors.comment, italic = true })
hi("@function", { fg = colors.blue })
hi("@keyword", { fg = colors.red, italic = true })
hi("@string", { fg = colors.green })
hi("@variable", { fg = colors.fg })
hi("@type", { fg = colors.yellow })
hi("@property", { fg = colors.green })
hi("@number", { fg = colors.magenta })
-- Telescope
hi("TelescopeBorder", { fg = colors.comment })
hi("TelescopePromptTitle",{ fg = colors.yellow, bold = true })
hi("TelescopeSelection", { bg = colors.cursorline })
hi("TelescopeMatching", { fg = colors.blue })
-- DAP (Debug)
hi("DebugBreakpoint", { fg = colors.red })
hi("DebugBreakpointLine", { bg = colors.cursorline })
hi("DebugPC", { bg = colors.highlight })
hi("DebugCurrentLine", { underline = true, sp = colors.yellow })
-- Pmenu (Completion)
hi("Pmenu", { fg = colors.fg, bg = colors.cursorline })
hi("PmenuSel", { fg = colors.bg, bg = colors.highlight })
hi("PmenuThumb", { bg = colors.highlight })
-- Notify / Noice / Snacks
hi("NotifyINFOBorder", { fg = colors.blue })
hi("NotifyWARNBorder", { fg = colors.yellow })
hi("NotifyERRORBorder", { fg = colors.red })
hi("NotifyDEBUGBorder", { fg = colors.cyan })
hi("NotifyTRACEBorder", { fg = colors.magenta })
hi("NoicePopup", { bg = colors.cursorline })
hi("NoicePopupmenu", { bg = colors.cursorline, fg = colors.fg })
-- Git Diff
hi("DiffAdd", { fg = colors.green })
hi("DiffChange", { fg = colors.blue })
hi("DiffDelete", { fg = colors.red })
-- Terminal Colors
vim.g.terminal_color_0 = colors.bg
vim.g.terminal_color_1 = colors.red
vim.g.terminal_color_2 = colors.green
vim.g.terminal_color_3 = colors.yellow
vim.g.terminal_color_4 = colors.blue
vim.g.terminal_color_5 = colors.magenta
vim.g.terminal_color_6 = colors.cyan
vim.g.terminal_color_7 = colors.fg
vim.g.terminal_color_8 = colors.comment
vim.g.terminal_color_9 = colors.red
vim.g.terminal_color_10 = colors.green
vim.g.terminal_color_11 = colors.yellow
vim.g.terminal_color_12 = colors.blue
vim.g.terminal_color_13 = colors.magenta
vim.g.terminal_color_14 = colors.cyan
vim.g.terminal_color_15 = colors.fg
-- Apply Snacks highlights unconditionally
hi("SnacksNormal", { fg = colors.fg, bg = colors.bg })
hi("SnacksNormalNC", { fg = colors.comment, bg = colors.bg })
hi("SnacksWinBar", { fg = colors.magenta, bg = colors.bg, bold = true })
hi("SnacksWinBarNC", { fg = colors.comment, bg = colors.bg })
hi("SnacksCursorLine", { bg = colors.highlight })
hi("SnacksCursor", { bg = colors.highlight })
hi("SnacksPickerFile", { fg = colors.green, bold = true })
hi("SnacksPickerDir", { fg = colors.comment })
hi("SnacksPickerPathHidden", { fg = colors.comment, italic = true })
hi("SnacksPickerPathIgnored",{ fg = colors.comment, italic = true })
hi("SnacksPickerPrefix", { fg = colors.yellow })
hi("SnacksPickerNormal", { fg = colors.fg, bg = colors.yellow }) -- Normal picker line
hi("SnacksPickerSelected", { fg = colors.bg, bg = colors.highlight }) -- Selected item (invert fg/bg)
hi("SnacksPickerCursor", { fg = colors.yellow, bg = colors.cursorline })
hi("NormalFloat", { fg = colors.fg, bg = colors.bg })
return colors

151
colors/sistine.lua Normal file
View File

@ -0,0 +1,151 @@
-- Sistine Theme for Neovim (Extended)
-- Inspired by the Sistine Chapel
local variant = vim.o.background -- "dark" or "light"
local colors = {}
if variant == "dark" then
colors = {
bg = "#1f2428",
fg = "#dfd8c0",
comment = "#8a9286",
blue = "#6d8ec7",
green = "#a5c39f",
yellow = "#dfc17d",
red = "#dba59a",
magenta = "#dba59a", -- repurpose if needed
cursorline= "#2a2e33",
highlight = "#343a40", -- darker than bg2 for visual selects
}
else
colors = {
bg = "#f4f1ec", -- Fresco White
fg = "#80614d", -- Divine Umber
red = "#d18a74", -- Cherub Blush
green = "#7c8957", -- Olive Laurel
yellow = "#c9a04f", -- Renaissance Gold
blue = "#a8c3d1", -- Sky Blue
magenta = "#e5b1aa", -- Angel Pink
cyan = "#c1b6aa", -- Marble Grey
comment = "#a1978e", -- Softened Marble
highlight = "#c9a04f", -- Renaissance Gold
cursorline = "#e8e2db",
}
end
vim.cmd("hi clear")
vim.o.termguicolors = true
vim.g.colors_name = "sistine"
local set = vim.api.nvim_set_hl
local function hi(group, opts) set(0, group, opts) end
-- Core UI
hi("Normal", { fg = colors.fg, bg = colors.bg })
hi("Comment", { fg = colors.comment, italic = true })
hi("CursorLine", { bg = colors.cursorline })
hi("Visual", { bg = colors.highlight })
hi("LineNr", { fg = colors.comment })
hi("CursorLineNr", { fg = colors.yellow, bold = true })
hi("StatusLine", { fg = colors.fg, bg = colors.cursorline })
hi("VertSplit", { fg = colors.comment })
hi("Title", { fg = colors.magenta, bold = true })
hi("Search", { bg = colors.yellow, fg = colors.bg })
hi("IncSearch", { bg = colors.red, fg = colors.bg })
-- Diagnostics (LSP)
hi("DiagnosticError", { fg = colors.red })
hi("DiagnosticWarn", { fg = colors.yellow })
hi("DiagnosticInfo", { fg = colors.blue })
hi("DiagnosticHint", { fg = colors.green })
hi("DiagnosticUnderlineError", { undercurl = true, sp = colors.red })
hi("DiagnosticUnderlineWarn", { undercurl = true, sp = colors.yellow })
hi("DiagnosticUnderlineInfo", { undercurl = true, sp = colors.blue })
hi("DiagnosticUnderlineHint", { undercurl = true, sp = colors.green })
-- LSP Semantic Tokens
hi("@lsp.type.class", { fg = colors.yellow })
hi("@lsp.type.function", { fg = colors.blue })
hi("@lsp.type.variable", { fg = colors.fg })
hi("@lsp.type.parameter", { fg = colors.cyan })
hi("@lsp.type.property", { fg = colors.green })
hi("@lsp.type.enum", { fg = colors.magenta })
-- Treesitter
hi("@comment", { fg = colors.comment, italic = true })
hi("@function", { fg = colors.blue })
hi("@keyword", { fg = colors.red, italic = true })
hi("@string", { fg = colors.green })
hi("@variable", { fg = colors.fg })
hi("@type", { fg = colors.yellow })
hi("@property", { fg = colors.green })
hi("@number", { fg = colors.magenta })
-- Telescope
hi("TelescopeBorder", { fg = colors.comment })
hi("TelescopePromptTitle",{ fg = colors.yellow, bold = true })
hi("TelescopeSelection", { bg = colors.cursorline })
hi("TelescopeMatching", { fg = colors.blue })
-- DAP (Debug)
hi("DebugBreakpoint", { fg = colors.red })
hi("DebugBreakpointLine", { bg = colors.cursorline })
hi("DebugPC", { bg = colors.highlight })
hi("DebugCurrentLine", { underline = true, sp = colors.yellow })
-- Pmenu (Completion)
hi("Pmenu", { fg = colors.fg, bg = colors.cursorline })
hi("PmenuSel", { fg = colors.bg, bg = colors.highlight })
hi("PmenuThumb", { bg = colors.highlight })
-- Notify / Noice / Snacks
hi("NotifyINFOBorder", { fg = colors.blue })
hi("NotifyWARNBorder", { fg = colors.yellow })
hi("NotifyERRORBorder", { fg = colors.red })
hi("NotifyDEBUGBorder", { fg = colors.cyan })
hi("NotifyTRACEBorder", { fg = colors.magenta })
hi("NoicePopup", { bg = colors.cursorline })
hi("NoicePopupmenu", { bg = colors.cursorline, fg = colors.fg })
-- Git Diff
hi("DiffAdd", { fg = colors.green })
hi("DiffChange", { fg = colors.blue })
hi("DiffDelete", { fg = colors.red })
-- Terminal Colors
vim.g.terminal_color_0 = colors.bg
vim.g.terminal_color_1 = colors.red
vim.g.terminal_color_2 = colors.green
vim.g.terminal_color_3 = colors.yellow
vim.g.terminal_color_4 = colors.blue
vim.g.terminal_color_5 = colors.magenta
vim.g.terminal_color_6 = colors.cyan
vim.g.terminal_color_7 = colors.fg
vim.g.terminal_color_8 = colors.comment
vim.g.terminal_color_9 = colors.red
vim.g.terminal_color_10 = colors.green
vim.g.terminal_color_11 = colors.yellow
vim.g.terminal_color_12 = colors.blue
vim.g.terminal_color_13 = colors.magenta
vim.g.terminal_color_14 = colors.cyan
vim.g.terminal_color_15 = colors.fg
-- Bottom of sistine.lua (after terminal colors)
-- Apply Snacks highlights unconditionally
hi("SnacksNormal", { fg = colors.fg, bg = colors.bg })
hi("SnacksNormalNC", { fg = colors.comment, bg = colors.bg })
hi("SnacksWinBar", { fg = colors.magenta, bg = colors.bg, bold = true })
hi("SnacksWinBarNC", { fg = colors.comment, bg = colors.bg })
hi("SnacksCursorLine", { bg = colors.highlight })
hi("SnacksCursor", { bg = colors.highlight })
hi("SnacksPickerFile", { fg = colors.green, bold = true })
hi("SnacksPickerDir", { fg = colors.comment })
hi("SnacksPickerPathHidden", { fg = colors.comment, italic = true })
hi("SnacksPickerPathIgnored",{ fg = colors.comment, italic = true })
hi("SnacksPickerPrefix", { fg = colors.yellow })
hi("SnacksPickerNormal", { fg = colors.fg, bg = colors.yellow }) -- Normal picker line
hi("SnacksPickerSelected", { fg = colors.bg, bg = colors.highlight }) -- Selected item (invert fg/bg)
hi("SnacksPickerCursor", { fg = colors.yellow, bg = colors.cursorline })
hi("NormalFloat", { fg = colors.fg, bg = colors.bg })

195
colors/starry_night.lua Normal file
View File

@ -0,0 +1,195 @@
local variant = vim.o.background -- "dark" or "light"
local colors = {}
if variant == "dark" then
colors = {
bg = "#0b1220", -- Deep midnight blue
fg = "#d7dbe7", -- Starlight white
comment = "#5b6a8a", -- Muted blue-gray
red = "#d77b6e", -- Rusty crimson (village roofs)
green = "#7ea97e", -- Cypress green
yellow = "#f5d97a", -- Star glow
blue = "#345d9d", -- Ultramarine swirl
magenta = "#9d7cae", -- Violet undertones
cyan = "#5fb8c5", -- Turquoise accent
cursorline = "#162033", -- Soft navy for line highlight
highlight = "#244060", -- Glow for visual mode
}
else
colors = {
bg = "#f7f4ed", -- Soft parchment dawn
fg = "#2f3d59", -- Ink blue
comment = "#7c869f", -- Cloud gray
red = "#c05a50", -- Terracotta red
green = "#608b6f", -- Cypress softened
yellow = "#e6c45d", -- Morning gold
blue = "#476c9b", -- Sky blue
magenta = "#8c6f98", -- Lilac violet
cyan = "#6aa5b4", -- Light teal
cursorline = "#e1ddd3", -- Pale beige
highlight = "#c9b99a", -- Golden-beige for visual select
}
end
vim.cmd("hi clear")
vim.o.termguicolors = true
vim.g.colors_name = "demoiselles"
local set = vim.api.nvim_set_hl
local function hi(group, opts) set(0, group, opts) end
-- Core UI
hi("Normal", { fg = colors.fg, bg = colors.bg })
hi("CursorLine", { bg = colors.cursorline })
hi("Visual", { bg = colors.highlight })
hi("LineNr", { fg = colors.comment })
hi("CursorLineNr",{ fg = colors.yellow, bold = true })
hi("VertSplit", { fg = colors.comment })
hi("StatusLine", { fg = colors.fg, bg = colors.cursorline })
hi("StatusLineNC",{ fg = colors.comment, bg = colors.cursorline })
hi("Pmenu", { fg = colors.fg, bg = colors.cursorline })
hi("PmenuSel", { fg = colors.bg, bg = colors.yellow })
hi("Search", { fg = colors.bg, bg = colors.yellow })
hi("IncSearch", { fg = colors.bg, bg = colors.red })
-- Syntax
hi("Comment", { fg = colors.comment, italic = true })
hi("Constant", { fg = colors.red })
hi("String", { fg = colors.yellow })
hi("Character", { fg = colors.yellow })
hi("Number", { fg = colors.cyan })
hi("Boolean", { fg = colors.cyan })
hi("Float", { fg = colors.cyan })
hi("Identifier", { fg = colors.blue })
hi("Function", { fg = colors.green })
hi("Statement", { fg = colors.blue })
hi("Conditional", { fg = colors.magenta })
hi("Repeat", { fg = colors.magenta })
hi("Label", { fg = colors.yellow })
hi("Operator", { fg = colors.fg })
hi("Keyword", { fg = colors.blue, bold = true })
hi("Exception", { fg = colors.red })
hi("PreProc", { fg = colors.magenta })
hi("Include", { fg = colors.blue })
hi("Define", { fg = colors.magenta })
hi("Macro", { fg = colors.magenta })
hi("PreCondit", { fg = colors.magenta })
hi("Type", { fg = colors.green })
hi("StorageClass",{ fg = colors.green })
hi("Structure", { fg = colors.green })
hi("Typedef", { fg = colors.green })
hi("Special", { fg = colors.cyan })
hi("SpecialChar", { fg = colors.yellow })
hi("Tag", { fg = colors.blue })
hi("Delimiter", { fg = colors.fg })
hi("SpecialComment",{ fg = colors.comment, italic = true })
hi("Debug", { fg = colors.red })
hi("Underlined", { fg = colors.blue, underline = true })
hi("Bold", { bold = true })
hi("Italic", { italic = true })
hi("Error", { fg = colors.red, bold = true })
hi("Todo", { fg = colors.magenta, bold = true })
hi("WarningMsg", { fg = colors.yellow })
hi("ErrorMsg", { fg = colors.red, bold = true })
-- Diagnostics (LSP)
hi("DiagnosticError", { fg = colors.red })
hi("DiagnosticWarn", { fg = colors.yellow })
hi("DiagnosticInfo", { fg = colors.blue })
hi("DiagnosticHint", { fg = colors.cyan })
hi("DiagnosticUnderlineError", { undercurl = true, sp = colors.red })
hi("DiagnosticUnderlineWarn", { undercurl = true, sp = colors.yellow })
hi("DiagnosticUnderlineInfo", { undercurl = true, sp = colors.blue })
hi("DiagnosticUnderlineHint", { undercurl = true, sp = colors.cyan })
-- LSP Semantic Tokens
hi("@lsp.type.class", { fg = colors.yellow })
hi("@lsp.type.function", { fg = colors.blue })
hi("@lsp.type.variable", { fg = colors.fg })
hi("@lsp.type.parameter", { fg = colors.cyan })
hi("@lsp.type.property", { fg = colors.green })
hi("@lsp.type.enum", { fg = colors.magenta })
-- Treesitter
hi("@comment", { fg = colors.comment, italic = true })
hi("@function", { fg = colors.green })
hi("@keyword", { fg = colors.red, italic = true })
hi("@string", { fg = colors.green })
hi("@variable", { fg = colors.fg })
hi("@type", { fg = colors.yellow })
hi("@property", { fg = colors.green })
hi("@number", { fg = colors.magenta })
-- Telescope
hi("TelescopeBorder", { fg = colors.comment })
hi("TelescopePromptTitle",{ fg = colors.yellow, bold = true })
hi("TelescopeSelection", { bg = colors.cursorline })
hi("TelescopeMatching", { fg = colors.blue })
-- DAP (Debug)
hi("DebugBreakpoint", { fg = colors.red })
hi("DebugBreakpointLine", { bg = colors.cursorline })
hi("DebugPC", { bg = colors.highlight })
hi("DebugCurrentLine", { underline = true, sp = colors.yellow })
-- Pmenu (Completion)
hi("Pmenu", { fg = colors.fg, bg = colors.cursorline })
hi("PmenuSel", { fg = colors.bg, bg = colors.highlight })
hi("PmenuThumb", { bg = colors.highlight })
-- Notify / Noice / Snacks
hi("NotifyINFOBorder", { fg = colors.blue })
hi("NotifyWARNBorder", { fg = colors.yellow })
hi("NotifyERRORBorder", { fg = colors.red })
hi("NotifyDEBUGBorder", { fg = colors.cyan })
hi("NotifyTRACEBorder", { fg = colors.magenta })
hi("NoicePopup", { bg = colors.cursorline })
hi("NoicePopupmenu", { bg = colors.cursorline, fg = colors.fg })
-- Git Diff
hi("DiffAdd", { fg = colors.green })
hi("DiffChange", { fg = colors.blue })
hi("DiffDelete", { fg = colors.red })
-- Terminal Colors
vim.g.terminal_color_0 = colors.bg
vim.g.terminal_color_1 = colors.red
vim.g.terminal_color_2 = colors.green
vim.g.terminal_color_3 = colors.yellow
vim.g.terminal_color_4 = colors.blue
vim.g.terminal_color_5 = colors.magenta
vim.g.terminal_color_6 = colors.cyan
vim.g.terminal_color_7 = colors.fg
vim.g.terminal_color_8 = colors.comment
vim.g.terminal_color_9 = colors.red
vim.g.terminal_color_10 = colors.green
vim.g.terminal_color_11 = colors.yellow
vim.g.terminal_color_12 = colors.blue
vim.g.terminal_color_13 = colors.magenta
vim.g.terminal_color_14 = colors.cyan
vim.g.terminal_color_15 = colors.fg
-- Apply Snacks highlights unconditionally
hi("SnacksNormal", { fg = colors.fg, bg = colors.bg })
hi("SnacksNormalNC", { fg = colors.comment, bg = colors.bg })
hi("SnacksWinBar", { fg = colors.magenta, bg = colors.bg, bold = true })
hi("SnacksWinBarNC", { fg = colors.comment, bg = colors.bg })
hi("SnacksCursorLine", { bg = colors.highlight })
hi("SnacksCursor", { bg = colors.highlight })
hi("SnacksPickerFile", { fg = colors.green, bold = true })
hi("SnacksPickerDir", { fg = colors.comment })
hi("SnacksPickerPathHidden", { fg = colors.comment, italic = true })
hi("SnacksPickerPathIgnored",{ fg = colors.comment, italic = true })
hi("SnacksPickerPrefix", { fg = colors.yellow })
hi("SnacksPickerNormal", { fg = colors.fg, bg = colors.yellow }) -- Normal picker line
hi("SnacksPickerSelected", { fg = colors.bg, bg = colors.highlight }) -- Selected item (invert fg/bg)
hi("SnacksPickerCursor", { fg = colors.yellow, bg = colors.cursorline })
hi("NormalFloat", { fg = colors.fg, bg = colors.bg })

View File

@ -14,12 +14,16 @@ if not vim.loop.fs_stat(lazypath) then
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup("plugins")
-- SET NEOVIM THEME --
vim.o.termguicolors = true
-- vim.cmd "let g:everforest_background = 'hard'"
vim.cmd.colorscheme('kanagawa')
vim.cmd.colorscheme('sistine')
vim.o.background = "dark"
-- Load Plugins
require("lazy").setup("plugins")
vim.keymap.set("n", "<leader>ct", "<cmd>Telescope colorscheme<CR>")
-- LSP --