diff --git a/candy/colors/generated.lua b/candy/colors/generated.lua new file mode 100644 --- /dev/null +++ b/candy/colors/generated.lua @@ -0,0 +1,33 @@ +local config_path = (vim.env.XDG_CONFIG_HOME == nil and vim.env.XDG_CONFIG_HOME or vim.env.HOME .. "/.config") + .. "/base16-theme.json" +local file = io.open(config_path, "r") + +if not file then + vim.warn.error("no base16-theme.json file!") + return +end + +local content = file:read("*a") +file:close() + +local tbl = vim.json.decode(content) + +tbl.author = nil +tbl.scheme = nil +tbl.slug = nil + +local palette = vim.tbl_map(function(value) + if vim.startswith(value, "#") then + return value + end + + return "#" .. value +end, tbl) + +require("mini.base16").setup({ + palette = palette, + use_cterm = true, + plugins = { + default = true, + }, +}) diff --git a/candy/lua/marshmallow/defaults.lua b/candy/lua/marshmallow/defaults.lua --- a/candy/lua/marshmallow/defaults.lua +++ b/candy/lua/marshmallow/defaults.lua @@ -6,7 +6,7 @@ -- Colourscheme -- vim.g.everforest_enable_italic = true vim.g.everforest_background = "hard" -vim.cmd.colorscheme("everforest") +vim.cmd.colorscheme("generated") -- Terminal -- vim.opt.termguicolors = true diff --git a/candy/lua/marshmallow/statusline.lua b/candy/lua/marshmallow/statusline.lua --- a/candy/lua/marshmallow/statusline.lua +++ b/candy/lua/marshmallow/statusline.lua @@ -1,68 +1,5 @@ local M = {} -local function set_highlights_lackluster(recording) - local lackluster = require("lackluster") - - local bg = lackluster.color_special.statusline - local fg = recording and lackluster.color.red or lackluster.color.gray7 - - -- xxx guifg=#aaaaaa guibg=#242424 - vim.api.nvim_set_hl(0, "StatusLine", { fg = fg, bg = bg }) - - vim.api.nvim_set_hl(0, "Ruler", { - fg = lackluster.color.gray7, - bg = bg, - }) - - vim.api.nvim_set_hl(0, "StatusLsp", { - fg = lackluster.color.green, - bg = bg, - }) - - vim.api.nvim_set_hl(0, "StatusFt", { - fg = lackluster.color.orange, - bg = bg, - }) - - vim.api.nvim_set_hl(0, "StatusHead", { - fg = lackluster.color.yellow, - bg = bg, - }) -end - -local function set_highlights_everforest(recording) - local config = vim.fn["everforest#get_configuration"]() - local palette = vim.fn["everforest#get_palette"](config.background, config.colors_override) - local set_hl = vim.fn["everforest#highlight"] - - local bg = palette.bg1 - local fg = recording and palette.red or palette.fg - - set_hl("StatusLine", fg, bg) - set_hl("Ruler", palette.statusline3, bg) - set_hl("StatusLsp", palette.statusline3, bg) - set_hl("StatusFt", palette.statusline2, bg) - set_hl("StatusHead", palette.statusline1, bg) -end - -local augroup = vim.api.nvim_create_augroup("StatusLine", { clear = true }) - -vim.api.nvim_create_autocmd({ "ColorScheme", "RecordingLeave" }, { - pattern = "*", - group = augroup, - callback = function() - set_highlights_everforest(false) - end, -}) - -vim.api.nvim_create_autocmd({ "RecordingEnter" }, { - pattern = "*", - group = augroup, - callback = function() - set_highlights_everforest(true) - end, -}) - local function finish() local bufnr = vim.api.nvim_get_current_buf() local clients = vim.lsp.get_clients({ bufnr = bufnr }) @@ -93,7 +30,5 @@ function M.statusline() return first() .. "%=" .. center() .. finish() end - -set_highlights_everforest(false) return M