-- 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()