2026-02-12 18:53:24 +00:00
|
|
|
vim.g.mapleader = " "
|
|
|
|
|
|
|
|
|
|
vim.opt.termguicolors = true -- use terminal colors
|
|
|
|
|
vim.opt.relativenumber = true
|
|
|
|
|
vim.opt.wrap = false
|
|
|
|
|
vim.opt.colorcolumn = "80"
|
|
|
|
|
|
|
|
|
|
require("plugins")
|
|
|
|
|
require("lsp")
|
|
|
|
|
|
|
|
|
|
local uv = vim.loop
|
|
|
|
|
local colorscheme_filepath = "/home/aurora/.cache/nvim/neovim-colors"
|
|
|
|
|
local colors = {}
|
|
|
|
|
|
|
|
|
|
-- function to load colors
|
|
|
|
|
local function load_colors()
|
2026-02-21 19:05:00 +00:00
|
|
|
local new_colors = {}
|
|
|
|
|
for line in io.lines(colorscheme_filepath) do
|
|
|
|
|
table.insert(new_colors, line)
|
|
|
|
|
end
|
2026-02-12 18:53:24 +00:00
|
|
|
|
2026-02-21 19:05:00 +00:00
|
|
|
-- ensure the table has enough entries to avoid indexing issues
|
|
|
|
|
if #new_colors >= 18 then
|
|
|
|
|
colors = new_colors
|
|
|
|
|
require("base16-colorscheme").setup({
|
|
|
|
|
base00 = colors[17],
|
|
|
|
|
base01 = colors[1],
|
|
|
|
|
base02 = colors[3],
|
|
|
|
|
base03 = colors[3],
|
|
|
|
|
base04 = colors[5],
|
|
|
|
|
base05 = colors[8],
|
|
|
|
|
base06 = colors[5],
|
|
|
|
|
base07 = colors[8],
|
|
|
|
|
base08 = colors[18],
|
|
|
|
|
base09 = colors[4],
|
|
|
|
|
base0A = colors[11],
|
|
|
|
|
base0B = colors[5],
|
|
|
|
|
base0C = colors[6],
|
|
|
|
|
base0D = colors[7],
|
|
|
|
|
base0E = colors[6],
|
|
|
|
|
base0F = colors[16],
|
|
|
|
|
})
|
2026-02-12 18:53:24 +00:00
|
|
|
|
2026-02-21 19:05:00 +00:00
|
|
|
-- set colors for blink.cmp's completion menu
|
|
|
|
|
vim.api.nvim_set_hl(0, "BlinkCmpMenu", { bg = colors[17] })
|
|
|
|
|
vim.api.nvim_set_hl(0, "BlinkCmpMenuBorder", { bg = colors[17], fg = colors[13] })
|
|
|
|
|
vim.api.nvim_set_hl(0, "BlinkCmpMenuSelection", { bg = colors[15], fg = colors[17] })
|
|
|
|
|
vim.api.nvim_set_hl(0, "BlinkCmpScrollBarThumb", { bg = colors[18] })
|
|
|
|
|
vim.api.nvim_set_hl(0, "BlinkCmpKind", { bg = colors[17], fg = colors[14] })
|
|
|
|
|
vim.api.nvim_set_hl(0, "BlinkCmpLabel", { bg = colors[17], fg = colors[18] })
|
|
|
|
|
vim.api.nvim_set_hl(0, "BlinkCmpLabelMatch", { bg = colors[17], fg = colors[18] })
|
|
|
|
|
vim.api.nvim_set_hl(0, "BlinkCmpLabelDetail", { bg = colors[17], fg = colors[18] })
|
|
|
|
|
vim.api.nvim_set_hl(0, "BlinkCmpLabelDescription", { bg = colors[17], fg = colors[18] })
|
|
|
|
|
else
|
|
|
|
|
print("Error: Not enough colors in file")
|
|
|
|
|
end
|
2026-02-12 18:53:24 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- initial load
|
|
|
|
|
load_colors()
|
|
|
|
|
|
|
|
|
|
-- vim.defer_fn(load_colors, 1)
|
|
|
|
|
|
|
|
|
|
-- set up a file watcher
|
|
|
|
|
local function watch_colorscheme()
|
2026-02-21 19:05:00 +00:00
|
|
|
local handle
|
|
|
|
|
handle = uv.new_fs_event()
|
|
|
|
|
if handle then
|
|
|
|
|
uv.fs_event_start(handle, colorscheme_filepath, {}, function(err, _, _)
|
|
|
|
|
if err then
|
|
|
|
|
print("Error watching colorscheme file:", err)
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
-- debounce by adding a slight delay before reloading
|
|
|
|
|
vim.defer_fn(load_colors, 100)
|
|
|
|
|
end)
|
|
|
|
|
end
|
2026-02-12 18:53:24 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
watch_colorscheme()
|