nvim/lua/plugins/colorscheme.lua

78 lines
No EOL
2 KiB
Lua

return {
{
"ellisonleao/gruvbox.nvim",
name = "gruvbox",
priority = 1000,
lazy = false,
config = function()
require("gruvbox").setup({
contrast = "hard", -- can be "hard", "soft" or empty string
transparent_mode = false,
})
end,
},
{
"datsfilipe/vesper.nvim",
name = "vesper",
priority = 1000,
lazy = false,
},
{
'maxmx03/solarized.nvim',
lazy = false,
priority = 1000,
---@type solarized.config
opts = {},
},
{
"folke/tokyonight.nvim",
name = "tokyonight",
priority = 1000,
lazy = false,
config = function()
-- Auto-detect light/dark mode
local function set_theme()
-- Check if running in VSCode
if vim.env.VSCODE or vim.env.TERM_PROGRAM == "vscode" then
vim.o.termguicolors = true
vim.o.background = "light"
require('solarized').setup({})
vim.cmd.colorscheme("solarized")
return
end
-- Check COLORFGBG for other terminals
if os.getenv("COLORFGBG") then
local colors = vim.split(os.getenv("COLORFGBG"), ";")
if colors[2] and tonumber(colors[2]) > 7 then
vim.o.termguicolors = true
vim.o.background = "light"
require('solarized').setup({})
vim.cmd.colorscheme("solarized")
return
end
end
-- Default to dark with Gruvbox
vim.o.background = "dark"
vim.cmd.colorscheme("gruvbox")
end
-- Set theme on startup
set_theme()
-- Add command to manually toggle
vim.api.nvim_create_user_command("ToggleTheme", function()
if vim.g.colors_name == "gruvbox" then
vim.o.termguicolors = true
vim.o.background = "light"
require('solarized').setup({})
vim.cmd.colorscheme("solarized")
else
vim.o.background = "dark"
vim.cmd.colorscheme("gruvbox")
end
end, {})
end,
},
}