diff --git a/colors/neobones.lua b/colors/neobones.lua index 61707f1..41fc4cc 100644 --- a/colors/neobones.lua +++ b/colors/neobones.lua @@ -3,7 +3,5 @@ vim.g.colors_name = "neobones" package.loaded["neobones"] = nil require "lush"(require "neobones") -local util = require "zenbones.util" -local base_name = util.bg_to_base_name() -local p = require("neobones.palette")[base_name] +local p = require("neobones.palette")[vim.opt.background:get()] require("zenbones.term").apply_colors(p) diff --git a/colors/rosebones.lua b/colors/rosebones.lua index da665ed..ad4da5c 100644 --- a/colors/rosebones.lua +++ b/colors/rosebones.lua @@ -6,7 +6,5 @@ package.loaded["rosebones"] = nil -- include our theme file and pass it to lush to apply require "lush"(require "rosebones") -local util = require "zenbones.util" -local base_name = util.bg_to_base_name() -local p = require("rosebones.palette")[base_name] +local p = require("rosebones.palette")[vim.opt.background:get()] require("zenbones.term").apply_colors(p) diff --git a/doc/zenbones.md b/doc/zenbones.md index 11d6c32..282209c 100644 --- a/doc/zenbones.md +++ b/doc/zenbones.md @@ -139,13 +139,12 @@ local lush = require "lush" local hsluv = lush.hsluv -- Human-friendly hsl local util = require "zenbones.util" --- Let's base bg=dark, bg=light on zenflesh, zenbones specs respectively -local base_name = util.bg_to_base_name() +local bg = vim.opt.background:get() -- Define a palette. Use `palette_extend` to fill unspecified colors -- Based on https://github.com/gruvbox-community/gruvbox#palette local palette -if base_name == "zenbones" then +if bg == "light" then palette = util.palette_extend({ bg = hsluv "#fbf1c7", fg = hsluv "#3c3836", @@ -170,8 +169,8 @@ else end -- Generate the lush specs using the generator util -local generator = require(base_name .. ".specs") -local base_specs = generator.generate(palette, generator.get_global_config(base_name)) +local generator = require "zenbones.specs" +local base_specs = generator.generate(palette, bg, generator.get_global_config("gruvbones", bg)) -- Optionally extend specs using Lush local specs = lush.extends({ base_specs }).with(function() diff --git a/lua/neobones/init.lua b/lua/neobones/init.lua index 456e61f..905ca10 100644 --- a/lua/neobones/init.lua +++ b/lua/neobones/init.lua @@ -2,12 +2,13 @@ local lush = require "lush" local util = require "zenbones.util" local hsluv = lush.hsluv -local base_name = util.bg_to_base_name() -local p = require("neobones.palette")[base_name] -local generator = require "zenbones.specs" -local specs = generator.generate(p, base_name, generator.get_global_config(base_name, "neobones")) +local bg = vim.opt.background:get() +local p = require("neobones.palette")[bg] -if base_name == "zenbones" then +local generator = require "zenbones.specs" +local specs = generator.generate(p, bg, generator.get_global_config("neobones", bg)) + +if bg == "light" then return lush.extends({ specs }).with(function() return { helpHyperTextJump { fg = hsluv "#195174" }, -- --link-color diff --git a/lua/neobones/palette.lua b/lua/neobones/palette.lua index c5d516c..4810c71 100644 --- a/lua/neobones/palette.lua +++ b/lua/neobones/palette.lua @@ -4,17 +4,17 @@ local hsluv = lush.hsluv local M = {} -M.zenbones = util.palette_extend({ +M.light = util.palette_extend({ -- bg = hsluv "#d3e4db" -- --accent-bg-color bg = hsluv "#e7eee8", -- --bg-color fg = hsluv "#202e18", -- --accent-color -}, "zenbones") -M.zenbones.leaf = M.zenbones.leaf.sa(24).li(8) -- need to make green more prominent +}, "light") +M.light.leaf = M.light.leaf.sa(24).li(8) -- need to make green more prominent -M.zenflesh = util.palette_extend({ +M.dark = util.palette_extend { bg = hsluv "#0f191f", -- --bg-color fg = hsluv "#c7d6d0", -- --fg-color leaf = hsluv "#8fff6d", -- --accent-color -}, "zenflesh") +} return M diff --git a/lua/rosebones/init.lua b/lua/rosebones/init.lua index 8ac1e03..7b0cac5 100644 --- a/lua/rosebones/init.lua +++ b/lua/rosebones/init.lua @@ -1,11 +1,9 @@ local lush = require "lush" -local util = require "zenbones.util" - -local base_name = util.bg_to_base_name() -local p = require("rosebones.palette")[base_name] +local bg = vim.opt.background:get() +local p = require("rosebones.palette")[bg] local generator = require "zenbones.specs" -local specs = generator.generate(p, base_name, generator.get_global_config(base_name, "rosebones")) +local specs = generator.generate(p, bg, generator.get_global_config("rosebones", bg)) -- extend specs using Lush return lush.extends({ specs }).with(function() diff --git a/lua/rosebones/palette.lua b/lua/rosebones/palette.lua index b0c9c6e..3156e12 100644 --- a/lua/rosebones/palette.lua +++ b/lua/rosebones/palette.lua @@ -4,7 +4,7 @@ local hsluv = lush.hsluv local M = {} -M.zenbones = util.palette_extend({ +M.light = util.palette_extend({ bg = hsluv(57.9, 49.8, 96.5), -- base fg = hsluv(14.5, 32, 36), -- rose, base: 14.5, 51.1, 63.3 rose = hsluv(355.6, 38.5, 51.9), -- love @@ -14,9 +14,9 @@ M.zenbones = util.palette_extend({ blossom = hsluv(283.8, 30.2, 54.8), -- iris sky = hsluv(208.6, 65.3, 57.7), -- foam text = hsluv(270.1, 22.9, 36.8), -- text, base: 270.1, 22.9, 36.8 -}, "zenbones") +}, "light") -M.zenflesh = util.palette_extend({ +M.dark = util.palette_extend { bg = hsluv(271.2, 20.2, 8.5), -- base bg_warm = hsluv(268.9, 24.5, 13.9), -- base moon fg = hsluv(14.8, 21, 82), -- rose, base: 2, 55, 83 @@ -27,6 +27,6 @@ M.zenflesh = util.palette_extend({ blossom = hsluv(283.1, 67.3, 73), -- iris sky = hsluv(206.7, 42.9, 80), -- foam text = hsluv(269.4, 56, 89.2), -- text, base: 269.4, 63.6, 89.2 -}, "zenflesh") +} return M diff --git a/lua/zenbones/build.lua b/lua/zenbones/build.lua index 05f3f4a..2ab9410 100644 --- a/lua/zenbones/build.lua +++ b/lua/zenbones/build.lua @@ -77,12 +77,12 @@ function M.run() -- neobones light package.loaded["neobones"] = nil vim.opt.background = "light" - build("neobones_light", require "neobones", require("neobones.palette").zenbones, { exclude = { "vim" } }) + build("neobones_light", require "neobones", require("neobones.palette").light, { exclude = { "vim" } }) -- neobones dark package.loaded["neobones"] = nil vim.opt.background = "dark" - build("neobones_dark", require "neobones", require("neobones.palette").zenflesh, { exclude = { "vim" } }) + build("neobones_dark", require "neobones", require("neobones.palette").dark, { exclude = { "vim" } }) end return M diff --git a/lua/zenbones/init.lua b/lua/zenbones/init.lua index 80fc7e0..26ed751 100644 --- a/lua/zenbones/init.lua +++ b/lua/zenbones/init.lua @@ -1,4 +1,4 @@ local generator = require "zenbones.specs" local p = require "zenbones.palette" -return generator.generate(p, "zenbones", generator.get_global_config "zenbones") +return generator.generate(p, "light", generator.get_global_config "zenbones") diff --git a/lua/zenbones/palette.lua b/lua/zenbones/palette.lua index 3432917..bc69c42 100644 --- a/lua/zenbones/palette.lua +++ b/lua/zenbones/palette.lua @@ -1,3 +1,3 @@ local util = require "zenbones.util" -return util.palette_extend({}, "zenbones") +return util.palette_extend({}, "light") diff --git a/lua/zenbones/specs/zenflesh.lua b/lua/zenbones/specs/dark.lua similarity index 100% rename from lua/zenbones/specs/zenflesh.lua rename to lua/zenbones/specs/dark.lua diff --git a/lua/zenbones/specs/init.lua b/lua/zenbones/specs/init.lua index 1b7c184..3562ebb 100644 --- a/lua/zenbones/specs/init.lua +++ b/lua/zenbones/specs/init.lua @@ -1,34 +1,26 @@ local M = {} -function M.get_global_config(base_name, prefix) - prefix = type(prefix) == "string" and prefix or base_name - if base_name == "zenbones" then +function M.get_global_config(prefix, base_bg) + if base_bg == "light" then return { lightness = vim.g[prefix .. "_lightness"], comment_gui = vim.g[prefix .. "_italic_comments"] ~= false and "italic" or "NONE", dim_noncurrent_window = vim.g[prefix .. "_dim_noncurrent_window"], solid_vert_split = vim.g[prefix .. "_solid_vert_split"], } - elseif base_name == "zenflesh" then + else return { darkness = vim.g[prefix .. "_darkness"], comment_gui = vim.g[prefix .. "_italic_comments"] ~= false and "italic" or "NONE", lighten_noncurrent_window = vim.g[prefix .. "_lighten_noncurrent_window"], solid_vert_split = vim.g[prefix .. "_solid_vert_split"], } - else - error "Unknown base_name" end end -function M.generate(p, base_name, opt) - if base_name == "zenbones" then - return require "zenbones.specs.zenbones"(p, opt) - elseif base_name == "zenflesh" then - return require "zenbones.specs.zenflesh"(p, opt) - else - error "Unknown base_name" - end +function M.generate(p, base_bg, opt) + base_bg = base_bg ~= nil and base_bg or "dark" + return require("zenbones.specs." .. base_bg)(p, opt) end return M diff --git a/lua/zenbones/specs/zenbones.lua b/lua/zenbones/specs/light.lua similarity index 100% rename from lua/zenbones/specs/zenbones.lua rename to lua/zenbones/specs/light.lua diff --git a/lua/zenbones/util.lua b/lua/zenbones/util.lua index 9b9fcca..bf860dd 100644 --- a/lua/zenbones/util.lua +++ b/lua/zenbones/util.lua @@ -7,14 +7,10 @@ function M.interp(s, tab) end)) end -function M.bg_to_base_name() - return vim.opt.background:get() == "light" and "zenbones" or "zenflesh" -end - -function M.palette_extend(p, base_name) +function M.palette_extend(p, base_bg) local lush = require "lush" local hsluv = lush.hsluv - if base_name == "zenbones" then + if base_bg == "light" then p = vim.tbl_extend("keep", p, { bg = hsluv(39, 12, 94), -- sand fg = hsluv(230, 30, 22), -- stone @@ -37,7 +33,7 @@ function M.palette_extend(p, base_name) sky1 = p.sky.sa(20).da(16), fg1 = p.fg.li(22), }) - elseif base_name == "zenflesh" then + else -- default p = vim.tbl_extend("keep", p, { bg = hsluv(39, 9, 9), -- sand @@ -62,8 +58,6 @@ function M.palette_extend(p, base_name) sky1 = p.sky.sa(20).li(16), fg1 = p.fg.da(22), }) - else - error "Unknown base_name" end end diff --git a/lua/zenflesh/init.lua b/lua/zenflesh/init.lua index a8d700d..f31a5c0 100644 --- a/lua/zenflesh/init.lua +++ b/lua/zenflesh/init.lua @@ -1,4 +1,4 @@ local generator = require "zenbones.specs" local p = require "zenflesh.palette" -return generator.generate(p, "zenflesh", generator.get_global_config "zenflesh") +return generator.generate(p, "dark", generator.get_global_config "zenflesh") diff --git a/lua/zenflesh/palette.lua b/lua/zenflesh/palette.lua index 255119a..06341dc 100644 --- a/lua/zenflesh/palette.lua +++ b/lua/zenflesh/palette.lua @@ -1,3 +1,3 @@ local util = require "zenbones.util" -return util.palette_extend({}, "zenflesh") +return util.palette_extend {}