162 lines
3.8 KiB
Lua
162 lines
3.8 KiB
Lua
--- This module will load a random colorscheme on nvim startup process.
|
|
local utils = require("utils")
|
|
|
|
local M = {}
|
|
|
|
local use_theme = function(name)
|
|
local ok, err = pcall(vim.cmd.colorscheme, name)
|
|
|
|
if not ok then
|
|
vim.notify(
|
|
string.format("Failed to load colorscheme %s, err: %s", name, err),
|
|
vim.log.levels.WARN
|
|
)
|
|
|
|
vim.cmd.colorscheme("default")
|
|
end
|
|
end
|
|
|
|
-- Colorscheme to its directory name mapping, because colorscheme repo name is not necessarily
|
|
-- the same as the colorscheme name itself.
|
|
M.colorscheme_conf = {
|
|
onedark = function()
|
|
-- Lua
|
|
require("onedark").setup {
|
|
style = "darker",
|
|
}
|
|
require("onedark").load()
|
|
end,
|
|
edge = function()
|
|
vim.g.edge_style = "default"
|
|
vim.g.edge_enable_italic = 1
|
|
vim.g.edge_better_performance = 1
|
|
|
|
use_theme("edge")
|
|
end,
|
|
sonokai = function()
|
|
vim.g.sonokai_enable_italic = 1
|
|
vim.g.sonokai_better_performance = 1
|
|
|
|
use_theme("sonokai")
|
|
end,
|
|
gruvbox_material = function()
|
|
-- foreground option can be material, mix, or original
|
|
vim.g.gruvbox_material_foreground = "original"
|
|
--background option can be hard, medium, soft
|
|
vim.g.gruvbox_material_background = "hard"
|
|
vim.g.gruvbox_material_enable_italic = 1
|
|
vim.g.gruvbox_material_better_performance = 1
|
|
|
|
use_theme("gruvbox-material")
|
|
end,
|
|
everforest = function()
|
|
vim.g.everforest_background = "hard"
|
|
vim.g.everforest_enable_italic = 1
|
|
vim.g.everforest_better_performance = 1
|
|
|
|
use_theme("everforest")
|
|
end,
|
|
nightfox = function()
|
|
use_theme("carbonfox")
|
|
end,
|
|
onedarkpro = function()
|
|
-- set colorscheme after options
|
|
-- onedark_vivid does not enough contrast
|
|
use_theme("onedark_dark")
|
|
end,
|
|
material = function()
|
|
vim.g.material_style = "darker"
|
|
use_theme("material")
|
|
end,
|
|
arctic = function()
|
|
use_theme("arctic")
|
|
end,
|
|
kanagawa = function()
|
|
use_theme("kanagawa-dragon")
|
|
end,
|
|
modus = function()
|
|
use_theme("modus")
|
|
end,
|
|
jellybeans = function()
|
|
use_theme("jellybeans")
|
|
end,
|
|
github = function()
|
|
use_theme("github_dark_default")
|
|
end,
|
|
ashen = function()
|
|
use_theme("ashen")
|
|
end,
|
|
melange = function()
|
|
use_theme("melange")
|
|
end,
|
|
makurai = function()
|
|
use_theme("makurai_dark")
|
|
end,
|
|
vague = function()
|
|
use_theme("vague")
|
|
end,
|
|
kanso = function()
|
|
use_theme("kanso")
|
|
end,
|
|
citruszest = function()
|
|
use_theme("citruszest")
|
|
end,
|
|
oxocarbon = function()
|
|
use_theme("oxocarbon")
|
|
end,
|
|
ember = function()
|
|
use_theme("ember")
|
|
end,
|
|
lake_dweller = function()
|
|
require("lake-dweller").setup {
|
|
-- "lake-dweller", "pond-dweller", or "ocean-dweller"
|
|
variant = "lake-dweller",
|
|
}
|
|
use_theme("lake-dweller")
|
|
end,
|
|
alabaster = function()
|
|
use_theme("alabaster")
|
|
end,
|
|
thorn = function()
|
|
use_theme("thorn")
|
|
end,
|
|
}
|
|
|
|
--- Fixe the colorscheme
|
|
vim.opt.termguicolors = true
|
|
|
|
vim.api.nvim_create_autocmd("VimEnter", {
|
|
callback = function()
|
|
vim.g.everforest_background = "medium"
|
|
vim.o.background = "light"
|
|
vim.g.everforest_light_background = true
|
|
vim.g.everforest_enable_italic = 1
|
|
vim.cmd("colorscheme everforest")
|
|
end,
|
|
})
|
|
|
|
-- enable the experiment UI
|
|
require("vim._core.ui2").enable {
|
|
enable = true,
|
|
msg = { -- Options related to the message module.
|
|
targets = {
|
|
[""] = "cmd",
|
|
empty = "msg",
|
|
},
|
|
cmd = { -- Options related to messages in the cmdline window.
|
|
height = 0.2, -- Maximum height while expanded for messages beyond 'cmdheight'.
|
|
},
|
|
dialog = { -- Options related to dialog window.
|
|
height = 0.2, -- Maximum height.
|
|
},
|
|
msg = { -- Options related to msg window.
|
|
height = 0.2, -- Maximum height.
|
|
timeout = 1000, -- Time a message is visible in the message window.
|
|
},
|
|
pager = { -- Options related to message window.
|
|
height = 0.3, -- Maximum height.
|
|
},
|
|
},
|
|
}
|
|
|
|
return M
|