Skip to content

Commit

Permalink
feat(config): add lightness option for transparent bg
Browse files Browse the repository at this point in the history
  • Loading branch information
ramojus committed Nov 2, 2024
1 parent 3fe886b commit 6aabd59
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 10 deletions.
3 changes: 3 additions & 0 deletions lua/mellifluous/colors/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ function M.get_colors()

colors = apply_color_overrides(colors)
ensure_correct_color_types(colors)
if config.transparent_background and config.transparent_background.lightness and type(config.transparent_background.lightness) == "function" then
colors.bg = colors.bg:with_lightness(config.transparent_background.lightness(colors.bg))
end

colors = require("mellifluous.colors.shades").extend_with_shades(colors)

Expand Down
21 changes: 11 additions & 10 deletions lua/mellifluous/colors/shades.lua
Original file line number Diff line number Diff line change
Expand Up @@ -14,30 +14,31 @@ function M.extend_with_shades(colors)

local shades = {}
local fg = colors.shades_fg or colors.fg
local bg = colors.bg

if config.is_bg_dark then
shades = {
fg2 = fg:darkened(16),
fg3 = fg:darkened(32),
fg4 = fg:darkened(48),
fg5 = fg:darkened(54),
dark_bg = colors.bg:darkened(2.5),
bg2 = colors.bg:lightened(4),
bg3 = colors.bg:lightened(6),
bg4 = colors.bg:lightened(8),
bg5 = colors.bg:lightened(10),
dark_bg = bg:darkened(2.5),
bg2 = bg:lightened(4),
bg3 = bg:lightened(6),
bg4 = bg:lightened(8),
bg5 = bg:lightened(10),
}
else
shades = {
fg2 = fg:lightened(16),
fg3 = fg:lightened(32),
fg4 = fg:lightened(48),
fg5 = fg:lightened(54),
dark_bg2 = colors.bg:darkened(8),
dark_bg = colors.bg:darkened(2.5),
bg2 = colors.bg:lightened(4),
bg3 = colors.bg:lightened(6),
bg4 = colors.bg:lightened(8),
dark_bg2 = bg:darkened(8),
dark_bg = bg:darkened(2.5),
bg2 = bg:lightened(4),
bg3 = bg:lightened(6),
bg4 = bg:lightened(8),
}
end

Expand Down
19 changes: 19 additions & 0 deletions lua/mellifluous/config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,25 @@ local function get_default_config()
},
transparent_background = {
enabled = false,
lightness = function(bg) -- used for bg shades
-- This method tries to keep brighter colorsets bright and
-- dimmer colorsets dim and still lighten the shades up so that
-- the colorsets have more chance to look good with transparent
-- background on brighter wallpapers.
local old_lightness = bg:get_hsl().l
local threshold = 20
local baseline = 10
if old_lightness < threshold then
-- We will assume that the dimmest of transparent
-- background over users wallpaper is at least of baseline
-- lightness. Presuming old range is [0, threshold], let's
-- position the lightness relatively in a new range of
-- [baseline, threshold].
local position = old_lightness / threshold
local new_lightness = baseline + ((threshold - baseline) * position)
return new_lightness
end
end,
floating_windows = true,
telescope = true,
file_tree = true,
Expand Down

0 comments on commit 6aabd59

Please sign in to comment.