Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(config): add lightness option for transparent bg
Browse files Browse the repository at this point in the history
ramojus committed Nov 2, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 5dcfdfe commit 1569ea2
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
@@ -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)

21 changes: 11 additions & 10 deletions lua/mellifluous/colors/shades.lua
Original file line number Diff line number Diff line change
@@ -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

19 changes: 19 additions & 0 deletions lua/mellifluous/config.lua
Original file line number Diff line number Diff line change
@@ -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,

0 comments on commit 1569ea2

Please sign in to comment.