30 lines · 1.0 KB · Lua
RawDownload
-- theme choice is saved in a file for persistence on restart-- could use a plugin instead, but hey, this is more fun-- lualine theme gets stored separately due to possible naming differences local theme_file = vim.fn.stdpath("config") .. "/lua/config/saved_theme" _G.load_theme = function()    local file = io.open(theme_file, "r")	if file then		vim.cmd("colorscheme " .. file:read("*l"))		require("lualine").setup({ options = { theme = file:read("*l") } })	file:close() endend local themes = { --add more themes here, if installed	{ "catppuccin", "catppuccin" },	{ "gruvbox", "gruvbox" },	{ "pywal16", "pywal16-nvim" },} local current_theme_index = 1 _G.switch_theme = function()	current_theme_index = current_theme_index % #themes + 1	local colorscheme, lualine = unpack(themes[current_theme_index])	vim.cmd("colorscheme " .. colorscheme)	require("lualine").setup({ options = { theme = lualine } })	local file = io.open(theme_file, "w")	if file then file:write(colorscheme .. "\n" .. lualine) file:close() endend