-----------------------
---- LOOK AND FEEL ----
-----------------------
-- Version 1
-- Last change: Sun 2026-06-14 using Hyprland v0.55.3-1
-- Git repo: https://git.fennek.xyz/fennek182/dotfiles

-- See https://wiki.hypr.land/Configuring/Basics/Variables/ for more

hl.config({
    decoration = {
        rounding             = 12,                   -- 5 until 2025-07-07. then 12 | 8px -> hyprbars
        dim_inactive         = false,
        dim_strength         = 0.1,
        dim_special          = 0,
        shadow = {
            enabled          = true,                 -- bool  default: true
            range            = 22,                   -- int   default: 4
            render_power     = 3,                    -- int   default: 3
            color            = "rgba(00000070)",     -- color default: 0xee1a1a1a     old-setting: #rgba(00000077)  rgba(1a1a1aee)
            offset           = "0 0",
            -- vec2          = "0 0",                -- default: [0, 0] old-setting: 7 7
            -- sharp         = false                 -- bool  default: false
            -- ignore_window = true                  -- bool  default: true
            -- color_inactive                        -- color default: unset
            -- scale = 1.0                           -- float default: 1.0
        },

        -- multisample_edges = true
        
        blur = {
            enabled             = true,
            size                = 12,             -- zuvor 5
            passes              = 4,
            new_optimizations   = true,
            xray                = false,
            popups              = true,
            contrast            = 1.0,
            brightness          = 1,
            -- noise            = 0.1
            -- ignore_opacity   = false 
        },
    },
})

hl.config({
    animations = {
        enabled = true,
        -- Animation curves
        -- Animation configs
        -- der windows 11 dude:
        -- Animation curves
        -- bezier = md3_standard, 0.2, 0, 0, 1
        -- bezier = md3_decel, 0.05, 0.7, 0.1, 1
        -- bezier = md3_accel, 0.3, 0, 0.8, 0.15
        -- bezier = overshot, 0.05, 0.9, 0.1, 1.1
        -- bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
        -- bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
        -- bezier = fluent_decel, 0.1, 1, 0, 1
        -- # Animation configs
        -- animation = windows, 1, 2, md3_decel, popin 80%
        -- animation = border, 1, 10, default
        -- animation = fade, 1, 2, default
        -- animation = workspaces, 1, 3, md3_decel
        -- animation = specialWorkspace, 1, 3, md3_decel, slidevert
    },
})


-- hl.config({
--     general = {
--         gaps_in  = 5,
--         gaps_out = 20,

--         border_size = 2,

--         col = {
--             active_border   = { colors = {"rgba(33ccffee)", "rgba(00ff99ee)"}, angle = 45 },
--             inactive_border = "rgba(595959aa)",
--         },

--         -- Set to true to enable resizing windows by clicking and dragging on borders and gaps
--         resize_on_border = false,

--         -- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
--         allow_tearing = false,

--         layout = "dwindle",
--     },

--     decoration = {
--         rounding       = 10,
--         rounding_power = 2,

--         -- Change transparency of focused and unfocused windows
--         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,
--         },
--     },

--     animations = {
--         enabled = true,
--     },
-- })
--
-- TODO: migrate to lua

-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
hl.curve("easeOutQuint",   { type = "bezier", points = { {0.23, 1},    {0.32, 1}    } })
hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1}    } })
hl.curve("linear",         { type = "bezier", points = { {0, 0},       {1, 1}       } })
hl.curve("almostLinear",   { type = "bezier", points = { {0.5, 0.5},   {0.75, 1}    } })
hl.curve("quick",          { type = "bezier", points = { {0.15, 0},    {0.1, 1}     } })

-- Default springs
hl.curve("easy",           { type = "spring", mass = 1, stiffness = 71.2633, dampening = 15.8273644 })

hl.animation({ leaf = "global",        enabled = true,  speed = 10,   bezier = "default" })
hl.animation({ leaf = "border",        enabled = true,  speed = 5.39, bezier = "easeOutQuint" })
hl.animation({ leaf = "windows",       enabled = true,  speed = 4.79, spring = "easy" })
hl.animation({ leaf = "windowsIn",     enabled = true,  speed = 4.1,  spring = "easy",         style = "popin 87%" })
hl.animation({ leaf = "windowsOut",    enabled = true,  speed = 1.49, bezier = "linear",       style = "popin 87%" })
hl.animation({ leaf = "fadeIn",        enabled = true,  speed = 1.73, bezier = "almostLinear" })
hl.animation({ leaf = "fadeOut",       enabled = true,  speed = 1.46, bezier = "almostLinear" })
hl.animation({ leaf = "fade",          enabled = true,  speed = 3.03, bezier = "quick" })
hl.animation({ leaf = "layers",        enabled = true,  speed = 3.81, bezier = "easeOutQuint" })
hl.animation({ leaf = "layersIn",      enabled = true,  speed = 4,    bezier = "easeOutQuint", style = "fade" })
hl.animation({ leaf = "layersOut",     enabled = true,  speed = 1.5,  bezier = "linear",       style = "fade" })
hl.animation({ leaf = "fadeLayersIn",  enabled = true,  speed = 1.79, bezier = "almostLinear" })
hl.animation({ leaf = "fadeLayersOut", enabled = true,  speed = 1.39, bezier = "almostLinear" })
hl.animation({ leaf = "workspaces",    enabled = true,  speed = 1.94, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "workspacesIn",  enabled = true,  speed = 1.21, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "workspacesOut", enabled = true,  speed = 1.94, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "zoomFactor",    enabled = true,  speed = 7,    bezier = "quick" })

-- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
-- "Smart gaps" / "No gaps when only"
-- uncomment all if you wish to use that.
-- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
-- hl.workspace_rule({ workspace = "f[1]",   gaps_out = 0, gaps_in = 0 })
-- hl.window_rule({
--     name  = "no-gaps-wtv1",
--     match = { float = false, workspace = "w[tv1]" },
--     border_size = 0,
--     rounding    = 0,
-- })
-- hl.window_rule({
--     name  = "no-gaps-f1",
--     match = { float = false, workspace = "f[1]" },
--     border_size = 0,
--     rounding    = 0,
-- })

--- Layerrules
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/#layer-rules for more
hl.layer_rule({ match = { namespace = "waybar" }, blur = true })
hl.layer_rule({ match = { namespace = "rofi" }, blur = true, animation = "popinfade", dim_around = true })