Files
2026-08-12 23:15:12 -07:00

91 lines
3.6 KiB
Lua

-- Base visual behavior. Theme colors are intentionally applied separately at
-- the end of this module because Noctalia generates them.
hl.config({
-- Window spacing, borders, and compositor-wide rendering behavior.
general = {
gaps_in = 5,
gaps_out = 20,
border_size = 2,
resize_on_border = false,
allow_tearing = false,
},
-- Window shape, opacity, shadows, and background blur.
decoration = {
rounding = 10,
rounding_power = 2,
active_opacity = 1.0,
inactive_opacity = 1.0,
shadow = {
enabled = true,
range = 4,
render_power = 3,
color = 0xee1a1a1a,
},
blur = {
enabled = true,
size = 3,
passes = 1,
vibrancy = 0.1696,
},
},
-- This is the global animation switch; individual animation tracks below
-- control timing and style.
animations = {
enabled = true,
},
-- Keep the built-in wallpaper enabled as a fallback.
misc = {
force_default_wallpaper = -1,
disable_hyprland_logo = false,
},
})
-- Curves are data-driven so adding or tuning one does not require another
-- standalone `hl.curve` call.
local curves = {
{ "easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } } },
{ "easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } } },
{ "linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } } },
{ "almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1 } } } },
{ "quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } } },
{ "easy", { type = "spring", mass = 1, stiffness = 238.1191, dampening = 24.21279333 } },
}
for _, curve in ipairs(curves) do
hl.curve(curve[1], curve[2])
end
-- Animation tracks inherit from broader leaves unless a more specific track
-- (for example windowsIn or workspacesOut) overrides them.
local animations = {
{ leaf = "global", enabled = true, speed = 10, bezier = "default" },
{ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" },
{ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" },
{ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" },
{ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" },
{ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" },
{ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" },
{ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" },
{ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" },
{ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" },
{ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" },
{ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" },
{ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" },
{ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" },
{ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" },
{ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" },
{ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" },
}
for _, animation in ipairs(animations) do
hl.animation(animation)
end
-- Noctalia generates the palette module; appearance owns when it is applied.
require("noctalia").apply_theme()