42 lines
1.2 KiB
Lua
42 lines
1.2 KiB
Lua
local colors_name = "jpbones"
|
|
vim.g.colors_name = colors_name -- Required when defining a colorscheme
|
|
|
|
local lush = require "lush"
|
|
local hsluv = lush.hsluv -- Human-friendly hsl
|
|
local util = require "zenbones.util"
|
|
|
|
local bg = vim.o.background
|
|
|
|
-- Define a palette. Use `palette_extend` to fill unspecified colors
|
|
-- Based on https://github.com/gruvbox-community/gruvbox#palette
|
|
local palette
|
|
palette = util.palette_extend({
|
|
bg = hsluv "#000000",
|
|
fg = hsluv "#ebdbb2",
|
|
rose = hsluv "#e3716e",
|
|
leaf = hsluv "#8bae68",
|
|
wood = hsluv "#f0e4cf",
|
|
water = hsluv "#83a598",
|
|
blossom = hsluv "#b279a7",
|
|
sky = hsluv "#819b69",
|
|
}, bg)
|
|
|
|
-- Generate the lush specs using the generator util
|
|
local generator = require "zenbones.specs"
|
|
local base_specs = generator.generate(palette, bg, generator.get_global_config(colors_name, bg))
|
|
|
|
-- Optionally extend specs using Lush
|
|
local specs = lush.extends({ base_specs }).with(function()
|
|
return {
|
|
Statement { base_specs.Statement, fg = palette.rose },
|
|
Special { fg = palette.water },
|
|
Type { fg = palette.sky, gui = "italic" },
|
|
}
|
|
end)
|
|
|
|
-- Pass the specs to lush to apply
|
|
lush(specs)
|
|
|
|
-- Optionally set term colors
|
|
require("zenbones.term").apply_colors(palette)
|