# MONITOR CONFIG
monitor=,preferred,auto,1

gesture = 3, swipe, move,
gesture = 3, pinch, float
gesture = 4, horizontal, workspace
gesture = 4, up, dispatcher, global, quickshell:overviewWorkspacesToggle
gesture = 4, down, dispatcher, global, quickshell:overviewWorkspacesClose
gestures {
    workspace_swipe_distance = 700
    workspace_swipe_cancel_ratio = 0.2
    workspace_swipe_min_speed_to_force = 5
    workspace_swipe_direction_lock = true
    workspace_swipe_direction_lock_threshold = 10
    workspace_swipe_create_new = true
}

general {
    # Gaps and border
    gaps_in = 4
    gaps_out = 5
    gaps_workspaces = 50

    border_size = 1
    col.active_border = rgba(0DB7D455)
    col.inactive_border = rgba(31313600)
    resize_on_border = true

    no_focus_fallback = true

    allow_tearing = true # This just allows the `immediate` window rule to work

    snap {
        enabled = true
        window_gap = 4
        monitor_gap = 5
        respect_gaps = true
    }
}

dwindle {
    preserve_split = true
    smart_split = false
    smart_resizing = false
    # precise_mouse_move = true
}

decoration {
    # 2 = circle, higher = squircle, 4 = very obvious squircle
    # Clear squircles look really off; we use only extra .4 here to make the rounding feel more continuous
    rounding_power = 2
    rounding = 18

    blur {
        enabled = true
        xray = true
        special = false
        new_optimizations = true
        size = 10
        passes = 3
        brightness = 1
        noise = 0.05
        contrast = 0.89
        vibrancy = 0.5
        vibrancy_darkness = 0.5
        popups = false
        popups_ignorealpha = 0.6
        input_methods = true
        input_methods_ignorealpha = 0.8
    }

    shadow {
        enabled = true
        ignore_window = true
        range = 50
        offset = 0 4
        render_power = 10
        color = rgba(00000027)
    }

    # Dim
    dim_inactive = true
    dim_strength = 0.05
    dim_special = 0.2
}

animations {
    enabled = true
    # Curves
    bezier = expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90
    bezier = expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98
    bezier = expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00
    bezier = emphasizedDecel, 0.05, 0.7, 0.1, 1
    bezier = emphasizedAccel, 0.3, 0, 0.8, 0.15
    bezier = standardDecel, 0, 0, 0, 1
    bezier = menu_decel, 0.1, 1, 0, 1
    bezier = menu_accel, 0.52, 0.03, 0.72, 0.08
    bezier = stall, 1, -0.1, 0.7, 0.85
    # Configs
    # windows
    animation = windowsIn, 1, 3, emphasizedDecel, popin 80%
    animation = fadeIn, 1, 3, emphasizedDecel
    animation = windowsOut, 1, 2, emphasizedDecel, popin 90%
    animation = fadeOut, 1, 2, emphasizedDecel
    animation = windowsMove, 1, 3, emphasizedDecel, slide
    animation = border, 1, 10, emphasizedDecel
    # layers
    animation = layersIn, 1, 2.7, emphasizedDecel, popin 93%
    animation = layersOut, 1, 2.4, menu_accel, popin 94%
    # fade
    animation = fadeLayersIn, 1, 0.5, menu_decel
    animation = fadeLayersOut, 1, 2.7, stall
    # workspaces
    animation = workspaces, 1, 7, menu_decel, slide
    ## specialWorkspace
    animation = specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert
    animation = specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert
    # zoom
    animation = zoomFactor, 1, 3, standardDecel
}

input {
    kb_layout = us
    numlock_by_default = true
    repeat_delay = 250
    repeat_rate = 35

    follow_mouse = 1
    off_window_axis_events = 2

    touchpad {
        natural_scroll = yes
        disable_while_typing = true
        clickfinger_behavior = true
        scroll_factor = 0.7
    }
}

misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true
    vfr = 1
    vrr = 1
    mouse_move_enables_dpms = true
    key_press_enables_dpms = true
    animate_manual_resizes = false
    animate_mouse_windowdragging = false
    enable_swallow = false
    swallow_regex = (foot|kitty|allacritty|Alacritty)
    on_focus_under_fullscreen = 2
    allow_session_lock_restore = true
    session_lock_xray = true
    initial_workspace_tracking = false
    focus_on_activate = true
}

binds {
    scroll_event_delay = 0
    hide_special_on_workspace_change = true
}

cursor {
    zoom_factor = 1
    zoom_rigid = false
    zoom_disable_aa = true
    hotspot_padding = 1
}

